Aide textarea
Ferméjordane45 Messages postés 38347 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 décembre 2024 - 21 sept. 2022 à 19:03
4 réponses
20 sept. 2022 à 23:23
Bonjour
Pour l'affichage il faut utiliser la fonction
nl2br()
21 sept. 2022 à 14:06
nl2br() j'ai essayé mais sans succès
voici mes scripts de pages
page creation :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<html lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Enregistrement Intervention</title>
<style type="text/css">
body {
background-color: rgb(0, 0, 0);
}
select {
width : 250px ;
}
.Style20 { font-size: 24px;
color: #FFFFFF;
}
.Style25 {color: #FFFFFF; font-weight: bold; }
</style>
</head>
<body>
<script>
document.addEventListener("contextmenu", function(e){
e.preventDefault();
alert('Page protégée, clic droit interdit');
}, false);
</script>
<p><br />
</p>
<form method="post" action="ajoutfr.php">
<div align="center"></div>
<div align="center"><br />
<span class="zone_texte">
<textarea name="message" cols="50" rows="20" id="message"></textarea>
</span><br />
<br />
</div>
<div align="center"></div>
<div align="center">
<input type="submit" value="Valider" />
</div>
</form>
</body>
</html>
Page enregistrement :
<?php
// information pour la connection à le DB
$conn = mysqli_connect('*****', '*****', '*****', '*****');
//modification des caractères avec accents
mysqli_query($conn,"SET CHARACTER SET 'utf8'");
mysqli_query($conn,"SET SESSION collation_connection ='utf8_unicode_ci'");
//récupération des valeurs des champs:
$message = $_POST["message"] ;
//création de la requête SQL:
$sql = "INSERT INTO faits_remarquables (message)
VALUES ('$message') " ;
//exécution de la requête SQL:
$result = $conn->query($sql);
//affichage des résultats, pour savoir si la modification a marchée:
if($result)
{
header("location:" . "../index.php");
}
else
{
header("location:" . "../index.php");
}
?>
enfin page de lecture :
<?php
// information pour la connection à le DB
include('../../config.php');
//modification des caractères avec accents
mysqli_query($conn,"SET CHARACTER SET 'utf8'");
mysqli_query($conn,"SET SESSION collation_connection ='utf8_unicode_ci'");
//requête SQL:
$sql = "SELECT * FROM faits_remarquables" ;
// initialisation des données
$message = $_GET['message'];
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>modification de la consigne</title>
<style type="text/css">
body {
background-color: rgb(0, 0, 0);
background-color: rgba(0, 0, 0, 0.7);
}
select {
width : 250px ;
}
.Style14 {
font-size: 24px;
color: #FFFFFF;
}
.Style15 {color: #FFFFFF}
.Style16 {
font-size: 9px;
color: #999999;
}
</style>
</head>
<body>
<form name="insertion" action="Modif_consigne_validation.php" method="POST">
<div style="position:absolute; float:left"><span class="Style20"><a href="listes_consignes.php"><img src="../../images/Retour.png" title="RETOUR"/></a></span></div>
<input type="hidden" name="id" id="id" value="<?php echo '' . $_GET['id'] . '';?>" />
<p>
</p>
<table width="1009" border="0" align="center" cellspacing="0">
<tr>
<td width="944"><div align="center" class="Style20 Style14">Lecture du fait marquant</div></td>
</tr>
</table>
<br />
<table width="327" border="1" align="center">
<tr>
<td width="317">
<?php
$message = mysqli_real_escape_string($_GET['message']);
$msg = isset($_POST['message']) ?trim($_GET['message']) : '';
$message = nl2br($msg) ;
echo $message;?>
<textarea name="message" id="message" cols="50" rows="20"></textarea>
</td>
</tr>
</table>
<br />
<br />
<div align="center"></div>
<div align="center">
<input type="submit" value="Valider" />
</div>
</form>
</body>
</html>
21 sept. 2022 à 14:12
$message = mysqli_real_escape_string($_GET['message']); $msg = isset($_POST['message']) ?trim($_GET['message']) : ''; $message = nl2br($msg) ;
Heu..
Variable POST ou GET ??
Et puis .. à quel moment transmets tu cette variable dans l'url ( GET ) ou via formulaire ( POST ) ?
Les données devraient provenir de ta bdd ( de la table faits_remarquables non ? )
Au passage, pour les insertions en BDD evite d'utilise la méthode query .
A la place, utilises de requête préparées https://www.php.net/manual/fr/mysqli.quickstart.prepared-statements.php
Ca évitera bon nombre de soucis et t'évitera bon nombre de lignes de code inutiles ( y compris celles données par arscy )
21 sept. 2022 à 18:59
Bonjour,
Je ne saisis pas trop en quoi une requête préparée est plus optimale qu'une requête "classique"?
21 sept. 2022 à 19:03
Elle protège contre les injections sql et retire le besoin des addslasches, htmlspecialchars et autres joyeusetés de ce genre.
21 sept. 2022 à 14:13
et oui en effet les mots de type "C'est" me posent également problèmes ;)
c'est un vrai casse-tête, si je pouvais m'abstenir d'avoir une zone te texte comme ceci je le ferai mais la pas possible
Bon sang que c'est pas simple
21 sept. 2022 à 14:28
Tu n'as pas répondu à ma question...
Modifié le 20 sept. 2022 à 21:53
Bonsoir,
Sans voir ton code il est difficile de se prononcer.
Cependant je peux proposer de te pencher sur le fait que certains caractères ne sont pas pris en compte à un moment donné? (ici les sauts de ligne)
--> avoir recours à htmlspecialchars pourrait peut être t'apporter une solution?
Par ailleurs je présume que tu n'as pas encore testé des textes de type " C'est une "chose" " qui pourraient bien de poser souci en matière de stockage dans ta bdd,
mysqli_string_escape // addslashes peuvent te sauver la mise _ et accroître significativement la sécurité de ton formulaire qui plus est.
Tiens-nous au courant