comment trouver le chemin d' une image uploder dans ce sript

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

16 déc. 2005, 16:31

////ajout image


if(isset($_FILES['photo'])){
$extensions_ok = array('png', 'gif', 'jpg', 'jpeg');
$taille_max = 100000;
$dest_dossier = 'upload/';

$dest_dossier = 'upload/';/*pourquoi une seconde fois ici?*/

if( !in_array( substr(strrchr($_FILES['photo']['name'], '.'), 1), $extensions_ok ) )
{ 
$erreur = 'Veuillez sélectionner un fichier de type png, gif ou jpg !'; }
elseif( file_exists($_FILES['photo']['tmp_name'])
and filesize($_FILES['photo']['tmp_name']) > $taille_max)
{
 $erreur = 'Votre fichier doit faire moins de 500Ko !'; 
}


/*Là tu n'as aucune erreur ?*/

// copie du fichier 

if(!isset($erreur))
{ 
$dest_fichier = basename($_FILES['photo']['name']);

$dest_fichier = strtr($dest_fichier, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');

$dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier);

if(move_uploaded_file($_FILES['photo']['tmp_name'], $dest_dossier . $dest_fichier))
{
echo "fichier OK";
}
else
{
echo "fichier pas ok";
}

}

}

//fin ajout image 
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Invité
Invité n'ayant pas de compte PHPfrance

16 déc. 2005, 16:48

PERSONNE NE VOIT ? :cry:

Invité
Invité n'ayant pas de compte PHPfrance

16 déc. 2005, 16:51

Le resultat est " fichier ok "

donc?

Invité
Invité n'ayant pas de compte PHPfrance

16 déc. 2005, 18:03

Plus personne pour m'aider.?????????
:cry:

Mammouth du PHP | 19672 Messages

16 déc. 2005, 20:55

On est sensé voir quoi au juste ? qu'est-ce qui ne fonctionne pas: tu dis que le fichier est correctement uploadé: ce qui bafouille, c'est quoi ?

Si c'est ta requête d'insertion de données, au lieu d'essayer de bricoler une requête improbable directement en PHP, essaye de concevoir ta requête en SQL dans phpMyAdmin et quand tes insertions seront au point, tu pourras te baser sur ce code pour créer la requête dynamique en PHP.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

17 déc. 2005, 15:28

surtout que tu dis que l'upload fonctionne parfaitement et que c'est la requete qui plante or ici on a que du code pour l'upload et rien sur la requete :?

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Invité
Invité n'ayant pas de compte PHPfrance

17 déc. 2005, 15:53

voila la requete SQL

$query = "INSERT INTO $table(date, titre, lanews, url, moturl, pseudo, motcle, target, icone, photo) VALUES ('$date', '$titre', '$lanews', '$url', '$moturl', '$redact', '$motcle', '$target', '$icone', '$dest_dossier')";

en faisant un echo de cette requete,
il n'y a pas de valeur pour la variable $dest_dossier
'
INSERT INTO espritnews(date, titre, lanews, url, moturl, pseudo, motcle, target, icone, photo) VALUES ('2005-12-17 14:44:49', '', '', 'http://', '', '', '', '_blank', '', '')

Mammouth du PHP | 19672 Messages

17 déc. 2005, 16:00

Si ta requête est correcte, c'est que l'erreur a lieu avant, lors de la connexion par exemple: as-tu mis les bons paramètres de connexion ? As-tu sélectionné la bonne base de données ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

17 déc. 2005, 16:01

de toute façon ce n'est pas le chemin qui mène a l'image que tu dois enregistrer mais le nom ($dest_fichier) de l'image !

comment tu va faire apres pour afficher les images sans leur nom ?
Ce bout de code semble correct faudrai savoir a quel endroit tu le places ?! si le code n'est pas trop long envoie le tout.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Invité
Invité n'ayant pas de compte PHPfrance

17 déc. 2005, 16:04

oui,
les autres variables s'inserent correctement dans la base,
il n'y a que celle la

je vois vraiment plus

Invité
Invité n'ayant pas de compte PHPfrance

17 déc. 2005, 16:13

je voulais simplement que l'utilisateur , remplisse un formulaire, et puisse uploader une image; et recuperer le tout dans une base de donnée pour les afficher ensuite.
tout fonctionne sauf le chemin de l'images ne s'insere pas dans la base
@mysql_connect($mysql, $login, $pass) ;

   echo   $query = "INSERT INTO $table(date, titre, lanews, url, moturl, pseudo, motcle, target, icone, photo) VALUES ('$date', '$titre', '$lanews', '$url', '$moturl', '$redact', '$motcle', '$target', '$icone', '$dest_fichier')";
   
   echo   $query2 = "INSERT INTO $tabletemp(date, titre, lanews, url, moturl, pseudo, motcle, target, icone, photo) VALUES ('$date', '$titre', '$lanews', '$url', '$moturl', '$redact', '$motcle', '$target', '$icone', '$dest_fichier)";


        $result = @mysql_db_query($base, $query);

        $result2 = @mysql_db_query($base, $query2);



    if (($result) | ($result2)) {

        echo "La News : <span class=\"titre\">$titre</span><br>A été ajoutée avec succés</p>";

    }

        else {

        echo "Attention, l'opération à échouée :o(</p>";

    }



// Fin ajout
}}



if ($modifid)
{
if (!empty($coche3))
{
$motcle3=$nom_jeu3;
}
if (empty($target3)){$target3="_blank";}


        @mysql_connect($mysql, $login, $pass) or die ("probleme de connexion a la base");
        $query = "update $tabletemp set titre='$titre3', date='$date3', lanews='$lanews3', url='$url3', moturl='$moturl3', pseudo='$pseudo3', motcle='$motcle3', target='$target3', icone='$icone3' where id like $modifid";
        $query2 = "update $table set titre='$titre3', date='$date3', lanews='$lanews3', url='$url3', moturl='$moturl3', pseudo='$pseudo3', motcle='$motcle3', target='$target3', icone='$icone3' where id like $modifid";
       $result = @mysql_db_query($base, $query);
       $result2 = @mysql_db_query($base, $query2);

    if (($result) | ($result2)) {
        echo "La News été modifiee</p>";
    }

// Fin modfication
}

if ($ajouter) //Affiche formulaire
{
$datejour =  (date("Y-m-d H:i:s"));
echo "
<form name='form1' method='post' action='' enctype='multipart/form-data'>
  <input type='hidden' name='ajout' value='ok'>
 <hr width='50%' align='center'>

  <p>Titre de la News :

    <input type=text name='titre' maxlength='80' size='40'>

<br>
Date (YYYY-MM-DD hh:mm:ss)
    <input type='text' name='date' value='$datejour'>
<br>

    La News :<i><b><br>

    </b></i>

    <textarea name='lanews' rows='10' cols='80' wrap='VIRTUAL'></textarea>

  </p>

   <p>URL de r&eacute;f&eacute;rence ou 'mailto:[email protected]' (au cas ou) :

    <input type=text name='url' maxlength='150' size='30' value='http://'>

    <span class='titre'>(s'ouvre dans une nouvelle fen&ecirc;tre par defaut)</span></p>

  <p><font color='#FF9900'>Cocher la case pour un lien interne (<font color='#FFFF00'><b>../</b></font>dossier/page.htm)</font>

    <input type='checkbox' name='target' value='_parent'>

  </p>

  <p>Texte du lien (<b><i>obligatoire en cas d'url, au pire recopiez

    l'url</i></b>) :

    <input type=text name='moturl' maxlength='150' size='30'>

  </p>

  <p><font size='-1' color='#FF9900'>IMAGES</font> <font color='#FF9900'>:
    </font>
   <input type='file' name='photo'></
 
 </p>
    <p><input type=submit value='Ajouter'></p>

 
  </form>
";

// Fin formulaire ajouter
}
////ajout image 
if(isset($_FILES['photo'])){ // params unset($erreur); 
$extensions_ok = array('png', 'gif', 'jpg', 'jpeg'); 
$taille_max = 100000; 
$dest_dossier = 'upload/'; 
// utilisez également des slashes sous windows : 
// vérifications 
if( !in_array( substr(strrchr($_FILES['photo']['name'], '.'), 1), $extensions_ok ) ) 
{ $erreur = 'Veuillez sélectionner un fichier de type png, gif ou jpg !'; } 
elseif( file_exists($_FILES['photo']['tmp_name']) 
and filesize($_FILES['photo']['tmp_name']) > $taille_max) 
{ $erreur = 'Votre fichier doit faire moins de 500Ko !'; } 
// copie du fichier if(!isset($erreur)) 
{ $dest_fichier = basename($_FILES['photo']['name']); 
// formatage nom fichier // enlever les accents 
$dest_fichier = strtr($dest_fichier, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy'); 
// remplacer les caracteres autres que lettres, chiffres et point par _ 
$dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier); 
// copie du fichier 
move_uploaded_file($_FILES['photo']['tmp_name'], $dest_dossier . $dest_fichier); } 

} 

//fin ajout image

Mammouth du PHP | 19672 Messages

17 déc. 2005, 16:18

Commence donc par virer les "@" devant les fonctions mysql, on ne masque pas les messages d'erreur en phase de débuggage...
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

17 déc. 2005, 16:22

c'est fait

ensuite ???

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

17 déc. 2005, 16:24

tu va en avoir des erreur sans les @, le code est mal construit.

L'interprétation se fait de haut en bas ce qui fait que tu as des blancs (variables indéfinies)

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Invité
Invité n'ayant pas de compte PHPfrance

17 déc. 2005, 16:32

çà fonctionne comme avant