insertion de photo dans une table

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : insertion de photo dans une table

par Topaze » 31 juil. 2005, 15:50

ok merci pour tes conseils. Je vais faire un tour sur le site

par Cyrano » 31 juil. 2005, 15:41

Le problème n'est même pas là: je suis toujours surpris de voir des gens se lancer dans la programmation avec un évident manque de logique. Commencer avec quelque tutos serait peut-être une option à envisager avant de te lancer dans des scripts. Tu as toute une série de tutoriels structurés sur phpdebutant par exemple, à mon avis, tu gagnerais un temps considérable à le suivre l'un après l'autre.

Note bien que je ne te chasse pas, ce n'est pas le propos, mais une question à la fois, il va te falloir un temps considérable pour parcourir bien peu de chemin.

par Topaze » 31 juil. 2005, 15:29

Et oui je suis débutant en php. On m'a donné une réponse et je cherche à comprendre en posant la question. Cela n'a rien à voir avec mes connaissance en html. Je pense sans me tromper que le forum est fait pour aider des personnes comme moi qui ne maitrisent pas la programmation. Car si je suis sur le forum c'est pour apprendre sinon je ne serai pas là. Un peu de retenu dans vos propos SVP.

par Cyrano » 31 juil. 2005, 15:15

:shock: Dis moi Topaze, est-ce qu'il t'arrive de réfléchir avant de dire une énormité ? Ou alors tu n'y connais non seulement pas grand chose en PHP, ce qui n'est en rien blâmable, mais tes connaissances en HTML frisent également le zéro ???

Comment feras-tu choisir un fichier image à l'internaute avec un champ texte ?

Tu dois utiliser un champ de type "file", mais tu le récupères avec la super-globale $_FILES et non $_POST.

Un peu de logique élémentaire serait à mon avis une base primordiale...

par Topaze » 31 juil. 2005, 15:11

Si je comprends bien je remplace dans <input name="photo" type="file"> type="file" par type="text"

par ouckileou » 31 juil. 2005, 14:51

donc déjà ce que je pensais : pas de champ texte nommé "photo", donc tu ne récupéreras pas de $_POST['photo']

par Topaze » 31 juil. 2005, 14:14

voici mon formaire réduit:

Code : Tout sélectionner

<html> <head> </head> <body> <FORM action="testvalide.php" method="POST" enctype="multipart/form-data" > <font face='Verdana,Arial,sans-serif'color='#023161'> <table border="0" summary=""> <tr> <td>Pseudo</td> <td><input type="text" name="pseudo" maxlength="6" value=""/><br></td> </tr> <tr> <td>Mot de passe</td> <td><input type="password" name="motdepasse" maxlength="6"value=""/><br></td> </tr> <tr> <td> <font face='Verdana,Arial,sans-serif' size='3' color='#023161'><b>Votre Photo</b></font> <font face='Verdana,Arial,sans-serif'color='#023161'>ATTENTION : Format en JPG,Taille à respecter : 70 x 70 pixels.</font> <br> <br> <input type="hidden" name="MAX_FILE_SIZE" value="100000"> <input name="photo" type="file"> </td> <tr> <td><INPUT TYPE="submit" VALUE="Envoyer " name="Envoyer"> </td> <td><INPUT type="reset" value="Annuler"><br></td> </tr> </table> </FORM> </body> </html>

par ouckileou » 31 juil. 2005, 14:00

est-ce que tu arrives bien sur ce script en soumettant un formulaire avec un champ de type "file" qui s'appelle "photo" ?
si tu ne le fais pas, c'est normal qu'il ne connaisse pas "photo"

à quoi correspond la variable $_POST['photo'] que tu récupères au début ?

soyons clair :

$_FILES['photo'] permet de récupérer un fichier les infos qui vont avec de :

Code : Tout sélectionner

<iinput type="file" name="photo">
$_POST['photo'] permet de récupérer la valeur de :

Code : Tout sélectionner

<input type="text" name="photo">
je pense qu'il serait bien de voir le formulaire qui va avec ton script

image

par Topaze » 31 juil. 2005, 13:33

Voici ce que j'avais au départ, et cela me donnait l'erreur suivant:
Notice: Undefined index: photo in c:\easyphp1-8\www\web\upload.php
<?php
    $photo = isset($_POST["photo"])  ?  $_POST["photo"] : "";
    $repertoireDestination = "data/";
    $nomDestination        = $_FILES["photo"]["name"];

    // Pour raison de sécurité nous ajouterons aux fichiers
    // portant une extension .php .php3, l'extension .txt
    if (eregi(".php", $nomDestination)) {
        $nomDestination .= ".txt";
    }
    
    if (is_uploaded_file($_FILES["photo"]["tmp_name"])) {
        if (rename($_FILES["photo"]["tmp_name"],
                   $repertoireDestination.$nomDestination)) {
            echo "Le fichier temporaire ".$_FILES["photo"]["tmp_name"].
                 " a été déplacé vers ".$repertoireDestination.$nomDestination;
        } else {
            echo "Le déplacement du fichier temporaire a échoué".
                 " vérifiez l'existence du répertoire ".$repertoireDestination;
       }          
    } else {
       echo "Le fichier n'a pas été uploadé (trop gros ?)";
    }
?>
Et c'est pour régler ce problème que j'ai voulu faire une requete sur le champ photo de ma base

Re: image dans une table

par Cyrano » 31 juil. 2005, 13:17

... est ce qu'il faut supprimer la requête?
J'en sais rien, à quoi sert-elle ? SI elle ne sert à rien, elle n'a rien à faire là, sinon, il manque du code qui en expliquerait la présence...

image dans une table

par Topaze » 31 juil. 2005, 13:12

Voici mon imput:

<input name="photo" type="file">

Quand à la remarque de cyrano est ce qu'il faut supprimer la requête?

par Cyrano » 31 juil. 2005, 13:02

Il y a une incohérence totale dans ton code : tu fais d'un coté une requête dans la base de données pour récupérer une photo, et sans transition tu essayes d'utiliser $_FILES qui provient d'un formulaire alors que tu n'utilises jamais le retour de ta requête SQL : quel est donc le lien entre ces deux parties de code ???

par ouckileou » 31 juil. 2005, 12:56

il te dit qu'il ne connait pas cet index

comment s'appelle ton input file dans ton formulaire ? il devrait s'appeler photo
si ce n'est pas le cas c'est pour ça qu'il ne connait pas "photo"

ce qui est bizarre c'est que tu récupères $_POST['photo'] puis $_FILES['photo']

tu es sûr que tu ne t'es pas mélangé entre les deux ?

par Topaze » 31 juil. 2005, 12:50

salut,

ok c'est normal que 5octet dans mon champ. Je veux maintenant afficher la photo sur une page. j'ai fait un script pour uploader la photo mais cela ne marche pas. j'ai ce message d'erreur :

Notice: Undefined index: photo in c:\easyphp1-8\www\web\upload.php on line 29

Notice: Undefined index: photo in c:\easyphp1-8\www\web\upload.php on line 37

J'ai matérialisé la ligne d'erreur par (ligne 29)
<?php
 $photo = isset($_POST["photo"])  ?  $_POST["photo"] : ""; 
 $idConnexion = mysql_connect("localhost", "root", "");
  if ($idConnexion) echo "Connexion au serveur réussie";
  else echo "Connexion au serveur ratée";

  $connexionReussie = mysql_select_db("mabase");
  if ($connexionReussie) echo "Connexion à la base réussie";
  else echo "Connexion à la base ratée"; 
   
   	
  $requete = "select photo from table";
  $result = mysql_query($requete);
 
     
               
    if (!$result)
	 {
      echo "Le fichier n'a pas été charger.<br>";
	    
    }
	 else
	 {	 
	 
    $repertoireDestination = "data/"; 
(ligne29): $nomDestination        = $_FILES["photo"]["name"];
    if (eregi(".php", $nomDestination)) {
        $nomDestination .= ".txt";
    }
    
 ligne(37)   if (is_uploaded_file($_FILES["photo"]["tmp_name"])) {
        if (rename($_FILES["photo"]["tmp_name"],
                   $repertoireDestination.$nomDestination)) {
            echo "Le fichier temporaire ".$_FILES["photo"]["tmp_name"].
                 " a été déplacé vers ".$repertoireDestination.$nomDestination;
        } else {
            echo "Le déplacement du fichier temporaire a échoué".
                 " vérifiez l'existence du répertoire ".$repertoireDestination;
       }          
    } else {
       echo "Le fichier n'a pas été uploadé (trop gros ?)";
    } }

  mysql_close();
?> 

par ouckileou » 17 juil. 2005, 23:48

si ta photo fait 5 octets oui c'est normal :lol:

sinon, il faudrait voir le dit script d'insertion pour pouvoir t'aider ;)