4 réponses
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>
$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 )
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
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