Donnée tronquée

ViPHP
xTG
ViPHP | 7331 Messages

18 févr. 2011, 11:58

Aucune fonction pour décoder, ce n'est pas un encodage mais une protection. ;)

Eléphant du PHP | 256 Messages

18 févr. 2011, 12:00

tu dois le faire pour toutes tes valeurs
même celles dont je suis sûr qu'elles ne contiennent pas de caractères spéciaux ?
Si oui, pourquoi ?

ViPHP
ViPHP | 5462 Messages

18 févr. 2011, 12:05

tu dois le faire pour toutes tes valeurs
même celles dont je suis sûr qu'elles ne contiennent pas de caractères spéciaux ?
Si oui, pourquoi ?
oui, parce que ça coute rien de le faire :wink:
et si c'est des données venant de l'utilisateur il peux toujours insérer ce qu'il veux,

après si t'as mysqli, ou PDO tu peux utiliser les requêtes préparées, t'aura pas trop a te soucier de ca,
si tu veux vraiment reste sur l'extension mysql utilise ca : vos-contributions/faire-des-requetes-pr ... 55960.html

Eléphant du PHP | 256 Messages

18 févr. 2011, 12:34

Bon ça ne fonctionne pas :o
En fait j'ai ceci

<form method="post" action="SendMail.php">
<p align=center><input type='text' size='100' name='Comment'>
<p align=center><input type="submit" value="Confirmer">

Dans la zone input Comment j'ai saisi [Test ' " / \] sans les []
dans SendMail.php

$Comment = $_POST["Comment"];
$Comment = mysql_real_escape_string($Comment); /* Protect from special characters */
mysql_query("INSERT INTO VTTlog (Date, Name, Choice,Comment) VALUES ('$Date','$Name','$choice1','$Comment')") or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

Sans mysql_real_escape_string la fonction mysql_query("INSERT ... se termine avec le die
Avec mysql_real_escape_string la fonction mysql_query("INSERT ... s'exécute sans erreur mais il n'y a rien dans la champ $Comment de la DB !

ViPHP
ViPHP | 5462 Messages

18 févr. 2011, 12:41

c'est pas :
mysql_query("INSERT INTO VTTlog (Date, Name, Choice,Comment) VALUES ('$Date','$Name','$choice1','$Comment')") or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 
mais
$sql = "INSERT INTO VTTlog (Date, Name, Choice,Comment) VALUES ('$Date','$Name','$choice1','$Comment')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 
et dis nous quelle est l'erreur rendu, d'ailleur normalement tu ne dois pas faire de or die mais faire au debut de ton code
ini_set('mysql.trace_mode', true);

Eléphant du PHP | 256 Messages

18 févr. 2011, 13:02

c'est pas :
mysql_query("INSERT INTO VTTlog (Date, Name, Choice,Comment) VALUES ('$Date','$Name','$choice1','$Comment')") or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 
mais
$sql = "INSERT INTO VTTlog (Date, Name, Choice,Comment) VALUES ('$Date','$Name','$choice1','$Comment')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 
Je ne vois pas la différence.
Moi je fais
mysql_query("xxxx");
toi tu fais
$xxx="xxx";
mysql_query($xxx);

et ça fonctionne très bien tant qu'il n'y a pas de ' dans $Comment.

Je ne comprends pas pourquoi si j'ajoute
$Comment = mysql_real_escape_string($Comment);
le résultat est le même que si $Comment était vide.

Mammouth du PHP | 672 Messages

18 févr. 2011, 13:30

Je ne vois pas la différence.
Moi je fais
mysql_query("xxxx");
toi tu fais
$xxx="xxx";
mysql_query($xxx);
La différence, par exemple, c'est que pour débugger tu peux passer la requête dans le or die(), ce qui peut aider...
Je ne comprends pas pourquoi si j'ajoute
$Comment = mysql_real_escape_string($Comment);
le résultat est le même que si $Comment était vide.
Tu as fais un echo $Comment (dans l'idéal, avant et après le mysql_real_escape_string() ) ?

Eléphant du PHP | 256 Messages

18 févr. 2011, 14:52

Non mais j'ai compris !
Je n'avais pas vu le warning "A link to the server could not be established "
L'erreur était que j'avais mis le mysql_real_escape_string avant d'ouvrir la DB.
Maintenant je l'ai mis après et ça fonctionne très bien, même si je saisis des ' ou des ".
Grand merci pour ton aide.

Maintenant je veux feinter en saisissant dans la zone input <img src="../gif/ski.gif"> en espérant que c'est ce qui va sortir quand je vais vouloir l'afficher en HTML et que je verrai donc l'image.
Ben c'est raté parce qu'à cause du mysql_real_escape_string ce que je trouve dans la DB est <img src=\"../gif/ski.gif\"> ce que HTML ne comprend pas !

RV

ViPHP
ViPHP | 5462 Messages

18 févr. 2011, 17:53

regarde si t'as les magic_quotes d'activés