begin process at 2012 05 31 16:58:30
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Débutant(e)

 > 

Récupération un formulaire avec une photo : impossible


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Récupération un formulaire avec une photo : impossible

mardi 14 juin 2011 à 13:00:40 | Récupération un formulaire avec une photo : impossible

chero9000kee



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

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

echo "<table align='center' class='liste'>";
           echo "<tr>";
                echo "<td>Num identifiant</td>";
                echo "<td>" . $id ."</td>";
           echo "</tr>";
           echo "<tr>";
	       		echo "<td>Num</td>";
                echo "<td><input type='text' value='$num_adresse' name='num_adresse'></td>";
           echo "</tr>";
           echo "<tr>";
	       		echo "<td>Adresse</td>";
                echo "<td><input type='text' value='$adresse' name='Adresse'></td>";
           echo "</tr>";
           echo "<tr>";
	       		echo "<td>CP</td>";
                echo "<td><input type='text' value='$bien_cp' name='CP_bien'></td>";
           echo "</tr>";
           echo "<tr>";
	       		echo "<td>ville</td>";
                echo "<td><input type='text' value='$ville' name='Ville'></td>";
           echo "</tr>";
           echo "<tr>";
                echo "<td>D&eacute;tail</td>";
                echo "<td><input type='text' value='$detail' name='Detail'></td>";
           echo "</tr>";
           echo "<tr>";
                echo "<td>Sindyc</td>";
                echo "<td><input type='text' value='$str_bien_syndic' name='Syndic_bien'></td>";
           echo "</tr>";
           echo "<tr>";
                echo "<td>Relance</td>";
                echo "<td>\"$date\"</td>";
           echo "</tr>";
           echo "<tr>";
                echo "<td>Photo</td>";
                echo '<td align="center"><img src="vignette/'.$photo.'" width="24" height="18" name="Vignette"  /></td>';
          echo "</tr>";
          echo "<tr>";
                echo "<td>Photo</td>";
          echo "<td>";
          echo  ' <input type="file" value='.$photo.' name="Photo" class="form" >

                  <input type="hidden" value='.$photo.' name="Photo" class="form" />
                   <br /><br />';

                //  $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.<br />';   // 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 '<font color="#FF0000"> ERREUR: Impossible de télécharger l\'image. </font>';   // Message d'Erreur lors d'un Échec du transfert du fichier
                             }
                           } else {
                             print '<font color="#FF0000">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 '.</font>';
                           }
                          }
           echo "</tr>";

		   echo "<tr>

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

           echo "<tr>";
	       		echo "<td>Actions</td>";
                echo "<td>";
			    echo '<input type="submit" value="Modifier" class="form"  />';
			    echo "</td>";
	       echo "</tr>";
echo "</table>";

	      		echo "<input type='hidden' value=".$id." name='id'>";

    echo "</form>";

  ?>


1). modifier_valider.php

Code 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    '<a href="detail.php?id='.$id.'">retour</a>';

mysql_close($sqllink);
?>
mardi 14 juin 2011 à 17:25:32 | Re : Récupération un formulaire avec une photo : impossible

cod57

Réponse acceptée !
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
Code 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 "<table align='center' class='liste'>";
echo "<tr>";
echo "<td>Num identifiant</td>";
echo "<td>" . $id ."</td>";
echo "</tr>";
echo "<tr>";
echo "<td>Num</td>";
echo "<td><input type='text' value='$num_adresse' name='num_adresse'></td>";
echo "</tr>";
echo "<tr>";
echo "<td>Adresse</td>";
echo "<td><input type='text' value='$adresse' name='Adresse'></td>";
echo "</tr>";
echo "<tr>";
echo "<td>CP</td>";
echo "<td><input type='text' value='$bien_cp' name='CP_bien'></td>";
echo "</tr>";
echo "<tr>";
echo "<td>ville</td>";
echo "<td><input type='text' value='$ville' name='Ville'></td>";
echo "</tr>";
echo "<tr>";
echo "<td>D&eacute;tail</td>";
echo "<td><input type='text' value='$detail' name='Detail'></td>";
echo "</tr>";
echo "<tr>";
echo "<td>Sindyc</td>";
echo "<td><input type='text' value='$str_bien_syndic' name='Syndic_bien'></td>";
echo "</tr>";
echo "<tr>";
echo "<td>Relance</td>";
echo "<td>\"$date\"</td>";
echo "</tr>";
echo "<tr>";
echo "<td>Photo</td>";
echo '<td align="center"><img src="vignette/'.$photo.'" width="24" height="18" name="Vignette"  /></td>';
echo "</tr>";
echo "<tr>";
echo "<td>Photo</td>";
echo "<td>";
echo '<input type="file"  name="Photo" class="form">';
echo "</td></tr>";
echo "<tr>

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

echo "<tr>";
echo "<td>Actions</td>";
echo "<td>";
echo '<input type="submit" value="Modifier" class="form"  />';
echo "</td>";
echo "</tr>";
echo "</table>";
echo "<input type='hidden' value=".$id." name='id'>";
echo "</form>";
?>





modifier_valider.php
Code 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 '<pre>';
echo '<hr>variables $_GET actuelles<br />';
print_r($_GET);
echo '<hr>variables $_POST actuelles<br />';
print_r($_POST);
echo '<hr>variables $_FILES actuelles<br />';
print_r($_FILES);
echo '</pre>';
/**/

/*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 '<h3 align="center">'.$err.'</h3>';exit;
    }else{
    echo 'image copiée et vignette créee<br />';
    }


}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    '<a href="detail.php?id='.$id.'">retour</a>';

mysql_close($sqllink);
?>




Bonne programmation !
mardi 14 juin 2011 à 18:08:19 | Re : Récupération un formulaire avec une photo : impossible

chero9000kee

Réponse acceptée !


Ç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
mardi 14 juin 2011 à 19:37:12 | Re : Récupération un formulaire avec une photo : impossible

cod57

Réponse acceptée !

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 !
mardi 14 juin 2011 à 21:11:41 | Re : Récupération un formulaire avec une photo : impossible

chero9000kee

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.


mardi 14 juin 2011 à 21:47:29 | Re : Récupération un formulaire avec une photo : impossible [Résolu]

chero9000kee




Tout est OK, Merci c'est trop cool !!!!
mardi 14 juin 2011 à 22:04:53 | Re : Récupération un formulaire avec une photo : impossible

chero9000kee




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


Cette discussion est classée dans : php, image, photo, echo, files


Répondre à ce message

Sujets en rapport avec ce message

Upload d'image par methode POST ... [ par psychoz ] J'en ai marre !Je cherche a envoyer une photo sur un site ...Je le faisait avec un client ftp, ensuite j'ai utilisé ftp et php ...Et maintenant je vou Uploader une image avec PHP [ par coolboy78 ] Bonjourjaimerai uploader une photo, mais cela ne marche pas tellemment, juste avec des photo de petite taille ( comme les ptit smiley de MSN messenger Comment choisir la couleur de la bordure? [ par Linuss ] Bonjour à tous, Voilà je viens de "finir" (bah oui entre guillimets, sinon je n'aurais pas de pb avec ^^ et qui n'est, je l'avoue, pas entierement de Image numérique et php [ par bouffard ] Bonjour,J'amerais savoir s'il est possible de récupérer à l'écran grâce à un interface en php une image (photo) provenant d'un appareil photo numériqu 2 uploads, ca marche pas [ par k4mik4zi ] voila j'ai mon script en php pour upload 2 images Mais il  upload seulement la premier image et non la deuxieme ------------------------------------- image de va pas dans dossier [ par speedylol ] <TD id=HB_Focus_Element vAlign=top width="100%" background="" height=250 UNSELECTAB Image GD et php ! prob d'affichage [ par riecola ] Bonjour tout le monde. Voilà mon problème : mon utilisateur selectionne une image et un texte au choix dans un formulaire ensuite une page s'ouvre et UPLOAD IMAGES [ par sebalex ] Salut à tous, Voilà, j'ai repris un code pour l'upload d'image sur ce forum et tout fonctionne. Le problème est que je souhaite que l'image uploadée s upload d'image [ par gaillardo ] Bonjour à tous,J'ai un petit probleme d'upload qui fonctionne avec des images de 3ko alors qu'avec une image de 6ko j'ai l'erreur 2 qui est la suivant redimensuinnement image envoyée par flash [ par camdev ] Bonjour, je suis en train créer un site en flash, où on pourra à un moment envoyé une photo vers le site, et qui s'affichera ensuite à l'écran. j'ai


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,702 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales