CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[php] Diverses questions

dexter_68
dexter_68
Niveau 10
02 décembre 2008 à 11:46:23

:salut: tout le monde !

Je suis entrain de créer un formulaire pour mettre à jour mon site et j'ai quelques petites questions à vous poser... :)

1) Lorsque j'insère des valeurs dans ma base de données, je sécurise mes variables avec la fonction mysql_real_escape_string afin de mettre des antislash aux caractères spéciaux.
Ensuite, sur la page qui affiche le résultat, il faut les enlever et j'utilise donc les fonctions stripslash (pour enlever les antislash) et nl2br (pour convertir les "enter" par la balise <br/>).

Le problème est que les antislash sont bien enlevés mais j'ai un 'rn' qui remplace à chaque fois le saut de ligne... :doute: Est-ce que vous savez pourquoi ça me fait ça et comment faire pour le corriger ?

2) Lorsqu'on effectue une requête du type SELECT * FROM matable WHERE id='$ma_variable' (ou $ma_variable = un nombre uniquement, pas de lettres).

Faut-il utiliser la fonction mysql_real_escape_string pour sécuriser la variable ou alors faut-il utiliser la fonction intval :question: (est-ce qu'avec les guillemets, la valeur est considérée comme du texte ou alors elle est quand même considérée comme une valeur numérique ? ).

:merci: d'avance pour vos réponses ! :ok:

deepblue
deepblue
Niveau 16
02 décembre 2008 à 14:16:13

1- Un retour à la ligne se caractérise par 2 caractères invisibles : \r\n avec \r = fin de ligne \n = retour chariot du coup, tes stripslashes virent les "\" devant \r et \n d'ou rn à la fin des lignes :ok:

2- intval peut suffir

Avec les guillemets, c'est une chaine de caractères.

dexter_68
dexter_68
Niveau 10
02 décembre 2008 à 15:21:55

:merci: deepblue de m'avoir répondu mais comment je peux faire pour enlever les "\", et en même temps, faire que le retour à la ligne soit correctement interprété (que ça me m'affiche pas rn mais que ça mette en place une balise <br/>) :question:

deepblue
deepblue
Niveau 16
02 décembre 2008 à 15:28:30

Théoriquement, tu n'as pas besoin des les enlever. Je m'explique : la fonction mysql_escape_string échappe les caractères de la même façon que "j\'échappe un caractère, c\'est la \"classe\" non ?". La phrase est toujours : j'échappe un caractère, c'est la "classe" non ?.

dexter_68
dexter_68
Niveau 10
02 décembre 2008 à 15:41:44

Mais ce que je ne comprends pas, c'est que dans ma base de données, les informations sont affichées de la première manière ("j\'échappe un caractère, c\'est la \"classe\" non ?".) et donc, à l'affichage sur le site, j'aurais la même chose.

Il faudrait que je puisse les enlever pour afficher correctement cette phrase (j'échappe un caractère, c'est la "classe" non ?. )

:d) Est-ce que je n'écris pas correctement mon PHP :question:

Moi je fais :

$ma_variable=mysql_real_escape_string($_POST['la_v
aleur']);

$ma_variable=mysql_real_escape_string($ma_variable
);

:d) De cette façon, le texte inscrit dans ma base de données possède les antislash sur tous les caractères spéciaux.

PS : Si je n'ajoute pas la 2e ligne de code, les antislash ne sont pas inscrits dans la base de données.
Sont-ils quand même pris en compte lors de la requête :question:

Si oui, ça pourrait être la solution à mon problème... :)

Pseudo supprimé
Pseudo supprimé 02 décembre 2008 à 16:28:48

Fais le nl2br avant le strip

dexter_68
dexter_68
Niveau 10
02 décembre 2008 à 18:16:52

Meja :d) J'ai essayé, ça fait la même chose... :snif:

deepblue
deepblue
Niveau 16
02 décembre 2008 à 18:57:51

http://fr2.php.net/manual/fr/function.get-magic-quotes-gpc.php

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware