spidercrash Posté 16 Avril 2010 Posté 16 Avril 2010 Bonjour a tous, Donc j'ai essayer de faire pour tester un form tout simple avec création de miniature dans un dossier nommé mini et de mettre l'image taille réelle dans une dossier pics. Car pour mon site le but et que la personne up une photo celle ci taille reelle se place dans le dossier pics et la miniature se génére et se place dans le dossier mini Le problème cela me donne rien du tout même pas de message d'erreur rien et l'image se place pas dans les dossiers désirez pas d'upload je vois pas se qui peut bloquer. Voici le fichier de transfert. <form id="ok" method="post" action="photo.php"enctype="multipart/form-data"> <label for="icone">Photo:</label><br /> <input type="file" name="monimage" /> <input type="submit" name="go" value="envoyer" /></form> et voici le fichier qui traite l'information <?php$dir = '../pics';$dir_mini = '../mini';$ratio = 150;if (isset($_POST['go'])) { if (empty($_FILES['mon_image']['tmp_name'])) { $erreur = 'Aucun fichier envoyé.'; } else { $tableau = _AT_getimagesize($_FILES['mon_image']['tmp_name']); if ($tableau == FALSE) { unlink($_FILES['mon_image']['tmp_name']); $erreur = 'Votre fichier n\'est pas une image.'; } else { if ($tableau[2] == 2) { if (is_file('../pics/'.$_FILES['mon_image']['name'])) $file_upload = '_'.$_FILES['mon_image']['name']; else $file_upload = $_FILES['mon_image']['name']; copy ($_FILES['mon_image']['tmp_name'], $dir.'/'.$file_upload); if ($tableau[2] == 2) { $src = imagecreatefromjpeg($dir.'/'.$file_upload); if ($tableau[0] > $tableau[1]) { $im = imagecreatetruecolor(round(($ratio/$tableau[1])*$tableau[0]), $ratio); imagecopyresampled($im, $src, 0, 0, 0, 0, round(($ratio/$tableau[1])*$tableau[0]), $ratio, $tableau[0], $tableau[1]); } else { $im = imagecreatetruecolor($ratio, round(($ratio/$tableau[0])*$tableau[1])); imagecopyresampled($im, $src, 0, 0, 0, 0, $ratio, round($tableau[1]*($ratio/$tableau[0])), $tableau[0], $tableau[1]); } imagejpeg ($im, $dir_mini.'/'.$file_upload); } header('location: index.php'); exit(); } else { unlink($_FILES['mon_image']['tmp_name']); $erreur = 'Votre image est d\'un format non supporté.'; } } }}?> Merci de votre aide car je but depuis une momen dessus
jcaron Posté 16 Avril 2010 Posté 16 Avril 2010 Première chose à faire: print getcwd() qui te dira quel est le répertoire courant, et te dira si tes chemins relatifs "../pics" et "../mini" sont corrects. Jacques.
spidercrash Posté 16 Avril 2010 Auteur Posté 16 Avril 2010 donc j'ai fait cela en début de code <?phpprint getcwd();$dir = $real.'pics';$dir_mini = $real.'mini';$ratio = 150; et il ma repondu /homez.316/ldq/www/galerietest
jcaron Posté 16 Avril 2010 Posté 16 Avril 2010 Et tes dossiers "pics" et "mini" sont où? Et il sort d'où ton $real? Je suppose aussi que l'utilisateur sous lequel le script tourne a le droit d'écrire dans ces répertoires? Jacques.
spidercrash Posté 16 Avril 2010 Auteur Posté 16 Avril 2010 (modifié) Et tes dossiers "pics" et "mini" sont où? Et il sort d'où ton $real? Je suppose aussi que l'utilisateur sous lequel le script tourne a le droit d'écrire dans ces répertoires? Jacques. Les dossier pics et mini se situe dans le dossier galerietest les dossier sont en autorisation total Oui dsl a force de faire des test voici real print getcwd()$real = (substr($_SERVER['DOCUMENT_ROOT'],-1) == '/')? $_SERVER['DOCUMENT_ROOT'] : $_SERVER['DOCUMENT_ROOT'].'/' ;//Et si tu veux poster ton image dans un dossier nommé 'pics' situé à la racine de ton site ce sera donc$dir = $real.'pics';$dir_mini = $real.'mini';$ratio = 150; Modifié 16 Avril 2010 par spidercrash
jcaron Posté 16 Avril 2010 Posté 16 Avril 2010 Moi je mettrais $dir = "pics" ou $dir = "/homez.316/ldq/www/galerietest/pics". Là ton "real" comme les ../ précédents considèrent que pics et mini sont dans www. Jacques.
spidercrash Posté 16 Avril 2010 Auteur Posté 16 Avril 2010 j'ai fait se que tu m'a dit cela ne change rien toujours aucun resultat lorsque je valide il me renvoie le chemin via print getcwd(); mais a aucun moment il upload Voici le code modifié <?phpprint getcwd();$dir = "pics";$dir_mini = "mini";$ratio = 150;if (isset($_POST['go'])) { if (empty($_FILES['mon_image']['tmp_name'])) { $erreur = 'Aucun fichier envoyé.'; } else { $tableau = _AT_getimagesize($_FILES['mon_image']['tmp_name']); if ($tableau == FALSE) { unlink($_FILES['mon_image']['tmp_name']); $erreur = 'Votre fichier n\'est pas une image.'; } else { if ($tableau[2] == 2) { if (is_file('.pics/'.$_FILES['mon_image']['name'])) $file_upload = '_'.$_FILES['mon_image']['name']; else $file_upload = $_FILES['mon_image']['name']; copy ($_FILES['mon_image']['tmp_name'], $dir.'/'.$file_upload); if ($tableau[2] == 2) { $src = imagecreatefromjpeg($dir.'/'.$file_upload); if ($tableau[0] > $tableau[1]) { $im = imagecreatetruecolor(round(($ratio/$tableau[1])*$tableau[0]), $ratio); imagecopyresampled($im, $src, 0, 0, 0, 0, round(($ratio/$tableau[1])*$tableau[0]), $ratio, $tableau[0], $tableau[1]); } else { $im = imagecreatetruecolor($ratio, round(($ratio/$tableau[0])*$tableau[1])); imagecopyresampled($im, $src, 0, 0, 0, 0, $ratio, round($tableau[1]*($ratio/$tableau[0])), $tableau[0], $tableau[1]); } imagejpeg ($im, $dir_mini.'/'.$file_upload); } header('location: index.php'); exit(); } else { unlink($_FILES['mon_image']['tmp_name']); $erreur = 'Votre image est d\'un format non supporté.'; } } }}?> En tout cas merci de ton aide si précieuse
Sarc Posté 16 Avril 2010 Posté 16 Avril 2010 Bonjour, Si Jcaron te propose d'afficher le répertoire courant, c'est aussi pour que tu l'utilises dans ton script. En effet, j'ai pris l'habitude avec les années de toujours passer en adressage absolu (vue serveur) pour l'upload d'images, parce que ça a des tendances à ne pas marcher toujours comme on veut. Les dossiers dans lesquel tu dois envoyer tes images sont donc, dans ce cas : $dir = getcwd()."/pics";$dir_mini = getcwd()."/mini"; Avant de te lancer dans des choses compliquées, avec création de la miniature, bla, et bla, essaye juste de faire un formulaire qui envoie une image, point. C'est un premier pas, pour tester les adresses d'envoi, les noms, les choses de ce genre. Ensuite, complexifie ton programme en rajoutant la miniature, mais ne grille pas les étapes ! Il existe également des classes PHP très bien foutues pour gérer les images, avec création de miniature et autres. J'en ai utilisé une récemment, et complètement adoptée !
spidercrash Posté 16 Avril 2010 Auteur Posté 16 Avril 2010 (modifié) Bonjour, Si Jcaron te propose d'afficher le répertoire courant, c'est aussi pour que tu l'utilises dans ton script. En effet, j'ai pris l'habitude avec les années de toujours passer en adressage absolu (vue serveur) pour l'upload d'images, parce que ça a des tendances à ne pas marcher toujours comme on veut. Les dossiers dans lesquel tu dois envoyer tes images sont donc, dans ce cas : $dir = getcwd()."/pics";$dir_mini = getcwd()."/mini"; Avant de te lancer dans des choses compliquées, avec création de la miniature, bla, et bla, essaye juste de faire un formulaire qui envoie une image, point. C'est un premier pas, pour tester les adresses d'envoi, les noms, les choses de ce genre. Ensuite, complexifie ton programme en rajoutant la miniature, mais ne grille pas les étapes ! Il existe également des classes PHP très bien foutues pour gérer les images, avec création de miniature et autres. J'en ai utilisé une récemment, et complètement adoptée ! Merci pour ton conseil, j'ai tester se que t m'a dit en faisant <?phpprint getcwd();$dir = getcwd()."/pics";$dir_mini = getcwd()."/mini";$ratio = 150; Et cela ne m'affiche toujours que /homez.316/ldq/www/galerietest Justement j'ai essayer plein de possibilité ( BLob , miniature a la volée..) mais tous comment problème trop long. Donc c'est pour cela que je me suis lancer la dessus pourtant le script je le trouve trés simple Modifié 16 Avril 2010 par spidercrash
Sarc Posté 16 Avril 2010 Posté 16 Avril 2010 Pas la peine de citer le message précédent, on vient de le lire Conseil méthode : quand un programme ne fait pas ce que tu attends de lui, amuse-toi à mettre des "echo 'étape X';" à plusieurs endroits de ton programme, avec X le numéro, pour voir où il passe, où il ne passe pas, pourquoi il y passe, etc. Il y a pas mal de débogage à faire... Là par exemple, je devine déjà le chemin qu'il prend : <input type="file" name="monimage" /> if (empty($_FILES['mon_image']['tmp_name'])) Entre monimage, et mon_image, la différence est de taille. D'ailleurs, si tu ajoutes un "echo $erreur" à la fin de ton programme, tu devrais voir un peu...
jcaron Posté 16 Avril 2010 Posté 16 Avril 2010 Ben quand ça marche pas, il n'y a qu'un seule chose à faire: débugger :-) La méthode la plus simple, c'est de rajouter des traces, par exemple un print "trace 1" et ainsi de suite, dans les différentes parties du code. Ca te permettra de savoir où tu passes, et donc de cerner l'endroit où ça ne marche pas comme tu voudrais. Ensuite tu vas pouvoir vérifier les valeurs qui sont traitées/testées et/ou les valeurs de retour de certaines fonctions. Ajoute aussi un print_r($_POST), et pareil pour $_FILES, ça te permet de voir ce que ton script reçoit. Jacques.
spidercrash Posté 16 Avril 2010 Auteur Posté 16 Avril 2010 (modifié) j'ai placé une echo a la fin de la page et là j'obtient une erreur Warning: Cannot modify header information - headers already sent by (output started at /homez.316/logisdesq/www/galerietest/photo.php:3) in /homez.316/logisdesq/www/galerietest/photo.php on line 53 Ah ben il y a de l'évolution les images se mettre bien dans mini et pics. sa marche niquel a part le message d'erreur Je pence que c'était bien dut a mes_images et mesimages par contre dans n'importe quel endroit de mon code je peut mettre un print(trace1), puis print(trace2). ... ou cela doit etre mit aprés les } Car je viens d'essayer cela if (isset($_POST['go'])) { if (empty($_FILES['mon_image']['tmp_name'])) { $erreur = 'Aucun fichier envoyé.'; } [b]print("trace1");[/b] else { $tableau = _AT_getimagesize($_FILES['mon_image']['tmp_name']); if ($tableau == FALSE) { unlink($_FILES['mon_image']['tmp_name']); $erreur = 'Votre fichier n\'est pas une image.'; } mais cela me met une erreur ( Parse error: syntax error, unexpected T_ELSE in /homez.316/logisdesq/www/galerietest/photo.php on line 17) Modifié 16 Avril 2010 par spidercrash
Sarc Posté 16 Avril 2010 Posté 16 Avril 2010 Le message d'erreur, c'est normal, il disparaîtra quand tu auras viré tous les echo et print de ton programme. Pour les images, c'est logique que ça vienne de ce que je t'ai signalé dans le message précédent... C'est comme si tu disais à quelqu'un de t'appeler sur ton fixe alors que tu n'étais pas chez toi. Les programmes sont bêtes, ils font ce que tu leur dis Pour le déboguage, tu vois, Jcaron et moi-même t'avons proposé la même chose, au même moment, c'est sûrement qu'il y a une part de vrai. Afficher des informations, c'est permettre de savoir comment réagit le programme et par où il passe. Tu peux les mettre partout où tu veux, et si il en manque un à l'affichage, tu sauras que ton programme n'est pas passé par là.
spidercrash Posté 16 Avril 2010 Auteur Posté 16 Avril 2010 (modifié) En tout cas je vous remercie énormément, de plus maintenant je vais placer des petites traces a chaque fois que je code C'est vrai j'ai jamais pensé a cela mais très utile. Je vais peaufiné le code et rajouter des fonctions ajout du liens de l'image dans une tables et gestion des nom en double. Si j'ai un problème je re-posterai dans le même post en tout cas merci de votre aide 0 Modifié 16 Avril 2010 par spidercrash
spidercrash Posté 17 Avril 2010 Auteur Posté 17 Avril 2010 (modifié) Donc j'ai avancer j'ai agrandi mon formulaire puis les enregistrements dans ma tables voici se que sa donne Page Index : <?phpecho("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n");/* Variables de connexion : ajustez ces paramètres selon votre propre environnement */$serveur = "zzzz";$admin = "zzzz";$mdp = "zzzz";$base = "zzzz";/* On récupère si elle existe la valeur de la région envoyée par le formulaire */$idr = isset($_POST['region'])?$_POST['region']:null;?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr"> <head> <title>petite annonce gratuite pour particulier encart publicitaire pour profesionnel - mon espace</title> <meta http-equiv="Content-Type" content="text/html"; charset=iso-8859-1" /> <link rel="stylesheet" media="screen" type="text/css" title="Design espace" href="css/ajoutannonce_style.css" /> </head><body> <div id="annonce"></div> <div id="entete"> </div> <div id="corps"> <img src="contenu/logisdesannonces.png" alt="logisdesannonces" class="logisdesannonces" /> <img src="contenu/logo.png" alt="logo" class="logo" /> <div id="bouton"> <a href="divers.html"><img src="contenu/divers.png" alt="divers" class="divers" border="0"/></a> <a href="vehicule.html"><img src="contenu/vehicule.png" alt="vehicule" class="vehicule" border="0"/></a> <a href="hightech.html"><img src="contenu/high-tech.png" alt="hightech" class="hightech" border="0"/></a> <a href="immobilier.html"><img src="contenu/immobilier.png" alt="immobilier" class="immobilier" border="0"/></a> <a href="animaux.html"><img src="contenu/animaux.png" alt="animaux" class="animaux" border="0"/></a> <a href="espacepro.html"><img src="contenu/boutonpro.png" alt="bouton" class="bouton" border="0"/></a> </div> <a href="http://www.logisdesannonces.fr/accueil.html"><img src="contenu/bouton_accueil.png" alt="accueil" class="accueil" border="0"/></a> </div> <div id="formulaire"> Votre region :<br /><?php /* On établit la connexion à MySQL avec mysql_pconnect() plutôt qu'avec mysql_connect() * car on aura besoin de la connexion un peu plus loin dans le script */ $connexion = mysql_pconnect($serveur, $admin, $mdp); if($connexion != false) { $choixbase = mysql_select_db($base, $connexion); $sql1 = "SELECT `id_region`, `region`". " FROM `region`". " ORDER BY `id_region`"; $rech_regions = mysql_query($sql1); $code_region = array(); $region = array(); /* On active un compteur pour les régions */ $nb_regions = 0; if($rech_regions != false) { while($ligne = mysql_fetch_assoc($rech_regions)) { array_push($code_region, $ligne['id_region']); array_push($region, $ligne['region']); /* On incrémente de compteur */ $nb_regions++; } }?> <form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post" id="chgdept"> <select name="region" id="region" onchange="document.forms['chgdept'].submit();"> <option value="-1">- - - Choisissez une région - - -</option><?php for($i = 0; $i < $nb_regions; $i++) {?> <option value="<?php echo($code_region[$i]); ?>"<?php echo((isset($idr) && $idr == $code_region[$i])?" selected=\"selected\"":null); ?>><?php echo($region[$i]); ?></option><?php }?> </select> </form><br /> <form id="ok" method="post" action="php/validationannonce.php"enctype="multipart/form-data"><?php mysql_free_result($rech_regions); /* On commence par vérifier si on a envoyé un numéro de région et le cas échéant s'il est différent de -1 */ if(isset($idr) && $idr != -1) { /* Cération de la requête pour avoir les départements de cette région */ $sql2 = "SELECT `id_departement`, `departement`". " FROM `departement`". " WHERE `id_region` = ". $idr ."". " ORDER BY `id_departement`;"; if($connexion != false) { $rech_dept = mysql_query($sql2, $connexion); /* Un petit compteur pour les départements */ $nd = 0; /* On crée deux tableaux pour les numéros et les noms des départements */ $code_dept = array(); $nom_dept = array(); /* On va mettre les numéros et noms des départements dans les deux tableaux */ while($ligne_dept = mysql_fetch_assoc($rech_dept)) { array_push($code_dept, $ligne_dept['id_departement']); array_push($nom_dept, $ligne_dept['departement']); $nd++; } /* Maintenant on peut construire la liste déroulante */ ?>Votre departement :<br /><select name="departement" id="departement"> <?php for($d = 0; $d<$nd; $d++) { ?> <option value="<?php echo($code_dept[$d].'-'.$nom_dept[$d]); ?>"<?php echo((isset($dept_selectionne) && $dept_selectionne == $code_dept[$d])?" selected=\"selected\"":null); ?>><?php echo($nom_dept[$d]." (". $code_dept[$d] .")"); ?></option> <?php }?></select><?php } /* Un petit coup de balai */ mysql_free_result($rech_dept); }?><br /> <label for="NOMUTILISATEURS">Nom:</label><br /> <input type="text" name="NOMUTILISATEURS" id="NOMUTILISATEURS" size="20" /><br /> <label for="MAILUTILISATEURS">Email:</label><br /> <input type="text" name="MAILUTILISATEURS" id="MAILUTILISATEURS" size="20" /><br /> <label for="MDP">Mot de passe:</label><br /> <input type="password" name="MDP" id="MDP" size="20" /><br /> <label for="MDPBIS">Retapez votre mot de passe:</label><br /> <input type="password" name="MDPBIS" id="MDPBIS" size="20" /><br /> <label for="TELEPHONE">Téléphone:</label><br /> <input type="text" name="TELEPHONE" id="TELEPHONE" size="20" /><br /> <span>Vous n'étes pas obliger de le mentionner.</span><br /><br /> <label for="typeannonce">Type d'annonce:</label><br /> <label> <input type="radio" name="typeannonce" value="vends" />Je vends </label> <label> <input type="radio" name="typeannonce" value="donne" />Je donne </label> <label> <input type="radio" name="typeannonce" value="troc" />Je troc </label> <br /><br /> <label for="categorie">Sélectionner une catégorie:</label><br /> <select name="categorie" id="categorie"> <option value="0">Votre catégorie</option> <option value="divers">Divers</option> <option value="vehicules">Véhicules</option> <option value="immobilier">Immobilier</option> <option value="high-tech">High-Tech</option> <option value="animaux">Animaux</option> </select> <br /><br /> <label for="souscategorie">Sélectionner un sous catégorie:</label><br /> <select name="souscategorie" id="souscategorie"> <optgroup label="DIVERS"> <option value="select">Votre sous-catégorie</option> <option value="antiquite-art">Antiquité-Art</option> <option value="bricolage-jardin-chauffage">Bricolage-Jardin-Chauffage</option> <option value="meuble-decoration">Meuble-Décoration</option> <option value="vetements">Vêtements</option> <option value="puericulture">Puériculture</option> <option value="livres">Livres</option> <option value="loisir">Loisir</option> <option value="collections">Collections</option> <option value="musique">Musique</option> <option value="jeux-jouets">Jeux-Jouets</option> <option value="sport">Sport</option> </optgroup> <optgroup label="VEHICULES"> <option value="voiture">Voiture</option> <option value="moto-scooter">Moto-Scooter</option> <option value="camping-car">Camping car</option> <option value="caravane">Caravane</option> <option value="utilitaire">Utilitaire</option> <option value="bateau-nautisme">Bateau-Nautisme</option> <option value="pieces-accessoire auto">Piéces-Accessoire auto</option> <option value="pieces-accessoire moto">Piéces-Acessoire moto</option> <option value="pieces-accessoire nautisme">Piéces-Accessoire nautisme</option> <option value="pieces-accessoire camping car">Piéces-Accessoire camping car</option> </optgroup> <optgroup label="IMMOBILIER"> <option value="location">Location</option> <option value="location saisonniere">Location saisonnère</option> <option value="vente maison">Vente Maison</option> <option value="vente appartement">Vente appartement</option> <option value="vente propriete">Vente propriété</option> <option value="vente hotel particulier">Vente hotel particulier</option> <option value="vente garage">Vente garage</option> <option value="immeuble">Immeuble</option> <option value="vente constructeur">Vente constructeur</option> <option value="investisseur">Investisseur</option> <option value="renovation">Rénovation</option> <option value="etang">Etang</option> <option value="corps de ferme">Corps de ferme</option> </optgroup> <optgroup label="HIGH-TECH"> <option value="hifi-photo-video">Hifi-Photo-Video</option> <option value="informatique">Informatique</option> <option value="jeux video">Jeux video</option> <option value="musique-film">Musique-Film</option> <option value="telephonie">Téléphonie</option> <option value="autre">Autre</option> </optgroup> <optgroup label="ANIMAUX"> <option value="achat-vente">Achat-Vente</option> <option value="adoption-don">Adoption-Don</option> <option value="services">Services</option> <option value="accessoires">Accessoires</option> </optgroup> </select> <br /> <label for="titreannonce">Titre de l'annonce:</label><br /> <input type="titreannonce" name="titreannonce" id="titreannonce" size="20" /><br /> <span>Décriver précisement en quelques mots le titre de votre annonces</span><br /><br /> <label for="descriptionannonce">Description de l'annonce :</label><br /> <textarea name="descriptionannonce" id="descriptionannonce" rows="5" cols="30"></textarea><br /> <label for="prix">Prix:</label><br /> <input type="prix" name="prix" id="prix" size="10" /><br /> <label for="icone">Photo de l'annonce:</label><br /> <input type="file" name="mon_image"id="icone" /><?php echo '<input type="hidden" name="region" id="region" value="'.$region[$idr - 1].'"/>';?><input type="submit" name="ok" id="ok" value="envoyer" /></form><?php /* Terminé, on ferme la connexion */ mysql_close($connexion);}else{ /* Si on arrive là, c'est pas bon signe, il faut vérifier les * paramètres de connexion, mot de passe, serveur pas démarré etc... */}?><br /><br /><br /><br /><br /><br /></div><div id="fondlogin"></div><div id="login">VOUS ÊTES INSCRIT ? <div id="formlogin"> Espace résérvé au particulier<br /> </div> <div id="form"> <form method="post" action="../php/loginpart.php"> <label for="MAILUTILISATEURS">Email:</label><br /> <input type="text" name="MAILUTILISATEURS" id="MAILUTILISATEURS" size="20" /><br /> <label for="MDP">Mot de passe:</label><br /> <input type="password" name="MDP" id="MDP" size="20" /><br /><br /> <input type="submit" value="Valider" /> </form> </div> <div id="mpsoublie"> <a href="renouvellementmps.html""style=color:white;">Mot de passe oublié ?</a> </div></div><div id="pied_de_page"> <div id="boutonbas"> <a href="information.html"><img src="contenu/information.png" alt="information" class="information" border="0"/></a> <a href="contact.html"><img src="contenu/contact.png" alt="contact" class="contact" border="0"/></a> <a href="newsletters.html"><img src="contenu/newsletters.png" alt="newsletters" class="newsletters" border="0"/></a> <a href="offre.html"><img src="contenu/offre.png" alt="offre" class="offre" border="0"/></a> <a href="aide.html"><img src="contenu/aide.png" alt="aide" class="aide" border="0"/></a></div></div></body></html> Et voici ma page de traitement a savoir que lorsque l'on enregistre le formulaire il y a des donnée qui parte dans la table utilisateurs puis annonces puis image. <?php// Fonction pour parser les variables vers FLASHfunction Parse($variable,$valeur) {echo "&" . $variable . "=" . utf8_encode($valeur);}if (!empty($_POST) && $_POST['MDP'] == $_POST['MDPBIS']) { // traitement$categorie=$_POST['categorie'];$typeannonce=$_POST['typeannonce'];$souscategorie=$_POST['souscategorie'];$titreannonce=$_POST['titreannonce'];$descriptionannonce=$_POST['descriptionannonce'];$prix=$_POST['prix'];$departement=$_POST['departement'];$region=$_POST['region'];$NOMUTILISATEURS=$_POST['NOMUTILISATEURS'];$MAILUTILISATEURS=$_POST['MAILUTILISATEURS'];$MDP=$_POST['MDP'];$MDPBIS=$_POST['MDPBIS'];$TELEPHONE=$_POST['TELEPHONE'];//ici on commence avec les requêtes MySQL pour vérifier dans la tableinclude ('connect.php');//ici on inclut le fichier avec l'accès MySQL.$crypt=md5($MDP);$sql = "SELECT * FROM utilisateurs WHERE MAILUTILISATEURS = '$MAILUTILISATEURS'";//On sélectionne dans la table "UTILISATEUR" le login qui a pour valeur la variable "$login" $req = mysql_query($sql)or die(mysql_error()); $result = mysql_numrows($req);// on compte le nombre de résultats if($result!=0) // le login existe déjà { Parse("resultat","email '$MAILUTILISATEURS' existe deja, desole"); //alors on renvoi au Flash que le login '$MAILUTILISATEURS' existe déjà } else //sinon le login n'existe pas {print getcwd();//dossier ou seront stocket les miniature et les images$dir = getcwd()."/pics";$dir_mini = getcwd()."/mini";//taille des miniature$ratio = 150;//recuperation du post du formulaireif (isset($_POST['ok'])) {// on teste si le champ permettant de soumettre un fichier est vide ou non if (empty($_FILES['mon_image']['tmp_name'])) { $erreur = 'Aucun fichier envoyé.'; } else {// on examine le fichier uploadé en récupérant de nombreuses informations sur ce fichier $tableau = _AT_getimagesize($_FILES['mon_image']['tmp_name']); if ($tableau == FALSE) {// si le fichier uploadé n'est pas une image, on efface le fichier uploadé et on affiche un petit message d'erreur unlink($_FILES['mon_image']['tmp_name']); $erreur = 'Votre fichier n\'est pas une image.'; } else { if ($tableau[2] == 2) { if (is_file('.pics/'.$_FILES['mon_image']['name'])) $file_upload = '_'.$_FILES['mon_image']['name']; else $file_upload = $_FILES['mon_image']['name'];// on copie le fichier que l'on vient d'uploader dans le répertoire des images de grande taille copy ($_FILES['mon_image']['tmp_name'], $dir.'/'.$file_upload); if ($tableau[2] == 2) {// on crée une image à partir de notre grande image à l'aide de la librairie GD $src = imagecreatefromjpeg($dir.'/'.$file_upload);// on teste si notre image est de type paysage ou portrait if ($tableau[0] > $tableau[1]) { $im = imagecreatetruecolor(round(($ratio/$tableau[1])*$tableau[0]), $ratio); imagecopyresampled($im, $src, 0, 0, 0, 0, round(($ratio/$tableau[1])*$tableau[0]), $ratio, $tableau[0], $tableau[1]); } else { $im = imagecreatetruecolor($ratio, round(($ratio/$tableau[0])*$tableau[1])); imagecopyresampled($im, $src, 0, 0, 0, 0, $ratio, round($tableau[1]*($ratio/$tableau[0])), $tableau[0], $tableau[1]); } // on copie notre fichier généré dans le répertoire des miniatures imagejpeg ($im, $dir_mini.'/'.$file_upload); } else { $nom = "{$_FILES['mon_image']['name']}";//Insertion de l'utilisateur $sql = "INSERT INTO utilisateurs (NOMUTILISATEURS,MAILUTILISATEURS,MDP,TELEPHONE) VALUES ('$NOMUTILISATEURS','$MAILUTILISATEURS','$crypt','$TELEPHONE')"; //Alors on insert dans la table le nouvel utilisateur mysql_query ($sql); $NUMUTILISATEURS=mysql_insert_id();//Insertion de l'annonce $sql2 = "INSERT INTO annonces (categorie,typeannonce,souscategorie,titreannonce,descriptionannonce,prix,date,departement,region,NUMUTILISATEURS) VALUES ('$categorie','$typeannonce','$souscategorie','$titreannonce','$descriptionannonce','$prix','".date("Y-m-d H:i:s")."','$departement','$region','$NUMUTILISATEURS')"; $req = mysql_query($sql2)or die(mysql_error()); $image = $dir.$nom; $miniature = $dir_mini.$nom; $numannonce=mysql_insert_id(); //Insertion du chemin des images mysql_query("INSERT INTO images VALUES('','" . $image. "', '" . $miniature . "', '" . $numannonce . "')"); Parse("resultat","merci $MAILUTILISATEURS, vous etes a present enregistre et votre annonce est enregistré"); } } else {// si notre image n'est pas de type jpeg unlink($_FILES['mon_image']['tmp_name']); $erreur = 'Votre image est d\'un format non supporté.'; } } }} }}elseif (!empty($_POST)){ echo 'Le Mot de passe est different du premier.';}?> L'image s'enregistre mais mes tables ne s'allimente plus Le controle du doublons d'utilisateur marche et le controle saisie mot de passe marche aussi Modifié 17 Avril 2010 par spidercrash
jcaron Posté 17 Avril 2010 Posté 17 Avril 2010 Est-ce-que tu as essayé d'appliquer la méthode qu'on t'a donné précédemment pour essayer de trouver le problème par toi-même? Je ne crois pas. Si c'était le cas, tu aurais trouvé que l'insertion n'est jamais exécutée, et c'est normal, puisque en gros, tu fais: si (image est jpeg){ si (image est jpeg) { convertir image } sinon { inserer en base }} Au passage, quand tu fais du copier-coller, pense à "ré-indenter" le code, pour qu'il soit correctement aligné par rapport à la structure (fonctions, if, etc.). Les {} qui vont ensemble doivent être au même niveau, et au même niveau que le if, else, etc. correspondant. Ca aide énormément la lecture. N'importe quel éditeur décent permet de modifier ça d'un coup sec pour un bloc entier (sous Windows, souvent en tapant "tab" ou "shift-tab" pendant que le bloc est sélectionné). Jacques.
spidercrash Posté 18 Avril 2010 Auteur Posté 18 Avril 2010 (modifié) bon j'ai reprit a zéro lorsque cela marché le transfert. je viens d'essayer cela donc j'ai fait cela include ('connect.php'); $nom = "{$_FILES['mon_image']['name']}"; $image = $dir.$nom; $miniature = $dir_mini.$nom; $sql = "INSERT INTO images (image,miniature) VALUES ('$image','$miniature')"; $req = mysql_query($sql)or die(mysql_error()); } mais dans ma base le liens passe bien mais cela mais exemple /homez.316/aaa/www/galerietest/picsIMG_0015 alors que sa devrait mettre /homez.316/aaa/www/galerietest/pics/IMG_0015 j'ai fait cela $nom = "/{$_FILES['mon_image']['name']}"; et sa marche donc je viens de finir tout mon code et c'est bon, j'ai fait étape par étape et j'ai trouvé mes problème voici le code total, je ne c'est pas si il y a mieu a faire <?phpfunction Parse($variable,$valeur) {echo "&" . $variable . "=" . utf8_encode($valeur);}if (!empty($_POST) && $_POST['MDP'] == $_POST['MDPBIS']) { // traitement$categorie=$_POST['categorie'];$typeannonce=$_POST['typeannonce'];$souscategorie=$_POST['souscategorie'];$titreannonce=$_POST['titreannonce'];$descriptionannonce=$_POST['descriptionannonce'];$prix=$_POST['prix'];$departement=$_POST['departement'];$region=$_POST['region'];$NOMUTILISATEURS=$_POST['NOMUTILISATEURS'];$MAILUTILISATEURS=$_POST['MAILUTILISATEURS'];$MDP=$_POST['MDP'];$MDPBIS=$_POST['MDPBIS'];$TELEPHONE=$_POST['TELEPHONE'];include ('connect.php');$crypt=md5($MDP); //On sélectionne dans la table "UTILISATEUR" le login qui a pour valeur la variable "$login" $sql = "SELECT * FROM utilisateurs WHERE MAILUTILISATEURS = '$MAILUTILISATEURS'"; $req = mysql_query($sql)or die(mysql_error()); // on compte le nombre de résultats $result = mysql_numrows($req); // le login existe déjà if($result!=0) { Parse("resultat","email '$MAILUTILISATEURS' existe deja, desole"); //alors on renvoi au Flash que le login '$MAILUTILISATEURS' existe déjà } else //sinon le login n'existe pas {//dossier ou seront stocket les miniature et les images$dir = getcwd()."/pics";$dir_mini = getcwd()."/mini";//taille des miniature$ratio = 150;//recuperation du post du formulaireif (isset($_POST['ok'])) {// on teste si le champ permettant de soumettre un fichier est vide ou non if (empty($_FILES['mon_image']['tmp_name'])) { $erreur = 'Aucun fichier envoyé.'; } else {// on examine le fichier uploadé en récupérant de nombreuses informations sur ce fichier $tableau = _AT_getimagesize($_FILES['mon_image']['tmp_name']); if ($tableau == FALSE) {// si le fichier uploadé n'est pas une image, on efface le fichier uploadé et on affiche un petit message d'erreur unlink($_FILES['mon_image']['tmp_name']); $erreur = 'Votre fichier n\'est pas une image.'; } else { if ($tableau[2] == 2) { if (is_file('.pics/'.$_FILES['mon_image']['name'])) $file_upload = '_'.$_FILES['mon_image']['name']; else $file_upload = $_FILES['mon_image']['name'];// on copie le fichier que l'on vient d'uploader dans le répertoire des images de grande taille copy ($_FILES['mon_image']['tmp_name'], $dir.'/'.$file_upload); if ($tableau[2] == 2) {// on crée une image à partir de notre grande image à l'aide de la librairie GD $src = imagecreatefromjpeg($dir.'/'.$file_upload);// on teste si notre image est de type paysage ou portrait if ($tableau[0] > $tableau[1]) { $im = imagecreatetruecolor(round(($ratio/$tableau[1])*$tableau[0]), $ratio); imagecopyresampled($im, $src, 0, 0, 0, 0, round(($ratio/$tableau[1])*$tableau[0]), $ratio, $tableau[0], $tableau[1]); } else { $im = imagecreatetruecolor($ratio, round(($ratio/$tableau[0])*$tableau[1])); imagecopyresampled($im, $src, 0, 0, 0, 0, $ratio, round($tableau[1]*($ratio/$tableau[0])), $tableau[0], $tableau[1]); } // on copie notre fichier généré dans le répertoire des miniatures imagejpeg ($im, $dir_mini.'/'.$file_upload); } include ('connect.php'); $sql = "INSERT INTO utilisateurs (NOMUTILISATEURS,MAILUTILISATEURS,MDP,TELEPHONE) VALUES ('$NOMUTILISATEURS','$MAILUTILISATEURS','$crypt','$TELEPHONE')"; //Alors on insert dans la table le nouvel utilisateur mysql_query ($sql); $NUMUTILISATEURS=mysql_insert_id(); $sql2 = "INSERT INTO annonces (categorie,typeannonce,souscategorie,titreannonce,descriptionannonce,prix,date,departement,region,NUMUTILISATEURS) VALUES ('$categorie','$typeannonce','$souscategorie','$titreannonce','$descriptionannonce','$prix','".date("Y-m-d H:i:s")."','$departement','$region','$NUMUTILISATEURS')"; $req = mysql_query($sql2)or die(mysql_error()); $nom = "/{$_FILES['mon_image']['name']}"; $image = $dir.$nom; $miniature = $dir_mini.$nom; $numannonce=mysql_insert_id(); $sql3 = "INSERT INTO images (image,miniature,numannonce) VALUES ('$image','$miniature','$numannonce')"; $req = mysql_query($sql3)or die(mysql_error()); Parse("resultat","merci $MAILUTILISATEURS, vous etes a present enregistre et votre annonce est enregistré"); } else {// si notre image n'est pas de type jpeg unlink($_FILES['mon_image']['tmp_name']); $erreur = 'Votre image est d\'un format non supporté.'; } } }} }} elseif (!empty($_POST)){ echo 'Le Mot de passe est different du premier.';} ?> Modifié 18 Avril 2010 par spidercrash
spidercrash Posté 18 Avril 2010 Auteur Posté 18 Avril 2010 (modifié) par contre je souhaiterai tester les doublons si une photo porte le meme nom l'utilisateur doit changer le nom je pensé faire if (file_exists($dir . $_FILES['mon_image']['name'])){echo 'Le nom de votre photo éxiste déjà merci de la renommer';} mais comment le placer Deplus j'ai essayé d'afficher un de mes test avec photo mais la photo apparait pas quand je fait un clic droit sur la photo elle pointe vers ---http://www.xxx.fr/homez.316/xxx/www/php/mini/IMG_0007.jpg--- Se qui est normal car cela est dut a getcwd() sachant que je fait appelle a cette image via <img src="<?php echo $data['miniature']?>"/> voyez vous de quoid je parle ? Modifié 18 Avril 2010 par spidercrash
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant