Page 1 sur 1

Problème de fonction upload

Posté : 22 déc. 2014, 12:00
par Cybak
Bonjour !
J'ai un panel admin sur lequel on peut accéder à une page qui permet d'uploader des images sur le serveur et ensuite de les redimensionner. Mais un problème est survenu alors qu'hier non (je m'en ai aperçu car je suis entrain de mettre en place la partie pour le redimensionnement des image)..
Quand la page galerie-upload.php (la page permettant d'uploader les image) il n'y a pas d'erreur mais quand je met dans le formulaire pour uploader l'image sur le serveur, il me marque ensuite "Echec de l'upload !" , je ne comprend pas étant donné que la taille de l'image est bonne et que l'extension l'est aussi ...
P.S: il y a aussi le système de membre mais ça marche ^^

Voici le code :
<div style="font-size:25px;position:relative;top:370px;padding-left:350px;">
<?php
$dossier = '../img/galerie/';
$fichier = basename($_FILES['img']['name']);
$taille_maxi = 2000000;
$taille = filesize($_FILES['img']['tmp_name']);
$extensions = array('.png', '.gif', '.jpg', '.jpeg');
$extension = strrchr($_FILES['img']['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 png, gif, jpg ou jpeg ...';
}
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['avatar']['tmp_name'], $dossier . $fichier)){
          echo 'Upload effectu&eacute; avec succ&egrave;s !';
          header ("Refresh: 3;URL=../galerie.php");

     }
     else //Sinon (la fonction renvoie FALSE).
     {
          echo 'Echec de l\'upload !';
     }
}
else
{
     echo $erreur;
}
?>
</div>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
		<link rel="icon" href="../img/favicon.ico" />
        <title>Galerie - Club Manga - Lycée Aristide Briand Saint Nazaire</title>
		<link rel="stylesheet" href="../style/style.css" />
		<link rel="stylesheet" media="screen and (max-width: 1025px)" href="../style/style-1025.css" />
		<link rel="stylesheet" media="screen and (max-width: 875px)" href="../style/style-875.css" />
		<link rel="stylesheet" media="screen and (max-width: 651px)" href="../style/style-651.css" />
		<link rel="stylesheet" media="screen and (max-width: 555px)" href="../style/style-555.css" />
                <link rel="stylesheet" media="screen and (max-width: 1500px)" href="../style/style-1500.css" />
                <link rel="stylesheet" media="screen and (max-width: 1300px)" href="../style/style-1300.css" />
                <link rel="stylesheet" media="screen and (max-width: 1100px)" href="../style/style-1100.css" />
                <link rel="stylesheet" media="screen and (max-width: 940px)" href="../style/style-900.css" />    </head>

    <body>
		<header>
			<h1>Club Manga Lycée Aristide Briand Saint Nazaire</h1>
<div style="border:4px black solid; width:45%; text-align:center; margin-right:auto; margin-left:auto; background-color:rgba(180,0,0,0.75);">
<?php
session_start();

if(!@$_SESSION['session'])
	{
	require_once('../config.php');
	$titre_page='Index';
	include_once('../haut.php');
	
if(isset($_GET['erreur']))
	{
	echo'<span class="erreur">';
	$erreur=$_GET['erreur'];
	if($erreur=="pseudo")
		{
		echo'Erreur : Votre pseudo est invalide';
		}
	if($erreur=="passe")
		{
		echo'Erreur : Votre mot de passe est invalide';
		}
	if($erreur=="connexion")
		{
		echo"Erreur : Votre mot de passe ne correspond pas avec votre pseudo";
		}
	echo'</span>';
	}
	
	?>
<form method="post" action="../login.php">
<table width="300" border="0" align="center">
<tr>
<td colspan="2" class="menu">Identification</td>
</tr>
<tr>
<td><label for="pseudo">Pseudo : </label></td>
<td><input type="text" name="pseudo" id="pseudo" /></td>
</tr>
<tr>
<td><label for="mdp">Mot de passe : </label></td>
<td><input type="password" name="mdp" id="mdp" />
</td>
</tr>
<tr>
<td>
<input type="submit" value="Envoyer" />
</td>
</tr>
</table>
</form>
<div align="center"><a href="../inscription.php">Pas encore inscrit ?</a>
<?php 
if($localite != 'local')
echo'<br /><a href="../perdu.php">Mot de passe perdu ?</a>';
echo'</div>';
	}
else
	{
	require_once('../config.php');
	require_once('../verifications.php');
	$titre_page='Index membres';
	include_once('../haut.php');
	echo'<div align="center"><strong>Bienvenue dans votre espace membres '. $pseudo .' !</strong>
	<br /><a href="../profil.php">Modification du profil</a>
	<br /><a href="../logout.php">Deconnexion</a></div>';
	}
include_once('../bas.php');
?>
</div>
		</header>
		<nav>
			<nav>
					<div id="menu_accueil"><a href="../accueil.php">Accueil</a></div>
					<div id="menu_news"><a href="../news.php">News</a></div>
					<div id="menu_infos"><a href="../infos.php">Infos</a></div>
					<div id="menu_galerie"><a href="../galerie.php">Galerie</a></div>
					<div id="menu_contact"><a href="../contact.php">Contact</a></div>
			</nav>
		</nav>
		<section>
			<article>
				<h3>Cette page permet de mettre dans la galerie de nouvelles images</h3>
				<h2>Acces unique aux administrateurs !</h2>
				<p>Les images doivent avoir une des extensions suivantes : .png, .gif, .jpg ou .jpeg<br/>
			        Veuillez v&eacute;rifi&eacute; que le nom de l'image ne comporte pas de caract&egrave;res sp&eacute;ciaux et qu'il ne soit pas trop long.</p>
                                <form method="post" action="galerie-upload.php" enctype="multipart/form-data">
                                <input type="file" name="img"/>
                                <input type="submit" name="Envoyer"/>
		             <h2>Redimensionner des images</h2>
                             <form method="post" action="galerie-upload.php">
                             <label for="pseudo">Nom de l'image : </label>
                             <input type="text" name="nom-img" id="nom-img" />
                             <input type="submit" value="Redimensionner" />
                             </form>
<div style="font-size:24px;">
<?php

if(isset($_POST['nom-img']))
{

$nom_img = $_POST['nom-img'];
$img_source = '../img/galerie/'.$nom_img.'.jpg';
$img_destination = '../img/galerie/min/mini-'.$nom_img.'.jpg';
$source = imagecreatefromjpeg($img_source);
$destination = imagecreatetruecolor(200, 150);

$largeur_source = imagesx($source);
$hauteur_source = imagesy($source);
$largeur_destination = imagesx($destination);
$hauteur_destination = imagesy($destination);

imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source);

imagejpeg($destination, "$img_destination");


echo 'L\'image qui a pour nom '.$nom_img.'.jpg est maintenant en version miniature !';
header ("Refresh: 4;URL=galerie-upload.php");
}
else
{
echo 'Le champ n\'est pas rempli !';
}
?>
</div>

			</article>		
		</section>
		<footer>
			<h4>Copyright © 2014 Cybak All Rights Reserved</h4>
		</footer>
    </body>
</html>

Re: Problème de fonction upload

Posté : 22 déc. 2014, 12:31
par @rthur
Modération :
Le multipostage de la même question est à éviter sur PHPfrance.

Re: Problème de fonction upload

Posté : 22 déc. 2014, 12:37
par @rthur
il me marque ensuite "Echec de l'upload !" , je ne comprend pas étant donné que la taille de l'image est bonne et que l'extension l'est aussi ...
Dans ton code, ce qui déclenche ce message d'erreur est l'échec de la fonction move_uploaded_file().
Si ça avait été la taille ou l'extension tu aurais un autre message d'erreur.

Il faut que tu cherches ce qui fait échouer move_uploaded_file(), en général c'est soit que le fichier $_FILES['avatar']['tmp_name'] n'existe pas, soit que tu as un problème de droit pour le lire ou le déplacer dans $dossier . $fichier

Re: Problème de fonction upload

Posté : 22 déc. 2014, 15:16
par Cybak
Merci beaucoup @rthur
Et oui désoler mais je ne savais pas trop où mettre ce sujet .. je ne le referais pas :)

Re: Problème de fonction upload

Posté : 22 déc. 2014, 15:19
par @rthur
Merci beaucoup @rthur
Et oui désoler mais je ne savais pas trop où mettre ce sujet .. je ne le referais pas :)
Pas de soucis ;)

Tu as mis le sujet en résolu, ça venait d'où finalement ?

Re: [RESOLU] Problème de fonction upload

Posté : 22 déc. 2014, 17:39
par Cybak
Alors enfaite c'est que avatar n'existait pas comme tu l'avais dit :)
Une petite erreur qui est venu avec la fatigue de longue nuit de codage ;)

Re: [RESOLU] Problème de fonction upload

Posté : 22 déc. 2014, 20:10
par @rthur
Alors enfaite c'est que avatar n'existait pas comme tu l'avais dit :)
Une petite erreur qui est venu avec la fatigue de longue nuit de codage ;)
Ah ah ! On est tous passé par là ! ;-)