pb d'upload-non reception des fichiers, et de lemail du ok

amateurwill
Invité n'ayant pas de compte PHPfrance

01 avr. 2007, 11:52

bonjour a vous,
je me suis initié un peu au php:
et j'ai arrangé un peu ce code que l'on m'a donné, et qui repond a mon besoin actuelle.
son but final est la suivante:
sur une page, securisé avec un login,et mot de pass ;faire un upload de fichiers quelque soit le type dans ma directory :depos_fichiers/ qui est en droit a 755 chez mon hebergeur.
entre temp,un mail m'est envoyé chez mon hebergeur,pour m'avertir que telle personne m'a deposé des fichiers.
j'ai definis, durant le processus, des intermédiaires quand il y a des succes,ou des erreur durant le transfert,par des informations durant la manipe.
mon probleme,est que j'ai un message m'informant que les fichiers sont bien uploader, avec succes ainsi qu'un mail envoyé au gerant.
et malheureusemen je ne vois ni les fichiers dans ma repertoire, et ni mon mail m'informant la manipe faite..
quelqun pourrait t'il me donner un coup de main, sur mon bloccage du script.
codialement et merci de tous eclaircissement.
voici le code utilisé:
<?php
		echo "Depos des fichiers-Restanla<br><br>";
$dest = "[email protected]";
$up_full = "http://www.restanla.gp/depos_fichiers/";
$up_dir = "www.restanla.gp/depos_fichiers/";
$UploadNum = "6";
/*0 is for most hosts (default value). 
	1 is for Online.Net (Online). */
	$online_isp = "0";	
// --------------------------------------------------------------------------------- //

function unique_id()
{
	$taille = 6;
	$new_pass = '';
	$lettres = "abcdefghijklmnpqrstuvwxyz123456789";
	srand(time());
	for ($i=0;$i<$taille;$i++)
	{
		$new_pass.=substr($lettres,(rand()%(strlen($lettres))),1);
	}
define("timer", $new_pass);
}
unique_id();
ini_set("sendmail_from", $dest);

if(isset($_POST["submit"]))
{
// ------------------------ Fields Verification Process ------------------------- //

	 $From = preg_replace("/\r/", "", $_POST['From']); 
	 $From = preg_replace("/\n/", "", $_POST['From']);
	 $Name = preg_replace("/\r/", "", $_POST['Name']); 
	 $Name = preg_replace("/\n/", "", $_POST['Name']);

	$Nada = '';
	$Msg  = $_POST['Msg'];


	if(empty($From))
	{                 
    		$Nada.="Le champ d'email est vide !<br>";
	}
	if(empty($Msg))
	{
    		$Nada.="Le champ de message est vide!<br>";
	}
	$noway = "$Nada" ;
	
	if(empty($Nada) && 
	eregi("^[a-z0-9]+([_.-][a-z0-9]+)*@([a-z0-9]+([.-][a-z0-9]+)*)+\\.[a-z]{2,4}$",$From))
	{
		$ok = TRUE;
	}
	elseif(!empty($Nada) && 
	eregi("^[a-z0-9]+([_.-][a-z0-9]+)*@([a-z0-9]+([.-][a-z0-9]+)*)+\\.[a-z]{2,4}$",$From))
	{
		$ok = FALSE;
	}
	else
	{
		$ml = "votre adresse email est pas correct !<br>";
		$ok = FALSE;
	}
// ------------------------------------------------------------------------- //

// ----------------------------- Upload Files ------------------------------ //
	$status    = '';
	$new_name  = '';
	$get_files = '';
	$all_names = '';
	
	for($i=0;$i<count($_FILES["fileup"]["tmp_name"]);$i++)
	{
		$name=$_FILES["fileup"]["name"][$i];
		$temp=$_FILES["fileup"]["tmp_name"][$i];
		$size=$_FILES["fileup"]["size"][$i];
		$type=$_FILES["fileup"]["type"][$i];
		$h = time();
		if($size > 0)
		{
			global $up_dir, $all_names;
			
			$new_name = $h .'-'. constant('timer') . '-' . $name;
			$new_name = strtr($new_name, " àäåéèêëïîôöùüûñ()[]'~$&%*@ç!?;,:/^?{}|+",  "_aaaeeeeiioouuun____________________E____"); 
			@move_uploaded_file($temp, $up_dir . $new_name);
			$all_names.= "$new_name\n";
		}
	}
// ------------------------------------------------------------------------- //

// ----------------------------- Upload Messages --------------------------- //
	if(empty($all_names))
	{
		$status   = "votre fichier n'est pas chargé.";
	}
	else
	{
		$status    = "Votre ou vos fichiers ont été deposés avec Succes.";
		$get_files = "\nGet the file(s): $up_full";
	}
//--------------------------------------------------------------------------- //

// ----------------------------- Mail Builder ------------------------------ //
	if($ok == "TRUE")
	{
		$referer = $_SERVER["HTTP_REFERER"];
 		$subject = "Feedback";
 		$body    = "Origin: $referer\n";
 		$body.="\n***** Results *****\n\n";

		if(count($_POST))
 		{
			while(list($key, $val) = each($_POST))
			{
				$body.="$key : $val\n";
    		}  
 		}

 		$body.="\n\n";
		$body.="depos_fichiers: $status\n";
		$body.="$all_names\n";
		$body.="$get_files\n";
 		$body.="*************************\n";
		
        $body = stripslashes($body);
  
 		if($online_isp == "1")
 		{
			if(!email("feedback",$dest,$sujet,$body))
			{
				print "Erreur durant l'envois de votre mail <br>";
			}
 		}
 		else
		{
			$header  = '';
			$header.= 'From: "' . $Name . '" <' . $From . ">\r\n";
			$header.= 'Reply-To: "' . $Name . '" <' . $From . ">\r\n";
			$header.= "X-Mailer: PHP/" . phpversion();

			if(!mail($dest, $subject, $body, $header ))
			{
				print "Erreur durant l'envois de votre mail <br>";
			}
		}
// ------------------------------------------------------------------------- //

// ---------------------------- Success Message ---------------------------- //
?>

<html><head><title>Status correct!</title>
</head><body bgcolor="white">
<center><table width="450" border="0" cellspacing="0" cellpadding="0"><tr>
<td width="100%" bgcolor="#000000">
<table width="550" border="0" cellspacing="1" cellpadding="2"><tr>
<td colspan="2" bgcolor="#ffffff"><div align="center"><br>
Merci a vous !<br><br>Votre message a bien été envoyé au webmaster d'ici peu vous recevrez une réponse.<br><br>
<?php echo $status; ?>
<br><p>&nbsp;</p><p>&nbsp;</p>
<p><a href="http://www.restanla.gp/">Retour a la page de maintenance</a></p><br></div>
<font size="-2"><a href="http://www.restanla.gp/" target="_blank">Envoyé votre mail-maintenant!</a></font> 
</tr></table>
</td></tr></table></center></body>
<!--This script sources from SkyMinds.Net (http://www.skyminds.net/) -->
</html>
<?php
	}
// ------------------------------------------------------------------------- //
	else
	{
// ----------------------------- Error Message ----------------------------- //
?>
<html><head><title>Status Erreur!</title>
</head><body bgcolor="white">
<center><table width="450" border="0" cellspacing="0" cellpadding="0"><tr>
<td width="100%" bgcolor="#000000">
<table width="550" border="0" cellspacing="1" cellpadding="2"><tr>
<td colspan="2" bgcolor="#ffffff"><div align="center"><br><b>
<?php 
echo $noway;
echo $ml;
?>
</b><p><br><br>Votre mail n'a pas été envoyé correctement.noter les messages d'érreurs et appuyer sur retour a la page maintenance pour essayer encore <br> si le probleme persiste toujours <a href="http://www.restanla.gp/">contacter le webmaster</a> pour résoudre le probleme.</p>
<p>&nbsp;</p><p>&nbsp;</p>
<p><a href='Javascript:history.go(-1)'>RETOUR</a></p><br></div>
<font size="-2"><a href="http://www.restanla.gp/" target="_blank">Envoyé votre email-maintenant!</a></font>
</tr></table>
</td></tr></table></center></body>
</html>
<?php
// ------------------------------------------------------------------------- //
	} 
}
else
{
	$num = 0;
	$upload_box = '';
	while($num < $UploadNum)
	{
		$num++;
		$upload_box.= "<tr><td><font size='-1' face='verdana'>&nbsp;&nbsp;&nbsp;File $num:</font></td><td><input name='fileup[]' type='file'></td>";
	}
?>
<html>
<head>
<title>Contact form</title>
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#003399" vlink="#003399" alink="#003399"
topmargin=" 0" leftmargin="0" marginwidth="0" marginheight="0" style="border: 1">
<!--
<table border="0" width="60%" align="center"><tr><td valign="top">
<table border="1" width="70%" bordercolor="#000000" bordercolordark="#FFFFFF" cols="1" align="center"><tr><td> 
<form action="<?php echo $_SERVER['../depos_fichiers/PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
<table border="0" bordercolor="#000000" height="100" align="center"><tr> 
<td height="5" width="218"><font size="2" face="Arial, Helvetica, sans-serif"><b>Email : </b></font></td><td height="5" width="249"><input type="text" size="30" maxlength="255" name="From" style="background-color: #CCCCCC;font: verdana; color: #000000; border: 0px;" value=""></td></tr><tr><td height="5" width="218"><font size="2" face="Arial, Helvetica, sans-serif">Nom : </font></td><td height="5" width="249"><input type="text" size="30" name="Name" style="background-color: #CCCCCC;font: verdana; color: #000000; border: 0px;" value=""></td></tr></table>
<p align="center"><b><font size="2" face="Arial, Helvetica, sans-serif">Message : </font></b><br><textarea name="Msg" cols="45" rows="7"></textarea><br></p>
<table width="95%" border="0" align="center"><tr align="center"><td>&nbsp;</td>
<?php echo $upload_box; ?></tr></table>
<p align="center"><br>
<input type="reset" name="reset" value=" Effacer ">
<input type="submit" name="submit" value=" Envois " style="background-color:#CCCCCC">
</p>
</form>
<font size="-2"><a href="http://www.restanla.gp/" target="_blank">Envoyé votre mail-maintenant!</a></font>
</td></tr></table>
</td></tr></table>
</body>
</html>
<?php } ?>
merci a vous dans l'attente

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

01 avr. 2007, 15:23

Enlève donc le @ devant le move_uploaded_file() .. si tu as un message d'erreur sur l'upload du fichier, autant en être informé, c'est plus facile pour corriger ;)

M'est avis que php ne peut pas copier le fichier dans ton dossier. Les droits 755 sur un dossier donnent les accès suivants :
Propriétaire (7) : Lecture (4), Ecriture (2), Exécution (1)
Groupe (5) : Lecture (4), Exécution (1)
Autres (5) : Lecture (4), Exécution (1)

M'est avis que php doit faire partie des "Autres" et n'a donc pas le droit d'y déplacer le fichier.. enfin une fois encore, avec un message d'erreur, ce sera surement plus probant :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Petit nouveau ! | 3 Messages

08 avr. 2007, 09:46

vraiement, merci de ta réponse
pour les 2 constatations, je procede alors a corriger ses 2 anomalies.
je te tiens informé.
cordialement.