preg_ replace preg_split et substr : la difference?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : preg_ replace preg_split et substr : la difference?

Re: preg_ replace preg_split et substr : la difference?

par noze1st » 13 oct. 2010, 17:48

damaskinos : je suis allé voir le site et j'ai PAS compris ce que tu vends mais ce doit être normal

Re: preg_ replace preg_split et substr : la difference?

par noze1st » 13 oct. 2010, 17:47

merci merci je vais tester tout ça =D>
AB vos sites : travail impressionnant
damaskinos : je suis allé voir le site et j'ai compris ce que tu vends mais ce doit être normal
tchô
et merci encore

Re: preg_ replace preg_split et substr : la difference?

par AB » 13 oct. 2010, 00:32

Corrigé :wink:

Re: preg_ replace preg_split et substr : la difference?

par damaskinos » 12 oct. 2010, 20:03

$query = "SELECT * FROM article WHERE ville='".mysql_real_escape_string."'";
Devient plus tôt
$query = "SELECT * FROM article WHERE ville='".mysql_real_escape_string($ville)."'";
:wink:

Re: preg_ replace preg_split et substr : la difference?

par damaskinos » 12 oct. 2010, 19:57

Oh désoler,

Copier / coller. voilà ce que je voulais écrire :
if (get_magic_quotes_gpc()) {
    $variable = stripslashes($_POST['nom_input']);
}
else {
    $variable = $_POST['nom_input'];
}
Pour la deuxième partie je voulais écrire " escaper " mais c'est de l'anglicisme je crois. Et je ne trouvais pas le mot.

Voilà et merci pour les corrections et précision.

Re: preg_ replace preg_split et substr : la difference?

par AB » 12 oct. 2010, 19:44

Ah oui donc en appliquant les deux fonctions ci-dessus cela donne typiquement :

function Verif_magicquotes ($chaine)
{
if (get_magic_quotes_gpc()) $chaine = stripslashes($chaine);

return $chaine;
} 

$ville = Verif_magicquotes($_POST['ville']);

$query = "SELECT * FROM article WHERE ville='".mysql_real_escape_string($ville)."'";

$req = mysql_query($query) or die (mysql_error());

Re: preg_ replace preg_split et substr : la difference?

par AB » 12 oct. 2010, 19:33

Salut,

Il te faut vérifier si tes magic quote sont activés. Regarde dans ton php.ini. Ou dans ton script si tu veux être propre et parer le problème peu importe sa valeur dans le php.ini, tu fais comme ça.

if (get_magic_quotes_gpc()) {
    $variable = stripslashes($_POST['nom_input']);
}
else {
    $variable = stripslashes($_POST['nom_input']);
}

Jette un coup d'oeil ici à la doc http://php.net/manual/fr/function.get-m ... es-gpc.php
Bah ce n'est pas ce qu'il faut faire car dans ton code tu appliques stripslashes à tous les coups :?

Mieux vaut une petite fonction
function Verif_magicquotes ($chaine)
{
if (get_magic_quotes_gpc()) $chaine = stripslashes($chaine);

return $chaine;
} 

$var1 = Verif_magicquotes($_POST['var1']);

$var2 = Verif_magicquotes($_POST['var2']);
//...
Ensuite je te conseillerais de toujours nettoyer tes variables qui proviennent d'un formulaire avant de les mettre dans une requête.
Dans ton cas utilise
mysql_real_escape_string
Je te laisse lire la doc ici : http://php.net/manual/fr/function.mysql ... string.php

Bonne continuation.
Plus exactement, si tu lis la doc il ne s'agit pas de "nettoyer" les variables mais de protéger les caractères spéciaux de la chaine :)

Re: preg_ replace preg_split et substr : la difference?

par damaskinos » 12 oct. 2010, 17:00

Salut,

Il te faut vérifier si tes magic quote sont activés. Regarde dans ton php.ini. Ou dans ton script si tu veux être propre et parer le problème peu importe sa valeur dans le php.ini, tu fais comme ça.

if (get_magic_quotes_gpc()) {
    $variable = stripslashes($_POST['nom_input']);
}
else {
    $variable = stripslashes($_POST['nom_input']);
}

Jette un coup d'oeil ici à la doc http://php.net/manual/fr/function.get-m ... es-gpc.php

Ensuite je te conseillerais de toujours nettoyer tes variables qui proviennent d'un formulaire avant de les mettre dans une requête.
Dans ton cas utilise
mysql_real_escape_string
Je te laisse lire la doc ici : http://php.net/manual/fr/function.mysql ... string.php

Bonne continuation.

Re: preg_ replace preg_split et substr : la difference?

par noze1st » 12 oct. 2010, 15:51

ps : je ne mets pas ma nouvelle solution sur le forum car elle concerne le traitement depuis la source googlemap.js...

Re: preg_ replace preg_split et substr : la difference?

par noze1st » 12 oct. 2010, 15:47

merci damaskinos de t'être penché sur le problème...
Je ne pense pas qu'il y ait une erreur dans la requête car comme je le disais elle fonctionne bien avec :
$pos = strpos(".$ville.", " ");
if ($pos!=0) {$pos = $ville=substr ($ville, $pos);}
mais même si ça marche c'est pas très propre mais comme on dit en informatique "si tu passes pas par la porte passes par la fenêtre" :lol:

depuis j'ai trouvé une autre solution mais là encore un "gremlins" s'est glissé dans le bordel :wink:
-en local je teste mon site avec easyphp 5.3.1.0
-sur le web je suis chez free (php5)
Pour que ça tourne en local il faut que je glisse un addslashes de plus avant la requête : c'est incompréhensible
$ville=addslashes($ville);
est-ce que cela peut venir d'une différence entre free et easyphp ?
merci d'avance pour vos contributions...

Re: preg_ replace preg_split et substr : la difference?

par damaskinos » 12 oct. 2010, 03:38

Salut déjà pour recupérer essai ici, j'aurais fais
$tableau = explode(" ",$ville);
echo $tableau[1];  //affichera  essai si ville contenait "1235400 essai"
Pour la requête, y a t-il une erreur ?

preg_ replace preg_split et substr : la difference?

par noze1st » 12 oct. 2010, 00:10

bjr,
Voilà j'ai une variable $ville qui a pour valeur 1235400 essai et je veux récupérer essai.
Après une journée de torture je parviens au résultat avec substr. Avec preg_ replace ou preg_split le echo $ville; donne bien essai mais la requête ne fonctionne pas???

$pos = strpos(".$ville.", " ");
if ($pos!=0) {$pos = $ville=substr ($ville, $pos);}

//marche pas pourtant $ville ok!!!!!!!!!!
//$lettres = preg_split("##", $ville);
//$ville = explode("",$lettres);

//marche pas pourtant $ville ok!!!!!!!!!!
//$ville=preg_replace("/[0-9]/", '',$ville); 

$req=mysql_query("select * from article where ville='$ville'") or die (mysql_error());

$res=mysql_fetch_array($req);

$id = $res['id'];
j'aimerai comprendre #-o
merci d'avance