Textarea tag

Résolu/Fermé
haikei00X Messages postés 67 Date d'inscription dimanche 20 juillet 2014 Statut Membre Dernière intervention 11 janvier 2016 - 31 janv. 2015 à 02:21
haikei00X Messages postés 67 Date d'inscription dimanche 20 juillet 2014 Statut Membre Dernière intervention 11 janvier 2016 - 2 févr. 2015 à 01:34
Bonjour,
J'ai un soucis concernant le textarea en html.
Donc voilà, j'utilise dans mon formulaire un textarea où je dois écrire un texte qui doit être enregistré dans une base de données .Le problème c'est que j'obtiens une erreur sql lorsque j'utilise des caractères spéciaux ou de la ponctuation dans mon texte. Une fois j'écris normalement sans accents ni apostrophes, mon texte s'enregistre dans la base sans aucun soucis.
Voilà ma ligne textarea:
<textarea name="description" id="description" rows="8">

Je voudrais savoir s'il y a moyen de permettre l'usage de caractères spéciaux.
Merci d'avance ^_^
A voir également:

3 réponses

Utilisateur anonyme
1 févr. 2015 à 18:54
Pour éviter tes problèmes, il faut utiliser la fonction mysql_real_escape_string sur les variables que tu mets dans la requête.
Attention ! Tu ne peux utiliser cette fonction que APRÈS la connexion à la base de données.
Attention encore plus grave : les fonctions mysql_ sont obsolètes et disparaîtront bientôt de PHP, il faut dès maintenant t'habituer à utiliser mysqli_ ou PDO. Il s'agit toujours de la même base de données mysql, seulement la façon d'exécuter les requêtes change.

En attendant, avec tes fonctions mysql_, tu peux écrire :

$link=mysql_connect("localhost","root",""); //Connexion au serveur
if(!$link)
{
die('Erreur connexion'.mysql_error());
}
$date=mysql_real_escape_string($date); // échappement des caractères spéciaux après la connexion
$title=mysql_real_escape_string($title);
$type=mysql_real_escape_string($type);
$des=mysql_real_escape_string($des);
1
haikei00X Messages postés 67 Date d'inscription dimanche 20 juillet 2014 Statut Membre Dernière intervention 11 janvier 2016 3
2 févr. 2015 à 01:34
ça a marché!!
Merci infiniment!!
0
Utilisateur anonyme
31 janv. 2015 à 10:11
Bonjour

Le problème ne vient pas du textarea, mais te ta façon de faire ta requête sql. Il y a plusieurs façon de faire les requêtes mysql en PHP, et la façon précise de les faire pour ne pas avoir de problème dépend de la méthode que tu utilises.
Peux-tu nous montrer le code où tu crées et appelles tes requêtes ?
0
haikei00X Messages postés 67 Date d'inscription dimanche 20 juillet 2014 Statut Membre Dernière intervention 11 janvier 2016 3
1 févr. 2015 à 02:38
Merci de m'avoir répondu!
Voilà mon code
<html>
 <head>
  <title>Signaler</title>
  <meta charset="utf-8">
 </head>
 
 <body bgcolor=#2F4F4F	>
   <form name="FormSignal" id="FormSignal" action="SignalAction.php" method="POST">
    
   <table border="1" align="center" cellspacing="0" cellpadding="0" >
   <tr height="30" bgcolor=#F5DEB3	>
	<td align="center"  valign="center" width="150">
	  <b>Today's Date</b>
	</td>
	<td align="center"  valign="center" width="150">
	  <input type="date" name="Date" id="Date" maxlength="10"/>
	</td>
  </tr>	
  
    <tr height="30" bgcolor=#F5DEB3	>
	<td align="center"  valign="center" width="150">
	  <b>Title</b>
	</td>
	<td align="center"  valign="center" width="150">
	  <input type="text" name="title" id="title"/>
	</td>
	
	<tr height="30" bgcolor=#F5DEB3	>
	<td align="center"  valign="center" width="150">
	  <b>Type</b>
	</td>
	<td align="center"  valign="center" width="150">
	 <select id="list" name="list">
                <option value="Opérationnel">Opérationnel</option>
                <option value="Vie sur site">Vie sur site</option>
                <option value="Administratif">Administratif</option>
				<option value="Déplacement">Déplacement</option>
		
     </select>
	</td>

	<tr height="100" bgcolor=#F5DEB3	>
	<td align="center"  valign="center" width="150">
	  <b>Description</b>
	</td>
	<td align="center"  valign="center" width="150">
	  <textarea name="description" id="description" rows="8">Vous pouvez taper ici la description de votre irritant.</textarea>
	</td>

	
  </table>
  <h2>
    <center><input type="button" name="button1" id="button1"  value="Home"/>   
    <input type="submit" name="button2" id="button2"  value="Signal"/></center>
 </h2>
 </form>
    
 </body>


</html>

Merci encore une fois ^_^
0
Utilisateur anonyme
1 févr. 2015 à 12:31
Je t'avais demandé "le code où tu crées et appelles tes requêtes".
Où se trouvent la création de requête et l'appel dans ce code ?
0
haikei00X Messages postés 67 Date d'inscription dimanche 20 juillet 2014 Statut Membre Dernière intervention 11 janvier 2016 3
1 févr. 2015 à 17:54
ok voilà
<?php
//Récupérer les données du formulaire
$date=$_POST['Date'] ;
$title=$_POST['title'] ;
$type=$_POST['list'] ;
$des=$_POST['description'] ;

/*************************************************************************/
$link=mysql_connect("localhost","root",""); //Connexion au serveur
if(!$link)
{
die('Erreur connexion'.mysql_error());
}

$Db_Select=mysql_select_db('gestionirritants',$link);  //Connexion à  la base de données

if(!$Db_Select)
{
die('Base non trouvée'.mysql_error());
}
/*************************************************************************/

$sql = " INSERT INTO declarations VALUES (' ', '$date', '$title' , '$type' , '$des') ";
$req=mysql_query($sql) or die('SQL Error'.$sql.mysql_error() );


  if(isset($req) )
  {
  echo "<center><b>Votre déclaration a été envoyée</b></center>" ;
  echo "<center><b>Merci!!</b></center>" ;
  }
  else
  {
    echo 'Erreur envoi non effectué';
  }

mysql_close ();


?>

0