Récupération un formulaire avec une photo : impossible [Résolu]

Signaler
Messages postés
10
Date d'inscription
jeudi 16 août 2007
Statut
Membre
Dernière intervention
19 juin 2011
-
Messages postés
10
Date d'inscription
jeudi 16 août 2007
Statut
Membre
Dernière intervention
19 juin 2011
-
Bonjour à tous et merci d'avance pour votre aide !!!!!!!!!!
Je tiens à préciser que je suis débutant, et que ça fait 3 jours que j’essaie d'envoyer (uploader) une Photo en local, j'arrive à le faire avec mon fichier upload.php mais pas en l'intégrant dans mon formulaire.
J'ai fait de nombreux test et recherche sur différents forum, mais je n'y arrive toujours pas.

J'ai un formulaire avec les variables : nom, adresse, CP, Ville etc ... et Photo que j'envoie dans une base MySQL.
Ça fonctionne bien, mais pas le transfert de la "Photo".

J'ai 2 fichiers

1). modifier.php

<?php
    echo '<form action= "modifier_valider.php?Photo='.$photo.'" method="POST" class="form" enctype="multipart/form-data" />';

echo "\";
echo \"----
\";
echo \"Num identifiant, \";
echo \"" . $id .", \";
echo \"\";
echo \"----
\";
echo \"Num, \";
echo \", \";
echo \"\";
echo \"----
\";
echo \"Adresse, \";
echo \", \";
echo \"\";
echo \"----
\";
echo \"CP, \";
echo \", \";
echo \"\";
echo \"----
\";
echo \"ville, \";
echo \", \";
echo \"\";
echo \"----
\";
echo \"Détail, \";
echo \", \";
echo \"\";
echo \"----
\";
echo \"Sindyc, \";
echo \", \";
echo \"\";
echo \"----
\";
echo \"Relance, \";
echo \"\"$date\", \";
echo \"\";
echo \"----
\";
echo \"Photo, \";
echo ', ';
echo \"\";
echo \"----
\";
echo \"Photo, \";
echo \"";
echo  ' 

';
//  $bien_Photo = $_GET['Photo'];
if (!isset($_GET['Photo'])) {
$idir = "photo/";
$tdir = "vignette/";
$twidth = "50";
$theight = "40";
} else  if (isset($_GET['photo']) && $_GET['photo'] == 'Photo') {
$url = $_FILES['Photo']['name'];
if ($_FILES['Photo']['type'] == "image/jpg" || $_FILES['Photo']['type'] == "image/jpeg" || $_FILES['Photo']['type'] == "image/pjpeg" ) {
$file_ext = strrchr($_FILES['Photo']['name'], '.');

$copy = copy($_FILES['Photo']['tmp_name'], "$idir" . $_FILES['Photo']['name']);
if ($copy) {
print ' L\'image a été téléchargé avec succès.
';   // A réussi à télécharger l'image
$simg = imagecreatefromjpeg("$idir" . $url);
$currwidth = imagesx($simg);
$currheight = imagesy($simg);
if ($currheight > $currwidth) {
$zoom = $twidth / $currheight;
$newheight = $theight;
$newwidth = $currwidth * $zoom;
} else {
$zoom = $twidth / $currwidth;
$newwidth = $twidth;
$newheight = $currheight * $zoom;
}
$dimg = imagecreate($newwidth, $newheight);
imagetruecolortopalette($simg, false, 256);
$palsize = ImageColorsTotal($simg);
for ($i = 0; $i < $palsize; $i++) {
$colors = ImageColorsForIndex($simg, $i);
ImageColorAllocate($dimg, $colors['red'], $colors['green'], $colors['blue']);
}
imagecopyresized($dimg, $simg, 0, 0, 0, 0, $newwidth, $newheight, $currwidth, $currheight);
imagejpeg($dimg, "$tdir" . $url);
imagedestroy($simg);
imagedestroy($dimg);
print 'La vignette a été créé avec succès.';   // Redimensionnement réussi
} else {
print ' ERREUR: Impossible de télécharger l\'image. ';   // Message d'Erreur lors d'un Échec du transfert du fichier
}
} else {
print 'ERREUR: Mauvais Type de fichier (vérifiez que le format (l\'extention) soit en .jpg ou .jpeg ou .png . ';   // Message d'erreur si le Type de fichier est Mauvais
print $file_ext;
print '.';
}
}
echo "";

echo "----, Notes</td>
<textarea type='longtext' style='width:320px; height:150px;' heigth='30' width='50' cols='1' rows='1' value='$notes' name='notes'/></textarea>,
\";
echo \"----
\";
echo \"Actions, \";
echo \"";
echo '';
echo ", \";
echo \"\";
echo "
";

      		echo "";

    echo "</form>";

  ?>


1). modifier_valider.php

<?php
// ACCES A LA BASE DE DONNEE
include "config.php";

// Rendre la base de données foo, la base courante
 $db_selected  = mysql_select_db($sql_bd, $sqllink);
 if (!$db_selected) {
    die ('Impossible de sélectionner la base de données : ' . mysql_error());
    }
        $id= $_GET['id'];
       $num_adresse = $_POST['num_adresse'];
       $adresse = $_POST['Adresse'];
       $cp = $_POST['CP'];
       $ville = $_POST['Ville'];
           $detail = $_POST['Detail'];
           $notes = $_POST['notes'];
           $date = $_POST['date'];
           $photo = $_POST['Photo'];
           $prop_ID = $_POST['prop_ID'];

$sql_query = "UPDATE $sql_tbb SET
num_adresse='".$num_adresse."',
Adresse_bien='".$adresse."',
CP='".$cp."',
Ville='".$ville."',
                        Detail='".$detail."',
                        notes='".$notes."',
                        date='".$date."',
Photo='".$photo."',
                        prop_ID='".$prop_ID."'
                        WHERE id='".$id."' ";

$result = mysql_query($sql_query);
if (!$result) {
   echo 'Impossible d\'exécuter la requête : ' . mysql_error();
      exit;
}
else {
echo 	"Le bien a été mis a jour $sql_query ";
}
echo "l'image ".$photo." a bien été récupéré . ";

echo    '[detail.php?id='.$id.' retour]';

mysql_close($sqllink);
?>

6 réponses

Messages postés
1654
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
15
bonjour
gros problème d'organisation du code
bon je te propose
comme j'ai pas ta table
j ai pas pu verifier update
...
a++


modifier.php
<?php
/*tu peux supprimer cette partie c'est au cas ou undefined ...*/
if(isset($_POST) && count($_POST)>0){
extract($_POST);
}else{
$photo="";
$id="";
$num_adresse="";
$adresse="";
$bien_cp="";
$ville="";
$detail="";
$str_bien_syndic="";
$date="";
$photo="";
$notes="";
} 

echo '<form action="modifier_valider.php" method="POST" class="form" enctype="multipart/form-data" />';
echo "\";
echo \"----
\";
echo \"Num identifiant, \";
echo \"" . $id .", \";
echo \"\";
echo \"----
\";
echo \"Num, \";
echo \", \";
echo \"\";
echo \"----
\";
echo \"Adresse, \";
echo \", \";
echo \"\";
echo \"----
\";
echo \"CP, \";
echo \", \";
echo \"\";
echo \"----
\";
echo \"ville, \";
echo \", \";
echo \"\";
echo \"----
\";
echo \"Détail, \";
echo \", \";
echo \"\";
echo \"----
\";
echo \"Sindyc, \";
echo \", \";
echo \"\";
echo \"----
\";
echo \"Relance, \";
echo \"\"$date\", \";
echo \"\";
echo \"----
\";
echo \"Photo, \";
echo ', ';
echo \"\";
echo \"----
\";
echo \"Photo, \";
echo \"";
echo '';
echo ", \";
echo \"----

Notes,
<textarea type='longtext' style='width:320px; height:150px;' heigth='30' width='50' cols='1' rows='1' value='$notes' name='notes'/></textarea>,
\";
echo \"----
\";
echo \"Actions, \";
echo \"";
echo '';
echo ", \";
echo \"\";
echo "
";
echo "";
echo "</form>";
?>





modifier_valider.php
<?php
function redimPhoto($img,$x=125,$y=75){

# L'emplacement de l'image à redimensionner. L'image peut être de type jpeg, gif ou png 
$file = $img ;
$size = getimagesize($file); 

/*homothetie peu être dévalidée*/
$w=$size[0];
$h=$size[1];
if($h>$w){
$zoom=$x/$h;
$y=$y;
$x=$w*$zoom;
}else{
$zoom=$x/$w;
$x=$x;
$y=$h*$zoom;
}
/*fin homothetie*/

if (isset($size)>0) { 
//echo 'Image en cours de redimensionnement...'; 

if ($size['mime']=='image/jpeg' ) {
//echo 'jpg'; 
$img_big = imagecreatefromjpeg($file); # On ouvre l'image d'origine 
$img_new = imagecreate($x, $y); 
# création de la miniature 
$img_mini = imagecreatetruecolor($x, $y) 
or   $img_mini = imagecreate($x, $y); 

// copie de l'image, avec le redimensionnement. 
imagecopyresized($img_mini,$img_big,0,0,0,0,$x,$y,$size[0],$size[1]); 

imagejpeg($img_mini,$file ); 

} 
elseif ($size['mime']=='image/png' ) {
//echo 'png';  
$img_big = imagecreatefrompng($file); # On ouvre l'image d'origine 
$img_new = imagecreate($x, $y); 
# création de la miniature 
$img_mini = imagecreatetruecolor($x, $y) 
or   $img_mini = imagecreate($x, $y); 

// copie de l'image, avec le redimensionnement. 
imagecopyresized($img_mini,$img_big,0,0,0,0,$x,$y,$size[0],$size[1]); 

imagepng($img_mini,$file ); 

} 
elseif ($size['mime']=='image/gif' ) { 
//echo 'gif'; 
$img_big = imagecreatefromgif($file); # On ouvre l'image d'origine 
$img_new = imagecreate($x, $y); 
# création de la miniature 
$img_mini = imagecreatetruecolor($x, $y) 
or   $img_mini = imagecreate($x, $y); 

// copie de l'image, avec le redimensionnement. 
imagecopyresized($img_mini,$img_big,0,0,0,0,$x,$y,$size[0],$size[1]); 

imagegif($img_mini,$file ); 

} 

return $file;
//echo 'Image redimensionnée !'; 

}else{
return false;
}
//fin function image thumb
}



/*voilà ce que envoi ton formulaire*/
echo '';
echo '<hr>variables $_GET actuelles
';
print_r($_GET);
echo '<hr>variables $_POST actuelles
';
print_r($_POST);
echo '<hr>variables $_FILES actuelles
';
print_r($_FILES);
echo '

';
/**/

/*ta nouvelle photo si on la change*/

if(isset($_FILES['Photo']['name']) && !empty($_FILES['Photo']['tmp_name'])){

$idir = "photo/";
$tdir = "vignette/";

$err=null;
    
    $file_ext=strrchr($_FILES['Photo']['name'], '.');
    
    /*verification extension*/
    
    if($_FILES['Photo']['type'] == "image/jpg" || $_FILES['Photo']['type'] == "image/pjpeg" || $_FILES['Photo']['type'] == "image/jpeg" ){
    
    $ext = '.jpg';
    
    }
    
    elseif($_FILES['Photo']['type'] == "image/gif"){
    
    $ext = '.gif';
    
    }
    
    elseif($_FILES['Photo']['type'] == "image/png"){
    
    $ext = '.png';
    }
    
    else{
    $err.="Problème avec extension du fichier";
    }
            
    /*un choix de securite*/
    /*evitons les problèmes de securité et doublons forçage du nom du fichier*/
    //$new = time().$ext;
    
    
    /*on peut faire un filtre regex ou str_replace pour proteger ...*/
    $new = $_FILES['Photo']['name'];
            
    /*copier l'original*/
    $copy=copy($_FILES['Photo']['tmp_name'],$file=$idir.$new);
    if($copy){
    }else{
    $err.="Problème avec la copie du fichier";
    }
    
    /*creation de la vignette et protection par getimagesize refuse les fichiers pas images*/
    if($redim=redimPhoto($_FILES['Photo']['tmp_name'])){
    copy($redim,$thumb=$tdir.$new);
    }else{
    unlink($file);/*efface la photo déjà chargée*/
    $err.="Problème avec la vignette du fichier";
    }
    
    
    if($err!=null){
    /*il y a des erreurs on previent l'internaute*/
    echo ''.$err.'
';exit;
    }else{
    echo 'image copiée et vignette créee
';
    }


}else{
//aucune photo
}



/*insertion*/
// ACCES A LA BASE DE DONNEE
include "config.php";
// Rendre la base de données foo, la base courante
$db_selected = mysql_select_db($sql_bd, $sqllink);
if (!$db_selected) {
die ('Impossible de sélectionner la base de données : ' . mysql_error());
}


$id= $_GET['id'];
$num_adresse = $_POST['num_adresse'];
$adresse = $_POST['Adresse'];
$cp = $_POST['CP'];
$ville = $_POST['Ville'];
$detail = $_POST['Detail'];
$notes = $_POST['notes'];
$date = $_POST['date'];
$photo = $_POST['Photo'];
$prop_ID = $_POST['prop_ID'];


if(isset($new)){
$photo=$new;
//on change image
$sql_query = "UPDATE $sql_tbb SET
num_adresse='".$num_adresse."',
Adresse_bien='".$adresse."',
CP='".$cp."',
Ville='".$ville."',
Detail='".$detail."',
notes='".$notes."',
date='".$date."',
Photo='".$photo."',
prop_ID='".$prop_ID."'
WHERE id='".$id."' ";
}else{
//on change que les champs non image
$sql_query = "UPDATE $sql_tbb SET
num_adresse='".$num_adresse."',
Adresse_bien='".$adresse."',
CP='".$cp."',
Ville='".$ville."',
Detail='".$detail."',
notes='".$notes."',
date='".$date."',
prop_ID='".$prop_ID."'
WHERE id='".$id."' ";
}

$result = mysql_query($sql_query);
if (!$result) {
echo 'Impossible d\'exécuter la requête : ' . mysql_error();
exit;
}
else {
echo 	"Le bien a été mis a jour $sql_query ";
}
echo "l'image ".$photo." a bien été récupéré . ";

echo    '[detail.php?id='.$id.' retour]';

mysql_close($sqllink);
?>




Bonne programmation !
Messages postés
10
Date d'inscription
jeudi 16 août 2007
Statut
Membre
Dernière intervention
19 juin 2011

Ça ne fonctionne pas quand j'envoie le formulaire vers modifier_valider.php
J'ai le message suivant :

Objet non trouvé!

L'URL requise n'a pu etre trouvée sur ce serveur. La référence sur la page citée semble être erronée ou perimée. Nous vous prions d'informer l'auteur de cette page de cette erreur.

Si vous pensez qu'il s'agit d'une erreur du serveur, veuillez contacter le gestionnaire du site.

Error 404

Merci beaucoup pour ton aide code57
Messages postés
1654
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
15
as tu sauvegardé
modifier_valider.php

car l'erreur explique que le fichier n'existe pas
donc il faut verifier si modifier.php et valider_modifier.php sont dans le meme repertoire ... chez moi tout fonctionne nickel

Bonne programmation !
Messages postés
10
Date d'inscription
jeudi 16 août 2007
Statut
Membre
Dernière intervention
19 juin 2011

Merci pour ton aide, il y avait une erreur du nom "modifie_valider.php" manque le "r" à modifier_ .
J'arrive enfin a envoyer les images mais mon soucie est que je ne récupère plus le nom de l'image dans ma variable "Photo" : le nom de l'image ne s'écrit plus dans base MySQL.
Messages postés
10
Date d'inscription
jeudi 16 août 2007
Statut
Membre
Dernière intervention
19 juin 2011

Tout est OK, Merci c'est trop cool !!!!
Messages postés
10
Date d'inscription
jeudi 16 août 2007
Statut
Membre
Dernière intervention
19 juin 2011

Je ne sais comment clôturer le sujet du style : [Résolu] .