Vous n'êtes pas identifié.
Amis des apprentie créateur de site bonjour !!!
donc voila mon problème,
j'ai un formulaire avec la possibilité d'intégrer une image en php...
c'est configuré , ca marche, seulement voila, si une personne qui ne connait rien a internet utilise ce formulaire pour inserer ses propres images dans le site, elle risque fortement d'appeler son image :
où é lèy images !.jpg
en gros : un nom d'image avec des espace, des accents, des caractères spéciaux, des jolie filles nue ( heu non ca c'était pour pas que vous vous endormiez pendant l'explication de mon problème... )
j'ai donc configuré en php une fonction qui marche en UTF-8 ( grace a un tuto ) et qui permet d'enlevé la plupart des caractères speciaux, ( je n'ai pas encore trouvé comment faire pour enlevé TOUT les caractères speciaux )
seulement VOILA : ca enleve en effet les caracteres speciaux mais pas le nom de l'image original... du coup, l'URL de l'image est différente, du coup : pas d'image ...
je vous montre le code :
unction changemot($str, $charset='utf-8') // pour que ca passe en UTF-8
<?php
// ma fonction pour changer les caractère speciaux
{
$str = htmlentities($str, ENT_NOQUOTES, $charset);
$str = preg_replace('#\&([A-za-z])(?:acute|cedil|circ|grave|ring|tilde|uml)\;#', '\1', $str);
$str = preg_replace('#\&([A-za-z]{2})(?:lig)\;#', '\1', $str);
$str = preg_replace('#\&[^;]+\;#', '', $str);
$str = preg_replace('# #', '', $str);
return $str;
}
// mon bouton
if(isset($_POST['soumettre'])){
require '../pages/connexion.php';
$photo=$_FILES['image']['name'];
$type = $_POST['type'];
$nom = $_POST['nom'];
$description = $_POST['description'];
$prix = $_POST['prix'];
$phototraite=changemot($photo);
$nomtraite=changemot($nom);
$descriptiontraite=changemot($description);
$requete = " INSERT INTO produit (id, type, nom, description, prix, image) VALUES(NULL, '$type', '$nomtraite', '$descriptiontraite', '$prix', '$phototraite') ";
// pour les champs auto-incrementer, on met null pour qu'il mettent autommatiquement ce champs id ...
mysql_query($requete);
//envoie moi la requete via mysql
header("Location:voir.php");
}
?>
Hors ligne

Salut,
Visiblement ton image ne subit aucun changement dans ton code, elle n'est pas traité par celui-ci.
Le nom et l'extension de ton image est dans :
$photo=$_FILES['image']['name'];
Donc théoriquement si tu attribues ta fonction au nom de l'image :
$photo=changemot($_FILES["image"]['name']); echo $photo;
..tu devrais obtenir le résultat que tu souhaites.
Normalement, une photo ne contient pas de caractères à modifier ... pourquoi vouloir alors en changer le nom?
Hors ligne
Propulsé par PunBB
© Copyright 2007
Forum créer un site