Remplir une base

Eléphant du PHP | 440 Messages

22 déc. 2009, 16:04

j'ai modifié le formulaire ainsi
 <input type="hidden" name="MAX_FILE_SIZE" value="500000" /><input type="file" name="photo" size="20" value="photo">
voici le nouveau message !
array(1) {
["photo"]=>
array(5) {
["name"]=>
string(6) "n3.jpg"
["type"]=>
string(10) "image/jpeg"
["tmp_name"]=>
string(14) "/tmp/phpGrpZjp"
["error"]=>
int(0)
["size"]=>
int(78443)
}
}



Warning: move_uploaded_file(www/upload/n3.jpg) [function.move-uploaded-file]: failed to open stream: No such file or directory in /homez.99/sudnetwo/www/add.php on line 67



Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpGrpZjp' to 'www/upload/n3.jpg' in /homez.99/sudnetwo/www/add.php on line 67

Attaque potentielle par téléchargement de fichiers.
Voici plus d'informations :
Voici quelques informations de débogage :Array
(
[photo] => Array
(
[name] => n3.jpg
[type] => image/jpeg
[tmp_name] => /tmp/phpGrpZjp
[error] => 0
[size] => 78443
)

)

Vos infos on été modifiées.

Problème ligne 67 ??
la voici et suivantes :
if (move_uploaded_file($_FILES['photo']['tmp_name'], $uploadfile)) {
    echo "Le fichier est valide, et a été téléchargé
           avec succès. Voici plus d'informations :\n";
} else {
    echo "Attaque potentielle par téléchargement de fichiers.
          Voici plus d'informations :\n";
}

echo 'Voici quelques informations de débogage :';
print_r($_FILES);
Débutant complet en php/mysql. Merci pour votre aide.

Mammouth du PHP | 672 Messages

22 déc. 2009, 16:55

Warning: move_uploaded_file(www/upload/n3.jpg) [function.move-uploaded-file]: failed to open stream: No such file or directory in /homez.99/sudnetwo/www/add.php on line 67
Y'a du progès :? Maintenant, tu uploades bien le fichier...
A priori, je dirais que tu essaye de créer ton fichier dans un répertoire qui n'existe pas.
Tu n'as pas mis de '/' au début de ta chaine www/upload. du coup, c'est un chemin relatif.
Il y a un répertoire www dans le répertoire d'éxécution de ton script ?

Si on respecte les "normes" habituelles, www est à la racine. Du coup, il faudrait faire :
$uploaddir = '/www/uploads/';

Eléphant du PHP | 440 Messages

22 déc. 2009, 17:19

if(isset($_FILES['photo']))      $photo=$_FILES['photo'];
else      $photo="";
$uploaddir = '/www/upload/';
$uploadfile = $uploaddir . basename($_FILES['photo']['name']);
if (empty($_FILES)) {
   echo 'Rien !';
}
else {
   echo '<pre>';
   var_dump($_FILES);
   echo '</pre>';
}
echo '<pre>';
if (move_uploaded_file($_FILES['photo']['tmp_name'], $uploadfile)) {
    echo "Le fichier est valide, et a été téléchargé
           avec succès. Voici plus d'informations :\n";
} else {
    echo "Attaque potentielle par téléchargement de fichiers.
          Voici plus d'informations :\n";
}

echo 'Voici quelques informations de débogage :';
print_r($_FILES);

echo '</pre>';

Voici le code complet ; j'ai mis un / mais cela ne change rien.
Débutant complet en php/mysql. Merci pour votre aide.