mysqli_real_escape_string() renvoie une chaîne vide
Je suis en utilisant mysqli_real_escape_string() sur une adresse de courriel, et elle renvoie une chaîne vide. Il le fait avec toute adresse e-mail.
<?php
//from previous page - submitted by user.
$_POST['email']="[email protected]";
$_POST['password']='mypass1234';
//Link, I can verify it works.
$mysql_info=array(
"url"=>"url",
"username"=>"username",
"password"=>"password",
"database"=>"database"
);
$link=mysqli_connect($mysql_info['url'],$mysql_info['username'],$mysql_info['password'],$mysql_info['database']);
//Now I attempt to sanitize the user input.
$email=mysqli_real_escape_string($link,$_POST['email']);
$password=sha1(mysqli_real_escape_string($link,$_POST['password']));
var_dump($email);
var_dump($password);?>
Mon tableau de classement est "latin1_swedish_ci".
Désolé, ma question est: Pourquoi est-ce que retourne une chaîne vide, et que puis-je faire pour le réparer?
Pourriez-vous s'il vous plaît ajouter un traitement des erreurs dans votre code?
Tu veux dire comme la fonction error_reporting(E_ALL);? C'est déjà fait. Rien.
Veuillez suivre le gestionnaire d'erreur pour vérifier le lien dans ma réponse ci-dessous.
Pourriez-vous s'il vous plaît ajouter un traitement des erreurs dans votre code?
Tu veux dire comme la fonction error_reporting(E_ALL);? C'est déjà fait. Rien.
Veuillez suivre le gestionnaire d'erreur pour vérifier le lien dans ma réponse ci-dessous.
OriginalL'auteur Aehmlo | 2013-03-04
Vous devez vous connecter pour publier un commentaire.
Si votre connexion est vide (
$link
), elle renvoie une chaîne vide. J'ai testé et cela a bien fonctionné. Je vous recommande d'ajouter la gestion des erreurs de connexion et activer le rapport d'erreurs.Résultat
Il est toujours préférable de mettre en œuvre un gestionnaire d'erreur. Dans ce cas, il aurait rappelé vous de la connexion.
J'ai eu une mise en œuvre, puis il a fallu pour la production.
Vous pouvez activer/désactiver le rapport d'erreurs dans le script, de sorte que quand il passe en production, vous pouvez le désactiver.
Probablement une bonne idée. Je vais le faire dans l'avenir.
OriginalL'auteur Kermit
J'ai eu ce problème et trouvé que mon jeu de caractères a été mis à l'amérique latine. Résolu en mettant
avant la real_escape_string. Serait mysqli_set_charset dans le style procédural.
OriginalL'auteur Frank Ahearn