Salut à tous,
j'avais fait un page d'upload de photos qui marchait nickel et j'avais pris la précaution de n'autoriser, pour le nouveau nom de la photo, que des caractères alphanumerique. On m'a demander recement d'ajouter les espaces et quelque caractère speciaux, j'ai donc pensé utiliser une fonction style rawurlencode ou urlencode. Tous marche nickel sauf si dans le nom de l'image que j'enregistre sur le serveur (grâce à la fonction move_uploaded_file ) il y a un caractère spécial et donc encodé sous la forme %15. A ce moment le script ne me renvoie aucune erreur mais la photo n'existe pas sur le serveur...
Ca fais 2 jour que je cherche et que je seche...
Voici mon code source:
<?
$evenement = $_POST['evenement'];
$nom = urlencode($_POST['nom']);
$alt = $_POST['alt'];
$commentaire = $_POST['commentaire'];
$nom_type = $_FILES["image"]["name"];
$extension = substr($nom_type,strlen($nom_type)-3);
$nom .= '.'.$extension;
include('connexiondb.php');
mysql_select_db('photos');
$requete = "select * from photos order by nom";
$envoi = mysql_query($requete);
$total = mysql_num_rows($envoi);
while($tableau = mysql_fetch_array($envoi))
{
$nom_temp = $tableau['nom'];
if($nom_temp == $nom)
{
$erreur = 1;
}
}
if($erreur == 1)
{
echo("Le nom que vous avez choisi pour la photo existe déjà veuillez en choisir un autre SVP.");
}
else{
echo("L'opération peut prendre quelque seconde veuillez patienter...");
//Verfication des erreurs de chargement
if ($_FILES['image']['error']) {
switch ($_FILES['image']['error']){
case 1: // UPLOAD_ERR_INI_SIZE
echo"<p>Le fichier dépasse la limite autorisée par le serveur (fichier php.ini) !";
break;
case 2: // UPLOAD_ERR_FORM_SIZE
echo "<p>Le fichier dépasse la limite autorisée dans le formulaire HTML !";
break;
case 3: // UPLOAD_ERR_PARTIAL
echo "<p>L'envoi du fichier a été interrompu pendant le transfert !";
break;
case 4: // UPLOAD_ERR_NO_FILE
echo "<p>Le fichier que vous avez envoyé a une taille nulle !";
break;
}
}
else {
//Verification du type de fichier
if ($extension == "jpg" or $extension == "gif" or $extension == "JPG" or $extension == "GIF") {
echo "<p> Type de fichier correct. <p> Redimension du fichier...";
//Première Image
echo('<P> Enregistrement 1');
if(move_uploaded_file($_FILES['image']['tmp_name'],'/var/www/free.fr/b/4/skaskettes/photos/dossier1/'.$nom))
{
//Dimensions de l'image
$taille = GetImageSize('/var/www/free.fr/b/4/skaskettes/photos/dossier1/'.$nom);
$largeur_src = $taille[0]; $hauteur_src = $taille[1];
} else { echo('Echec de l\'enregistrement 1'); }
//Ensuite je fais 2 autres enregistrements avec la meme methode.
?>
Merci de votre aide
Cordialement,
Needle.
Imagine the seeds of today be the fruits of tomorrow J'aime bien...