Problème d'upload

Résolu
hack_net Messages postés 814 Statut Membre -  
hack_net Messages postés 814 Statut Membre -
Bonjour,

j'ai un script d'upload que voila :

<?php
session_start(); // On démarre la session AVANT toute chose

if(!isset($_SESSION['pseudo']) || !isset($_SESSION['mdp'])){
	@header("Location: index.php");
}

if($_SESSION['pseudo'] == "usr1" && $_SESSION['mdp'] == "mdp1"){
	include "connect.inc.php";
	if(isset($_POST['book'])){
		extract($_POST);
		if ($_FILES['book']['error']) {
			switch ($_FILES['book']['error']){
				case 1: // UPLOAD_ERR_INI_SIZE
					echo "<span style=\"color: red; font-weight: bold;\">Le fichier dépasse la limite autorisée par le serveur (fichier php.ini) !</span>";
					exit();
				break;
				case 2: // UPLOAD_ERR_FORM_SIZE
					echo "<span style=\"color: red; font-weight: bold;\">Le fichier dépasse la limite autorisée dans le formulaire HTML !</span>";
					exit();
				break;
				case 3: // UPLOAD_ERR_PARTIAL
					echo "<span style=\"color: red; font-weight: bold;\">L'envoi du fichier a été interrompu pendant le transfert !</span>";
					exit();
				break;
				case 4: // UPLOAD_ERR_NO_FILE
					echo "<span style=\"color: red; font-weight: bold;\">Le fichier que vous avez envoyé a une taille nulle !</span>";
					exit();
				break;
			}
		}
		else {
			if ((isset($_FILES['book']['fichier'])&&($_FILES['book']['error'] == UPLOAD_ERR_OK))) {
				$chemin_destination = '/var/www/nouvesse/akli-rom1/upload/';
				move_uploaded_file($_FILES['book']['tmp_name'], $chemin_destination.$_FILES['book']['name']);
				$nom = $_FILES['name'].$_FILES['type'];
				$rq1 = mysql_query("INSERT INTO fichiers VALUES('', '".$_SESSION['pseudo']."', '".time()."', '".time()."', '".$nom."')") or die("Erreur");
				echo "<span style=\"color: red; font-weight: bold;\">Le fichier a bien été uploadé !</span>";
				echo "<br><br><a href=\"\">Retour</a>";
				exit();
			}
		}
	}
	elseif(isset($_POST['down'])){
		extract($_POST);
		$rq2 = mysql_query("UPDATE fichiers SET date_down='".time()."'") or die("Impossible MAJ");
		@header("Location: upload/$down");
	}
	else{
		$rq2 = mysql_query("SELECT * FROM fichiers");
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title><?php echo $_SESSION['pseudo']; ?>...</title>
 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
 <link href="default.css" rel="stylesheet" type="text/css">
</head>
<body>
 <h1><?php echo $_SESSION['pseudo']; ?>...</h1>
	<div align="center" style="margin-top: 100px;">
	<form action="" method="post" enctype="multipart/form-data">
	<input type="hidden" name="max_file_size"  value="2048">
	Envoie d'un fichier : <input type="file" name="book"><br><br>
	<input type="submit" value="Envoyer"><br>
	</form>
	<table width="1000px" style="margin: 200px 0 50px 0;">
		<tr>
			<th>Auteur :</th>
			<th>Date envoie :</th>
			<th>Télécharger :</th>
		</tr>
	<?php
	while($tab = mysql_fetch_array($rq2)){
		if($tab['date_envoie'] != $tab['date_down']){
			echo "\t<tr class=\"imp\">\n";
		}else{
			echo "\t<tr>\n";
		}
		echo "\t\t<td>".$tab['auteur']."</td>\n";
		echo "\t\t<td>".$tab['date_envoie']."</td>\n";
		echo "\t\t<td><input type=\"submit\" name=\"down\" value=\"Télécharger ".$tab['nom']." !\"></td>\n";
		echo "\t</tr>\n";
	}
	?>
	</table>
	</div>
 <h2 id="deco"><a href="logout.php">Déconnexion</a></h2>
<div class="copyright">
<p>Bouk1 a 2 by FotoXe33 développer pour nouvesse seulement.<br>Contact : [email protected]</p>
</div>
</body>
</html>
<?php
	}
}else{ // Sinon (les id ne sont pas bons)
	@header("Location: index.php"); // On le redirige à l'index
}
?>



Le problème, c'est qu'il ne marche pas, et qu'il ne m'affiche aucuns message...

Pouvez-vous m'aider ?

Merci d'avance...

--
Ce n’est pas parce que un chemin prend la direction que l’on souhaite, qu’il nous amène où l’on veut.
La colère envers autrui reflète toujours la tristesse interne.
Rien n’est blanc ou noir, tout est gris clair ou gris foncé.
Le silence et la pensée sont les armes les plus puissantes.
Configuration: Linux Ubuntu 8.10
AMD Athlon 64X2 Dual Core processor 4200+ 2.20 GHz
1,87 Go de RAM
ATI Radeon Xpress 1250
Lecteur/Graveur DVD TSST corp CDDVDW SH-S203D

4 réponses

avion-f16 Messages postés 19268 Date d'inscription   Statut Contributeur Dernière intervention   4 511
 
Essaye la méthode de ce tutoriel.
0
hack_net Messages postés 814 Statut Membre 51
 
J'ai fait un copier coller de ce script (j'ai juste changer le nom du dossier), mais page blanche ! Je l'ai alors modifier comme suit :

<?php
// Testons si le fichier a bien été envoyé et s'il n'y a pas d'erreur
if (isset($_FILES['monfichier']) AND $_FILES['monfichier']['error'] == 0){
        // Testons si le fichier n'est pas trop gros
        if ($_FILES['monfichier']['size'] <= 1000000){
                // Testons si l'extension est autorisée
                $infosfichier = pathinfo($_FILES['monfichier']['name']);
                $extension_upload = $infosfichier['extension'];
				$nom = $infosfichier.$extension_upload;
                $extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png', 'doc', 'odt', 'docx', 'pdf', 'txt', 'php');
                if (in_array($extension_upload, $extensions_autorisees)){
                        // On peut valider le fichier et le stocker définitivement
                        move_uploaded_file($_FILES['monfichier']['tmp_name'], 'upload/' . basename($_FILES['monfichier']['name']));
						$rq1 = mysql_query("INSERT INTO fichiers VALUES('', '".$_SESSION['pseudo']."', '".time()."', '".time()."', '".$nom."')") or die("Erreur");
                        echo "L'envoi a bien été effectué !";
                }
				else{
					echo "Extension non-autorisée !";
				}
        }
		else{
			echo "Fichier trop volumineux !";
		}
}
else{
	switch ($_FILES['book']['error']){
		case 1: // UPLOAD_ERR_INI_SIZE
			echo "<span style=\"color: red; font-weight: bold;\">Le fichier dépasse la limite autorisée par le serveur (fichier php.ini) !</span>";
			exit();
		break;
		case 2: // UPLOAD_ERR_FORM_SIZE
			echo "<span style=\"color: red; font-weight: bold;\">Le fichier dépasse la limite autorisée dans le formulaire HTML !</span>";
			exit();
		break;
		case 3: // UPLOAD_ERR_PARTIAL
			echo "<span style=\"color: red; font-weight: bold;\">L'envoi du fichier a été interrompu pendant le transfert !</span>";
			exit();
		break;
		case 4: // UPLOAD_ERR_NO_FILE
			echo "<span style=\"color: red; font-weight: bold;\">Le fichier que vous avez envoyé a une taille nulle !</span>";
			exit();
		break;
	}
}
?>


Toujours page blanche, aucun message, rien !!!

Savez-vous d'où le problème vient ?

Merci d'avance...
0
hack_net Messages postés 814 Statut Membre 51
 
Voila, je viens d'en trouver un autre :

<?php
$dossier = 'upload/';
if(!is_dir($dossier)){
	echo "Pas de dossier !!!";
}
$fichier = basename($_FILES['book']['name']);
$taille_maxi = 100000;
$taille = filesize($_FILES['book']['tmp_name']);
$extensions = array('.jpg', '.jpeg', '.gif', '.png', '.doc', '.odt', '.docx', '.pdf', '.txt');
$extension = strrchr($_FILES['book']['name'], '.'); 
//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)){ //Si l'extension n'est pas dans le tableau
	$erreur = 'Vous devez uploader un fichier de type jpg, jpeg, gif, png, doc, odt, docx, pdf, ou txt...';
}
if($taille>$taille_maxi){
	$erreur = 'Le fichier est trop gros...';
}
if(!isset($erreur)){ //S'il n'y a pas d'erreur, on upload
	//On formate le nom du fichier ici...
	$fichier = strtr($fichier, 
		'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
		'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
	$fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
	if(move_uploaded_file($_FILES['book']['tmp_name'], $dossier . $fichier)){ //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
		$rq1 = mysql_query("INSERT INTO fichiers VALUES('', '".$_SESSION['pseudo']."', '".time()."', '".time()."', '".$nom."')") or die("Erreur");
		echo 'Upload effectué avec succès !';
	}
	else{ //Sinon (la fonction renvoie FALSE).
		echo 'Echec de l\'upload !';
	}
}
else{
	echo $erreur;
}
?>


Le seul message qui s'affiche c'est "Echec de l'upload !".

Pourquoi ?
0
hack_net Messages postés 814 Statut Membre 51
 
Problème résolut, ça venait de mon hébergeur qui ne me laissé pas accès au dossier de stockage temporaire.
0