Problème avec fonction addslashes()

Petit nouveau ! | 5 Messages

22 mai 2006, 22:11

Salut à tous,

J'ai un problème avec ma fonction addslashes qui ne fonctionne pas en local. J'ai pourtant désactivé les magic quotes dans le fichier php.ini mais rien à faire.

A titre d'information, je dispose d'EasyPhp 1.8 avec PHP 4.3.

Quelqu'un peut me donner un coup de main ?

Merci d'avance.

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

22 mai 2006, 22:20

Salut,

Que signifie "ne fonctionne pas" ? un message d'erreur ou effet nul ?

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Petit nouveau ! | 5 Messages

22 mai 2006, 22:21

Salut,

Que signifie "ne fonctionne pas" ? un message d'erreur ou effet nul ?
Effet nul, ça ne rajoute pas les slashs.

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

22 mai 2006, 22:23

Montre un bout de code de test.

J'ai pas souvenir dune manipulation spéciale sous Easy pour addslashes.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Petit nouveau ! | 5 Messages

22 mai 2006, 22:35

Voilà un morceau de code :
<?

//Récupération des variables du formulaire d'inscription
if (isset($_POST["date"])) {addslashes($date = $_POST["date"]);}
if (isset($_POST["event"])) {addslashes($event = $_POST["event"]);}
if (isset($_POST["lieu"])) {addslashes($lieu = $_POST["lieu"]);}
if (isset($_POST["modalites"])) {addslashes($modalites = $_POST["modalites"]);}

//Connexion à la base de données
include ("include/connexion.php") ;

//Création de la requête pour ajouter un évènement
$sql_ajout_evenement = "INSERT evenement (date_event, nom_event, lieu_event, modalites_event) VALUES ('$date','$event','$lieu','$modalites');";
		
//Exécution de la requête pour ajouter un évènement
$req_ajout_evenement = mysql_query($sql_ajout_evenement) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

?>

Eléphant du PHP | 445 Messages

22 mai 2006, 23:02

Et en faisant comme ça ?
<? 

//Récupération des variables du formulaire d'inscription 
if (isset($_POST["date"])) {$date = addslashes($_POST["date"]);} 
if (isset($_POST["event"])) {$event = addslashes($_POST["event"]);} 
if (isset($_POST["lieu"])) {$lieu = addslashes($_POST["lieu"]);} 
if (isset($_POST["modalites"])) {$modalites = addslashes($_POST["modalites"]);} 
?> 
LLDC
Ulti

Petit nouveau ! | 5 Messages

23 mai 2006, 07:15

Merci bien, j'arrive à enregistrer la requête et d'ailleurs c'est bien plus logique de mettre les addslashes de la sorte.

Cependant toujours un problème avec Magic quotes quand j'affiche ma requête, je vois les slashs dans celle-ci, mais une fois celle-ci executée, ils n'y sont plus dans la base.

J'ai pourtant désactivé les 3 magic quotes dans le .ini.

Je ne vois pas bien là. :)

Invité
Invité n'ayant pas de compte PHPfrance

23 mai 2006, 12:09

Quelle solution serait à ma disposition ? J'ai essayé de réinstaller EasyPhp mais pas plus de résultats. Y a t'il une solution ? Installer un autre environnement ?

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

23 mai 2006, 18:36

C'est normal de pas retrouver les anti-slashes dans la base puisqu'ils servent surtout lors de l'enregistrement des données. Lors de la lecture tu n'auras pas de problème avec les apostrophes.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Petit nouveau ! | 5 Messages

23 mai 2006, 19:55

Ca fait quelques mois que j'ai pas de fait, je comprends plus rien. Normalement quand on insère une chaîne de caractères, on utilise addslashes() pour l'enregistrement dans la base (les slashes sont normalement insérés dans la base) et stripslashes() pour l'affichage et enlever les slashes ?

Je commence à être perdu là. :( Mon hébergement Free nécessitait auparavant ces deux fonctions et là ça fonctionne sans. Mon cerveau s'embrouille :)

En local, je dois utiliser addslashes() maintenant, normalement ça enregistre les / dans la base non ? Par contre pour afficher pas besoin de stripslashes