Aide - Recherche - Membres - Calendrier
Version complète : [résolu] Upload sur mon site !!
Forum Webmaster - Ton Webmaster > Conception de sites > Programmation > php
rasta
je fais partis d'une équipe qui jouont sur un jeu vidéo. Nous organisons un championnat off line. C'est des courses de voitures, ildoivent un un temps sur un circuit, et, pour vérifier leur temps, on souhaiterais qu'ils upload leurs replays.

Voici le site ou je teste mon scripte : Teste site...


Voici le script du formulaire :
<!-- Le type d'encodage des données, enctype, DOIT être spécifié comme ce qui suit -->
<form enctype="multipart/form-data" action="verif_upload.php" method="post">
<!-- MAX_FILE_SIZE doit précéder le champs input de type file -->
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
<!-- Le nom de l'élément input détermine le nom dans le tableau $_FILES -->
Envoyez vos replay ici : <input name="userfile" type="file" />
<input type="submit" value="Envoyer le fichier" />
</form>

Et voici le script qui est sencer vérifier l'upload :
<?
if ($_FILES['fichier']['error']) {
switch ($_FILES['fichier']['error']){
case 1: // UPLOAD_ERR_INI_SIZE
echo"Le fichier dépasse la limite autorisée par le serveur !";
break;
case 2: // UPLOAD_ERR_FORM_SIZE
echo "Le fichier dépasse la limite autorisée (<3Mo) !";
break;
case 3: // UPLOAD_ERR_PARTIAL
echo "L'envoi du fichier a été interrompu pendant le transfert !";
break;
case 4: // UPLOAD_ERR_NO_FILE
echo "Le fichier que vous avez envoyé a une taille nulle !";
break;
}
} else {
$destination = 'zikreplay/';
$nom = $destination . $_FILES['fichier']['name'];
if (move_uploaded_file($_FILES['fichier']['tmp_name'], $nom)) {
include("bdd.php");
mysql_query("INSERT INTO ... ); //ajout du ralenti dans la base de donnée
echo "Le fichié à bien été ajouté"
}
}
}
?>

Mais voilà ! Ca ne marche pas ! But why !?

RESOLU !!!!!!!


Edit : J'ai mis à la fil de ce fils de discution le script qui fonctionne !!
manuel
c'est l'insertion en BDD ou l'upload qui fonctionne pas? ou les deux?
rasta
L'insertion en "BDD" !! unsure.gif wacko.gif

Voici l'erreur qu'il m'affiche : Parse error: syntax error, unexpected T_STRING in /data/members/free/multimania/fr/z/i/k/zikteam/htdocs/verif_upload.php on line 36

C'est donc une erreur de syntax sur "verif upload" sur la ligne 36" !

La ligne 36 : echo "Le fichié à bien été ajouté"

J'ai ajouté un point virgule ! mais ca ne marche pas !
GhostMaster34
Attention, ce n'est pas parce que l'erreur te dit ligne 36 qu'elle se trouve ligne 36 unsure.gif

Elle peut très bien se trouver 10 ligne plus haut tongue.gif

Vérifie ton code et regarde si tu n'a pas oublier un " ou ' ou ;
Guy
Salut,

ceci me semble plus adapté (un "}" enlevé :

<?
if ($_FILES['fichier']['error']) {
switch ($_FILES['fichier']['error']){
case 1: // UPLOAD_ERR_INI_SIZE
echo"Le fichier dépasse la limite autorisée par le serveur !";
break;
case 2: // UPLOAD_ERR_FORM_SIZE
echo "Le fichier dépasse la limite autorisée (<3Mo) !";
break;
case 3: // UPLOAD_ERR_PARTIAL
echo "L'envoi du fichier a été interrompu pendant le transfert !";
break;
case 4: // UPLOAD_ERR_NO_FILE
echo "Le fichier que vous avez envoyé a une taille nulle !";
break;
}
} else {
$destination = 'zikreplay/';
$nom = $destination . $_FILES['fichier']['name'];
if (move_uploaded_file($_FILES['fichier']['tmp_name'], $nom)) {
include("bdd.php");
mysql_query("INSERT INTO ... ); //ajout du ralenti dans la base de donnée
echo "Le fichié à bien été ajouté";
}
}
?>

de l'intérêt de la notation hongroise smile.gif
rasta
Toujours une erreur ! "Parse error: syntax error, unexpected T_STRING in /data/members/free/multimania/fr/z/i/k/zikteam/htdocs/verif_upload.php on line 39"

Mais comme je viens de rentrer du boulot, et qu'il est 5h30... Je vais dormir !! blink.gif

GhostMaster34
Bon allez, j'ai vérifier ton code complet, même tester à plusieurs reprise !

il n'y avait pas que le Parse error qui t'aurait embetter unsure.gif

On commence :

quand tes visiteur / membre t'envois un fichier, il passe avec la valeur "userfile" :

CITATION
Envoyez vos replay ici : <input name="userfile" type="file">


Et dans ton script de vérification, tu prend la valeur "fichier" alors que tu devrait reprendre "userfile" :

CITATION
<?
if ($_FILES['fichier']['error']) {
switch ($_FILES['fichier']['error']){


Voilà déja ta première erreur wacko.gif

Ensuite, effectivement tu avait oublier un ; et un } en trop .

Voici ton code sans erreur et qui fonctionne biggrin.gif :

CODE


<?php
if ($_FILES['userfile']['error']) {
switch ($_FILES['userfile']['error']){
case 1: // UPLOAD_ERR_INI_SIZE
echo"Le fichier dépasse la limite autorisée par le serveur !";
break;
case 2: // UPLOAD_ERR_FORM_SIZE
echo "Le fichier dépasse la limite autorisée (<3Mo) !";
break;
case 3: // UPLOAD_ERR_PARTIAL
echo "L'envoi du fichier a été interrompu pendant le transfert !";
break;
case 4: // UPLOAD_ERR_NO_FILE
echo "Le fichier que vous avez envoyé a une taille nulle !";
break;
}
} else {
$destination = "zikreplay/";
$nom = $destination . $_FILES['userfile']['name'];
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $nom)) {
include("bdd.php");
mysql_query("INSERT INTO ... "); //ajout du ralenti dans la base de donnée
echo "Le fichier à bien été ajouté";
}
}
?>


voilà, teste et normalement, ca fonctionne smile.gif

Enfin, si ca fonctionne chez moi et pas chez toi, c'est que ton serveur est nullissime tongue.gif

PS : n'oublie pas si ce n'est déja fait de créer ton repertoire " zikreplay " laugh.gif
rasta
Alors toi "GhostMaster34"... T'as grave assuré !!! laugh.gif tongue.gif


En faite, ma prepiere erreur donc, c'est d'avoir pris les script à deux endroit different sans même avoir vu qu'il n'étais pas compatible ! Le seul truc que j'ai vu, c'est qu'il manqué le point virgule !

Merci pour ton aide, et merci au autre aussi quand même ! Ca nous enleve une grande épine du pied ! A moi maintenant de comprendre pour savoir reconnaitre ce genre d'erreur !

Voilà le script complet pour upload des fichiers !


Le formulaire :

CODE
<CENTER><!-- Le type d'encodage des données, enctype, DOIT être spécifié comme ce qui suit -->
<form enctype="multipart/form-data" action="verif_upload.php" method="post">
<!-- MAX_FILE_SIZE doit précéder le champs input de type file -->
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
<!-- Le nom de l'élément input détermine le nom dans le tableau $_FILES -->
Envoyez vos replay ici : <input name="userfile" type="file" />
<input type="submit" value="Envoyer le fichier" />
</form></CENTER>


La vérification de l'upload : Nom de la page "verif_upload.php".

CODE
<?php
if ($_FILES['userfile']['error']) {
switch ($_FILES['userfile']['error']){
case 1: // UPLOAD_ERR_INI_SIZE
echo"Le fichier dépasse la limite autorisée par le serveur !";
break;
case 2: // UPLOAD_ERR_FORM_SIZE
echo "Le fichier dépasse la limite autorisée (<3Mo) !";
break;
case 3: // UPLOAD_ERR_PARTIAL
echo "L'envoi du fichier a été interrompu pendant le transfert !";
break;
case 4: // UPLOAD_ERR_NO_FILE
echo "Le fichier que vous avez envoyé a une taille nulle !";
break;
}
} else {
$destination = "Nom du fichier ou sera l'upload/";
$nom = $destination . $_FILES['userfile']['name'];
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $nom)) {
include("bdd.php");
mysql_query("INSERT INTO ... "); //ajout du ralenti dans la base de donnée
echo "Le fichier à bien été ajouté";
}
}
?>


Il faut faire attention : A bien nommer la verif, dans ce script, elle est baptisé "verif_upload.php" et créer un dossier où sera accueilli l'upload
CODE
$destination = "Nom du fichier ou sera l'upload/";
GhostMaster34
De rien smile.gif

Au plaisir de te re fournir une aide (dans la mesure de nos capacités bien sûr tongue.gif )

C\'est une version "bas débit" de notre forum. Pour voir la version complète avec plus d\'information, la mise en page et les images, veuillez cliquez ici.
Invision Power Board © 2001-2012 Invision Power Services, Inc.