J'ai realisé un script d'upload mais lorsque j'essaie sur ma machine qui n'est pas connectée avec easyPHP, l'upload marche mais lorsque j'envoie les fichiers sur mon serveur ça m'affiche le message d'erreur suivant:
Warning: move_uploaded_file(photos/arton11361.jpg): failed to open stream: Permission denied in /home/jed/public_html/admin/ajouter_photo.php on line 51
Warning: move_uploaded_file(): Unable to move '/tmp/phpAqo3l0' to 'photos/arton11361.jpg' in /home/jed/public_html/admin/ajouter_photo.php on line 51
<?php
session_start();//On créer comme sur l'index une session avant toute autre action
//Si la variable de session n'est pas déclaré
if (!isset($_SESSION['droits']))
{
//on redirige vers l'index pour une identification
header("location:login.php");
}
else//si la variable de session droits est déclaré
{
include ("droits.php");// On inclus la page où l'on définit les droits.
// Le formulaire en semi-HTML (il y aura du php à cause des droits)
?>
<html>
<head>
<title>.:: JOURNALISTE EN DANGER ::.</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="jed.css" rel="stylesheet" type="text/css">
<style type="text/css">
<!--
body {
background-color: #eeefe2;
}
-->
</style>
<link href="../jed.css" rel="stylesheet" type="text/css">
</head>
<body>
<?PHP
//Initialisation de la variables $infos
$infos = '';
//Pour savoir si le fichier a été uploadé, on vérifie que le fichier est bien dans le tableau des fichiers
if (!empty($_FILES['fichier1']['size'])){
//On récupère la taille, le nom et le nom du fichier temporaire
$f1_size = $_FILES['fichier1']['size'];
$f1_name = $_FILES['fichier1']['name'];
$f1_tmpname = $_FILES['fichier1']['tmp_name'];
//Récupération de l'extension du fichier (on prend ce qui suit le dernier point et on le met en minuscule
$ext = strtolower(substr($f1_name,strrpos($f1_name, ".")+1));
//Création du tableau des extensions acceptées
$valides = array("bmp","jpg","gif","png","tif","wbmp");
//On vérifie la taille et le type de fichier
if ($f1_size > 2000000) $infos .= "- Le fichier est trop volumineux!<br>";
if (!in_array($ext,$valides)) $infos .= "- Ce type de fichier n'est pas accepté!<br>";
//Si tout est bon (aucune erreur dans $infos), on déplace le fichier
if ($infos == ''):
move_uploaded_file($f1_tmpname, "photos/{$f1_name}") or $infos .= "- Impossible d'enregistrer le fichier, contacter le webmaster!<br>";
if ($infos == ''){
$res = mysql_connect('localhost','jed_root','jed');
mysql_select_db('jed_jed',$res);
$add = mysql_query("INSERT INTO uploads VALUES ('','{$f1_name}',{$f1_size});");
}
endIf;
}else $infos .= "- Vous devez sélectionner la photo à uploader!<br>";
//Si le formulaire n'a pas encore été validé, on n'affiche pas les erreurs
if (empty($_POST['MAX_FILE_SIZE'])) $infos = '';
//Si il y a eu une erreur ou si le formulaire n'a pas encore été validé (Facile à savoir, tant que le formulaire n'est pas validé, MAX_FILE_SIZE est vide), on l'affiche
if ($infos != '' || empty($_POST['MAX_FILE_SIZE'])):
//Affichage des informations d'erreur au début du formulaire
?>
<form name="envoie" method="post" action="ajouter_photo.php" enctype="multipart/form-data">
<table width="491" height="222" border="0" align="center">
<tr bgcolor="#bdced9">
<td height="6" colspan="2"><div align="center" class="B">
<div align="center" class="PageSubTitle">
<div align="center">ADMIN JOURNALISTE EN DANGER. V1.0 </div>
</div>
</div></td>
</tr>
<tr>
<td height="6" colspan="2">
</td>
</tr>
<tr>
<td height="21" colspan="2"><div align="right">[<?php echo '<a href="logout.php">Déconnection</a>'; ?>]</div></td>
</tr>
<tr>
<td height="1" colspan="2"><div align="center"><span class="PageText">Ajouter une Photo à joindre aux Alertes</span></div> <div align="center" class="HomepageModuleTitle">
<div align="left"></div>
</div></td>
</tr>
<tr>
<td height="20" colspan="2"><div align="center"><span class="Warning"><?PHP echo $infos; ?></span></div></td>
</tr>
<tr>
<td height="16" colspan="2"><div align="left"><span class="linkmenu"><a href="admin.php">Retour à l'Admin</a></span></div></td>
</tr>
<tr>
<td height="4" colspan="2"> </td>
</tr>
<tr>
<td width="116" height="21"><span class="StandardText"><strong>
<input type="hidden" name="MAX_FILE_SIZE" value="1000000">
Photo:</strong></span></td>
<td width="365"><input type="file" name="fichier1"size="40"br></td>
</tr>
<tr>
<td height="22" colspan="2">
<div align="right">
<input type="submit" value="AJOUTER" class="Button01">
</div></td></tr>
<tr>
<td height="21" colspan="2"> </td>
</tr>
</table>
<table width="507" border="0" align="center">
<tr>
<td width="562" height="16" bgcolor="#bdced9" class="Grid_Item">© 2004, JED Journaliste en danger Tous droits réservés. Design Par <a href="http://www.congontic.com/" target="_blank">Congo NTIC</a></td>
</tr>
</table>
</form>
<?PHP
ENDif;
if ($infos == '' && !empty($_POST['MAX_FILE_SIZE']))
{
echo '<BR>';
echo '<BR>';
echo '<table width="549" border="0" align="center">';
echo '<tr>';
echo '<td bgcolor=#bdced9> </td>';
echo '</tr>';
echo '<tr>';
echo '<td>';
echo '<BR>';
echo '<BR>';
echo '<BR>';
echo '<center><span class="Warning">BRAVO, transfer réussi!</span></center><BR>';
echo '<center><a href="admin.php">Retour à Admin</a></center>';
echo '<BR>';
echo '<BR>';
echo '<BR>';
echo '</td>';
echo '</tr>';
echo '<tr>';
echo '<td bgcolor="#bdced9"> </td>';
echo '</tr>';
echo '</table>';
}
?>
<?php } ?>
</body>
</html>