Pb tutorial Upload de fichier

Eléphanteau du PHP | 35 Messages

17 mai 2005, 17:13

Bonjour,
j'ai voulu intégrer le tutorial "Upload de fichiers" dans un script d'insertion de données dans une base, mais ça ne fonctionne pas et je ne sais pas comment faire. Ci-dessous les deux fichiers que j'utilise, En premier le formulaire et en second le script php. Quelqu'un peut-il m'aider et m'expliquer SVP.

nb: Je suis sur un serveur local (j'utilise MAMP), j'ai créé un dossier tmp et avec un chmod 777 sur les dossiers et images. Rien ne s'inscrit dans ma base et rien ne va dns le dossier /images/

------formulaire--------
<html>
<head>
<title>ins&eacute;rer un dossier</title>
</head>
<body>
<form name="insertion" action="insert_doss.php" enctype="multipart/form-data" method="POST">
<table border="0" align="center" cellspacing="2" cellpadding="2">
<tr align="center">
<td>&nbsp;</td>
<td align="left">Ins&eacute;rer un dossier </td>
</tr>
<tr align="center">
<td>titre</td>
<td align="left"><input type="text" name="titre"></td>
</tr>
<tr align="center">
<td>texte</td>
<td><textarea name="texte" cols="40" rows="5"></textarea></td>
</tr>

<tr align="center">
<td>image</td>
<td>
<fieldset>
<legend>Envoi de fichiers</legend>
<label for="photo">Photo :</label><input type="file" name="photo" />
</legend>
</fieldset>
</td>
</tr>

<tr align="center">
<td colspan="2"><input type="submit" value="insÈrer"></td>
</tr>
</table>
</form>
</body>
</html>

------script insert_doss.php----------
<?php
require_once("config.php") ;
include('header.php');


//connection au serveur
$cnx = mysql_connect(SERVEUR, USER, PASS, DB) ;

//sÈlection de la base de donnÈes:
$db = mysql_select_db(DB) ;

//rÈcupÈration des valeurs des champs:
//titre:
$titre = $_POST["titre"] ;
//texte:
$texte = $_POST["texte"] ;

//crÈation de la requÍte SQL:
$sql = "INSERT INTO doss (titre, texte)
VALUES ( '$titre', '$texte' ) " ;

//upload images
if(isset($_FILES['photo']))
{
// parents
unset($erreur);
$extensions_ok = array('png', 'gif', 'jpg', 'jpeg');
$taille_max = 500000;
$dest_dossier = '/localhost:8888/monsite/admin/images/';
// 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-1]+)/i', '_', $dest_fichier);
// copie du fichier
move_uploaded_file($_FILES['photo']['tmp_name'], $dest_dossier . $dest_fichier);
}
}


//affichage de la requÍte SQL pour mieux comprendre ;) :
echo( "<center>".$sql."<br>" ) ;
if(isset($erreur)){
echo '<p>', $erreur ,'</p>';
}
//exÈcution de la requÍte SQL:
$requete = mysql_query($sql, $cnx) or die( mysql_error() ) ;

//affichage des rÈsultats, pour savoir si l'insertion a marchÈe:
if($requete)
echo("<center>L'insertion a ÈtÈ correctement effectuÈe</center>") ;
else
echo("<center>L'insertion ‡ ÈchouÈe</center>") ;

?>

Mammouth du PHP | 19672 Messages

18 mai 2005, 13:01

As-tu un message d'erreur affiché quelque part ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 35 Messages

18 mai 2005, 13:12

non pas de message d'erreur

Eléphanteau du PHP | 46 Messages

18 mai 2005, 13:15

est ce que tu peut reformater ton code c un peux illisible
merci
utilise les balises
 et Code si tu veut
L'informatique c'est ma vie

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

18 mai 2005, 13:16

Tu est sûr que tu vérifie bien dans ce dossier ?
 $dest_dossier = '/localhost:8888/monsite/admin/images/'
Comme tu as défini ton pb,
rien ne va dns le dossier /images/
j'ai l'impression que tu regarde dans ce dossier :
 $dest_dossier = '/localhost:8888/monsite/images/'
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphanteau du PHP | 46 Messages

18 mai 2005, 13:20

je ne vois pas l'utiliter d'utiliser tous ce chemin
'/localhost:8888/monsite/admin/images/' 
tu peut juste utiliser "admin/images/"
L'informatique c'est ma vie

Eléphanteau du PHP | 35 Messages

18 mai 2005, 13:23

oui, j'ai bien vérifier...

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

18 mai 2005, 13:27

Merci ZeRo[^L^]CoOOL de ton soutien mais j'ai préferer donner l'adresse complete du dossier pour être sûr qu'on cherche au bon endroit !!

On se trouve dans la catégorie "Débuter en PHP", ptinicola est peut-être un débutant trsè débutant et dans ce cas je préfère lui donner la solution complète, s'il est un débutant moins débutant, il aura corriger ou même compris tout seul !!!!
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphanteau du PHP | 35 Messages

18 mai 2005, 13:32

je préfère me considérer comme très débutant...
j'ai essayé avec le chemin '/images'/
j'ai le même résultat

merci de votre aide...

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

18 mai 2005, 13:32

et avec le chemin /admin/images ?
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphanteau du PHP | 46 Messages

18 mai 2005, 13:34

d'accord mais si jamais par exemple il a changé du nom du repertoire du script !!!
L'informatique c'est ma vie

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

18 mai 2005, 13:36

Si il a changé le nom du répertoire du script, PHP devrait généré une erreur ne trouvant pas le bon répertoire !!!

Et oui, PHP ne crée pas l'arborescence quand on lui demande de poser un fichier dans un répertoire qui n'existe pas
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphanteau du PHP | 35 Messages

18 mai 2005, 13:38

j'ai essayé '/admin/images/'
même problème
et je n'ai pas changé de nom...

Eléphanteau du PHP | 35 Messages

18 mai 2005, 13:42

Si vous aviez à faire la même chose, c'est à dire un formulaire avec les champs "titre" "texte" "image" vous procéderiez comment ?
Pourque je puisse comparer avec ce que je fais ? Peut-être je trouverez mon erreur ? ...

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

18 mai 2005, 13:42

De toute façon, si tu n'as rien dans ta base, ca aurait été bizarre que les images aient été uploadées
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer