Vous n'êtes pas identifié.

Annonce

#1 insertion d'une image, sans caractere speciaux... du 09-01-2010 20:30:28

Borotj
c00lnaute nouveau
Date d'inscription: 12-03-2009
Messages: 7

insertion d'une image, sans caractere speciaux...

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

 

09-01-2010 20:30:28

Mister $$$
Créer un site


#2 Re insertion d'une image, sans caractere speciaux... du 11-01-2010 11:01:59

c00lman
Administrateur
Date d'inscription: 16-08-2007
Messages: 1558
Site web

Re: insertion d'une image, sans caractere speciaux...

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 :

Code:

$photo=$_FILES['image']['name'];

Donc théoriquement si tu attribues ta fonction au nom de l'image :

Code:

$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

Partenaires de « créer un site internet »

Flux Rss Remonter Remonter Fermer