problème script upload

orix
Invité n'ayant pas de compte PHPfrance

11 sept. 2006, 21:47

Bonsoir à tous !

J'ai un problème sur ce script d'upload ! Si quelqu'un voudrait bien m'aider svp :(
<?php
$ok = 0;
if(isset($_POST['upload'])) {
	$temp = $_FILES['fichier']['tmp_name'];
	if(!is_uploaded_file($temp)) {
		exit("Erreur ! Fichier introuvable");
	}
	
	$type = $_FILES['fichier']['type'];
	if(!strstr($type, 'rar')) {
		exit("Erreur ! Cette extension n'est pas autorisée");
	}
	
	$dir = 'upload/';
	$name = $_FILES['fichier']['name'];
	if(!move_uploaded_file($temp, $dir . $name)) {
		exit("Erreur lors de la copie du fichier dans le répertoire de destination !");
	} else {
		$ok = 1;
	}
}

if($ok == 1) { echo '<center>Upload terminée !<br>Lien de téléchargement : <a href="http://www.monsite.com/'.$dir.''.$name.'">ici</a><br><a href="index.html>Retour</a></center>'; }

?>
Merci à celui qui pourra m'apporter un peu d'aide :?

Mammouth du PHP | 19672 Messages

11 sept. 2006, 21:50

On pourrait peut-être si tu nous exposais la nature du problème... :-k
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

11 sept. 2006, 22:51

On pourrait peut-être si tu nous exposais la nature du problème... :-k
Bein ça parrait logique... ça marche pô :cry: ......... #-o

Toujours accompagner un message avec une ligne explicative de l'erreur :wink:

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

orix
Invité n'ayant pas de compte PHPfrance

11 sept. 2006, 23:01

Il n'y a pas de message d'erreur

mon index :

Code : Tout sélectionner

<html><body> <form method="post" action="upload.php" enctype="multipart/form-data"> <p> <input type="file" size="25" name="upload" value="Parcourir" /><br> <input type="submit" value="Valider!" /></p></form> </body></html>

Quand je cliques sur valider, la page upload.php reste blanche ! Pas d'erreur :cry:

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

11 sept. 2006, 23:07

rajoute des "sinon" (else) au tests:
if(..)
{}
else
   echo 'erreur pour le test... machin';

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

Eléphant du PHP | 100 Messages

12 sept. 2006, 11:47

voici ton script corrigé, commenté, et testé :D :
<?php

	// niveau d'erreur au maximum
	error_reporting(E_ALL);

	// path de destination pour le fichier uploadé
	$destination = 'upload/';

	// message de retour
	$message = "";

	// vérifie qu'un fichier a bien été recu
	if(isset($_FILES['upload']) && $_FILES['upload']['size']>0)
	{
		// recupere l'extension du fichier
		if($info = pathinfo($_FILES['upload']['name']))
		{
			// si l'extension est bien RAR
	        if(strtolower($info['extension'])=='rar')
	        {
				// copie le fichier uploadé vers le répertoire de destination
				if(move_uploaded_file($_FILES['upload']['tmp_name'], $destination.$_FILES['upload']['name']))
				{
				    $message = '<center>Upload terminée !<br>Lien de téléchargement : <a href="http://www.monsite.com/'.$destination.$_FILES['upload']['name'].'">ici</a><br><a href="index.html>Retour</a></center>';
				}
				else $message =  "Erreur lors de la copie du fichier dans le répertoire de destination !";
	        }
	        else $message =  "Erreur ! Cette extension n'est pas autorisée";
		}
	}

	print $message;

?>
avec le même source HTML

Code : Tout sélectionner

<html> <body> <form method="post" action="upload.php" enctype="multipart/form-data"> <p> <input type="file" size="25" name="upload" value="Parcourir" /> <br> <input type="submit" value="Valider!" /> </p> </form> </body> </html>
Script gratuit de videothèque: PhpMesFilms
sur http://phpmesfilms.dyndns.org/

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

12 sept. 2006, 11:54

Mouais... m'est avis qu'il aurait été plus judicieux de le laisser trouver que son champ s'appelait "upload" et qu'il testait $_FILES['fichier'][...] au lieu de $_FILES['upload'][...] plutôt que de lui donner un autre code...

orix
Invité n'ayant pas de compte PHPfrance

13 sept. 2006, 17:47

Ok, merci pour la correction :!: :D

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

13 sept. 2006, 17:49

Est-ce Résolu du coup ?

/!\ 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

13 sept. 2006, 20:57

Ton script fonctionne sans problème en effet, mais en faisant comme a dit Ryle, remplacer fichier par upload, ne fonctionne pas non, donc je ne comprends toujours pas :cry: !

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

13 sept. 2006, 21:12

C'était pas mon script :wink:

Ceci dit as tu ajouté les différents else pour voir ou ca coince ?

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