[PHP/MySQL] .:: mysql_real_escape_string ::.
Résolu
elsadelatoundra
Messages postés
126
Date d'inscription
Statut
Membre
Dernière intervention
-
craftmandu30 -
craftmandu30 -
Bonjour,
J'ai un formulaire dans lequel les utilisateurs peuvent entrer un commentaire ...
Sur un submit j'enregistre ce com dans ma BDD (MySQL) en protégeant la string à l'aide de la fonction mysql_real_escape_string() ...
Ensuite, je réaffiche ces com et on peut en rajouter ==> concaténation de string.
Quand un nouveau com est inséré, je récupère l'ancien et je fais :
Quand je récupère les commentaires dans ma base de données de la façon suivante :
je perds tous les sauts de ligne et la concaténation des strings donnent un truc pas mal moche !!
Dans ma BDD, les données sont pourtant bonnes et je vois dans PHP MyAdmin les sauts de lignes ...
Je ne sais pas comment les récupérer (peut-être existe-t-il une fonction) pour ne pas perdre tout ça !!
Merci d'avance pour vos réponses !! J'espère avoir été claire ...
;-)
J'ai un formulaire dans lequel les utilisateurs peuvent entrer un commentaire ...
Sur un submit j'enregistre ce com dans ma BDD (MySQL) en protégeant la string à l'aide de la fonction mysql_real_escape_string() ...
Ensuite, je réaffiche ces com et on peut en rajouter ==> concaténation de string.
Quand un nouveau com est inséré, je récupère l'ancien et je fais :
// on concat l'ancien et le nouveau commentaire $nouveauCommentaireSQL=mysql_real_escape_string($ancienCommentaire)."\n".mysql_real_escape_string($_POST['COMMENTAIRES']); echo$nouveauCommentaireSQL; // enregistrement dans la BD $requeteSetCommentaire='UPDATE AUTRE_DMDE SET COMMENTAIRES = "'.$nouveauCommentaireSQL.'" WHERE AUTRE_DMDE_ID ='.$id; $resultatSetCommentaire=mysql_query($requeteSetCommentaire) or die ("Exécution de la requête impossible".$requeteSetCommentaire."<br />".mysql_error());
Quand je récupère les commentaires dans ma base de données de la façon suivante :
$requeteCommentaire="SELECT COMMENTAIRES FROM AUTRE_DMDE WHERE AUTRE_DMDE_ID=".$id; $resultatCommentaire=mysql_query($requeteCommentaire) or die ("Exécution de la requête impossible".$requeteCommentaire."<br />".mysql_error()); $arrayCommentaire=mysql_fetch_array($resultatCommentaire); $ancienCommentaire=$arrayCommentaire[0];
je perds tous les sauts de ligne et la concaténation des strings donnent un truc pas mal moche !!
Dans ma BDD, les données sont pourtant bonnes et je vois dans PHP MyAdmin les sauts de lignes ...
Je ne sais pas comment les récupérer (peut-être existe-t-il une fonction) pour ne pas perdre tout ça !!
Merci d'avance pour vos réponses !! J'espère avoir été claire ...
;-)
A voir également:
- [PHP/MySQL] .:: mysql_real_escape_string ::.
- Easy php - Télécharger - Divers Web & Internet
- Mysql community server - Télécharger - Bases de données
- Expert php pinterest - Télécharger - Langages
- Php alert - Forum PHP
- Mysql a répondu : documentation connexion impossible : paramètres incorrects. - Forum Bases de données
2 réponses
Bonjour,
Es-tu sûre de vraiment perdre les sauts de lignes ? Ne serait-ce pas plutôt qu'en html, un saut de ligne n'a aucune valeur ? Par exemple, lorsque tu affiches tes données, essaie de regarder le code source de ta page. Si les sauts de lignes apparaissent (par des sauts de ligne, bien sûr, pas des \n), alors c'est qu'ils ne sont pas perdus.
Dans ce cas, tu peux les "récupérer" en utilisant la fonction php suivante :
$ancienCommentaire = str_replace("\n", "<br />", $ancienCommentaire)
qui va donc remplacer les retours à la ligne "standards" par la balise html qui va bien.
En espérant que ça aide,
Xavier
Es-tu sûre de vraiment perdre les sauts de lignes ? Ne serait-ce pas plutôt qu'en html, un saut de ligne n'a aucune valeur ? Par exemple, lorsque tu affiches tes données, essaie de regarder le code source de ta page. Si les sauts de lignes apparaissent (par des sauts de ligne, bien sûr, pas des \n), alors c'est qu'ils ne sont pas perdus.
Dans ce cas, tu peux les "récupérer" en utilisant la fonction php suivante :
$ancienCommentaire = str_replace("\n", "<br />", $ancienCommentaire)
qui va donc remplacer les retours à la ligne "standards" par la balise html qui va bien.
En espérant que ça aide,
Xavier
Belle !!
CA MARCHE !!
Merci beaucoup pour ton aide ... claire, nette, précise et surtout efficace ;-)
De très problématique ce problème passe direct dans la catégorie RESOLU ! Ca fait plaisir !
Encore merci ...
CA MARCHE !!
Merci beaucoup pour ton aide ... claire, nette, précise et surtout efficace ;-)
De très problématique ce problème passe direct dans la catégorie RESOLU ! Ca fait plaisir !
Encore merci ...
vous pouvez m'aidez svp car je ses pas comment remplacer la commande mysql_real_escape_string pour que je ne puisse pas faire d'espace dans mon <input type"text" ... voila mon php.
<h1>Inscription</h1>
<?php
if(isset($_POST['submit']))
{
$sexe = mysql_real_escape_string(htmlentities($_POST['sexe']));
$pseudo = mysql_real_escape_string(htmlentities($_POST['pseudo']));
$password = mysql_real_escape_string(htmlentities($_POST['password']));
$repeatpassword = mysql_real_escape_string(htmlentities($_POST['repeatpassword']));
$email = mysql_real_escape_string(htmlentities($_POST['email']));
$apropos = mysql_real_escape_string(htmlentities($_POST['apropos']));
$situation = mysql_real_escape_string(htmlentities($_POST['situation']));
if(empty($pseudo))
{
$errors[] = "Veuillez saisir un pseudo";
}
if(empty($password))
{
$errors[] = "Veuillez saisir un password";
}
if($password != $repeatpassword)
{
$errors[] = "Vos deux password doivent étre identiques";
}
if(!filter_var($email,FILTER_VALIDATE_EMAIL))
{
$errors[] = "Votre adresse email n'est pas correcte";
}
if(empty($apropos))
{
$errors[] = "Veuillez vous décrire en quelques lignes";
}
if(!empty($errors))
{
foreach($errors as $error)
{
echo "<div class='error'>".$error."</div>";
}
}
}
?>
<h1>Inscription</h1>
<?php
if(isset($_POST['submit']))
{
$sexe = mysql_real_escape_string(htmlentities($_POST['sexe']));
$pseudo = mysql_real_escape_string(htmlentities($_POST['pseudo']));
$password = mysql_real_escape_string(htmlentities($_POST['password']));
$repeatpassword = mysql_real_escape_string(htmlentities($_POST['repeatpassword']));
$email = mysql_real_escape_string(htmlentities($_POST['email']));
$apropos = mysql_real_escape_string(htmlentities($_POST['apropos']));
$situation = mysql_real_escape_string(htmlentities($_POST['situation']));
if(empty($pseudo))
{
$errors[] = "Veuillez saisir un pseudo";
}
if(empty($password))
{
$errors[] = "Veuillez saisir un password";
}
if($password != $repeatpassword)
{
$errors[] = "Vos deux password doivent étre identiques";
}
if(!filter_var($email,FILTER_VALIDATE_EMAIL))
{
$errors[] = "Votre adresse email n'est pas correcte";
}
if(empty($apropos))
{
$errors[] = "Veuillez vous décrire en quelques lignes";
}
if(!empty($errors))
{
foreach($errors as $error)
{
echo "<div class='error'>".$error."</div>";
}
}
}
?>