Bonjour à tous
j'ai ce petit formulaire
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="/config/style.css" type="text/css" media="screen"/>
<title>Site FFS2 BI</title>
</head>
<body>
<div class="page">
<div class="conteneurcent">
<?php
$link = mysql_connect ($dbhost2,$dbuser2,$dbpass2) or die ('Erreur : '.mysql_error() );
mysql_select_db($db2) or die ('Erreur :'.mysql_error());
mysql_query("SET NAMES 'utf8'");
$sql="SELECT * FROM bi ORDER BY `id` DESC ";
$result = mysql_query($sql,$link) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);
mysql_close($link);
if($total)
{
while($row = mysql_fetch_array($result))
{
?><div class="conteneurcent2"><?php
?><div class="Hb1L"><?php echo $row"id"];?></div><?php
echo"<br>";
?><div class="Hb2"><?php echo nl2br($row"message"]);?></div><?php
echo"<br>";
echo"<br>";
?></div><?php
}
}
if (isset($_POST)&&isset($_POST'message']))
{
$response = recaptcha_check_answer(Secret, $_SERVER'REMOTE_ADDR'], $_POST'recaptcha_challenge_field'], $_POST'recaptcha_response_field']);
if($response->is_valid)
{
extract ($_POST);
$message=htmlentities($message);
$message=str_replace("\'","'",$message);
$destinataire=" *****@*****.fr";
$sujet="Formulaire de contact";
$msg="B-I\n
Message: $message\n";
$entete="From: B-I";
mail($destinataire,$sujet,utf8_decode($msg),$entete);
?><div class="Hb1L"><?php echo "Votre message a bien été envoyé, s'il n'apparait pas, ne le renvoyé pas, il sera intégré plus tard";?></div><?php
str_replace("\n","<br>", $message);
$link = mysql_connect ($dbhost2,$dbuser2,$dbpass2) or die ('Erreur : '.mysql_error() );
mysql_select_db($db2) or die ('Erreur :'.mysql_error());
// mysql_query("SET NAMES 'utf8'");
$sql = "INSERT INTO `bi` ( `id` , `message` )
VALUES ('', '$message')";
mysql_query($sql) or die ('Erreur SQL ! <br>'.$sql.'<br>'.mysql_error());
mysql_close();
unset($_POST);
?>
<meta http-equiv="refresh" content="5;URL=./bi.php">
<?php
}
else{
?><div class="Hb1L"><?php echo "Votre message a été refusé suite à un doute sur votre identité physique.";?></div><?php
unset($_POST);
?>
<meta http-equiv="refresh" content="5;URL=./bi.php">
<?php
}
}
else
{
?>
<div class="Hb1L">
<form method="post" action="bi.php">
Message anonyme :<br /><textarea name="message" cols="150" rows="15"></textarea><br/>
<?= recaptcha_get_html(PubKey); ?>
<input type="submit" value="Envoyer" />
</form>
</div>
<?php
}
?>
</div>
<div class="clear"></div>
</div>
</body>
</html>
et voici les résultat pendant toute l'évolution des données rentré
ordre:
1-entrée formulaire
2-stockée en base de donnée
3-affichage
bonjour à tous
bonjour à tous
bonjour à tous
éàù
éà ù
éà ù
<meta http-equiv="refresh" content="5;URL=./bi.php">
<meta http-equiv="refresh" content="5;URL=./bi.php">
<meta http-equiv="refresh" content="5;URL=./bi.php">
mais celà ne s'execute pas OUF!
quand j'essaie de faire passer ce texte là, plantage de la BD et je ne sais pas pourquoi:
Pourquoi rester anonyme il faut avoir le courage de ses opinions.
Qu'est-ce-que je pense de FFS2 ? Je vais pas remettre mon post vous remerciant pour le boulot que vous faites, mais c'est largement mérité.
Ce que j'aimerai améliorer ? Si possible ça serai d'intégrer un module de booking pour les contrôleurs. Ce module pourra permettre au contrôleur de signaler quand est-ce-qu'il sera en poste sur un secteur. Le module permettrait de mentionner la position de contrôle et de saisir une plage horaire de présence.
Si vous avez besoin de plus d'infos sur ce que j'envisage, envoyez-moi un MP ou on se parle par Skype.
A l'usage ce booking pourrait être étendu aux pilotes, s'il fonctionne bien pour les contrôleurs.
Il faudrait mettre un rappel pour le dépot de plan de vol, si le vol est prévu à l'avance, comme ça on s'organise dans le groupe.
Voilà j'ai vidé mon sac pour l'instant, en attendant d'autres idées (plus ou moins) lumineuses.
Didier.
PS : Flo, tu me parlais d'une récompense pour mes posts sur jeuxvideos.com, c'est quoi ^^ ;)
A bientôt
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'est-ce-que je pense de FFS2 Je vais pas remettre mon post vous remerciant pour ' at line 2
je pense que c'est le '. mais normalement je ne devrai pas être géné.
pourriez vous me dire que faire pour m'en sortir parce là je me suis totalement perdu.
merci d'avance flo
salut,
Ma première idée est d'échapper tes '
Plus d'info ici http://www.php.net/manual/fr/function.addslashes.php
Tu as oublié un truc par là $msg="B-I\n
++
je pense avoir réussi, pas sans mal,ça à l'air de tourner tu en penses quoi?
<div class="page">
<div class="conteneurcent">
<?php
$link = mysql_connect ($dbhost2,$dbuser2,$dbpass2) or die ('Erreur : '.mysql_error() );
mysql_select_db($db2) or die ('Erreur :'.mysql_error());
mysql_query("SET NAMES 'utf8'");
$sql="SELECT * FROM bi ORDER BY `id` DESC ";
$result = mysql_query($sql,$link) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);
mysql_close($link);
if($total)
{
while($row = mysql_fetch_array($result))
{
?><div class="conteneurcent2"><?php
?><div class="Hb1L"><?php echo $row"id"];?></div><?php
echo"<br>";
?><div class="Hb2"><?php echo nl2br( stripcslashes ($row"message"]));?></div><?php
echo"<br>";
echo"<br>";
?></div><?php
}
}
if (isset($_POST)&&isset($_POST'message']))
{
$response = recaptcha_check_answer(Secret, $_SERVER'REMOTE_ADDR'], $_POST'recaptcha_challenge_field'], $_POST'recaptcha_response_field']);
if($response->is_valid)
{
extract ($_POST);
?><div class="Hb1L"><?php echo "Votre message a bien été envoyé, s'il n'apparait pas, ne le renvoyé pas, il sera intégré plus tard";?></div><?php
$message= addslashes(htmlspecialchars($message, ENT_QUOTES));
//$message= htmlspecialchars(addslashes($message), ENT_QUOTES);
$link = mysql_connect ($dbhost2,$dbuser2,$dbpass2) or die ('Erreur : '.mysql_error() );
mysql_select_db($db2) or die ('Erreur :'.mysql_error());
mysql_query("SET NAMES 'utf8'");
$sql = "INSERT INTO `bi` ( `id` , `message` )
VALUES ('', '$message')";
mysql_query($sql) or die ('Erreur SQL ! <br>'.$sql.'<br>'.mysql_error());
mysql_close();
unset($_POST);
?>
<meta http-equiv="refresh" content="5;URL=./bi.php">
<?php
}
else{
?><div class="Hb1L"><?php echo "Votre message a été refusé suite à un doute sur votre identité physique.";?></div><?php
unset($_POST);
?>
<meta http-equiv="refresh" content="5;URL=./bi.php">
<?php
}
}
else
{
?>
<div class="Hb1L">
<form method="post" action="bi.php">
Message anonyme :<br /><textarea name="message" cols="150" rows="15"></textarea><br/>
<?= recaptcha_get_html(PubKey); ?>
<input type="submit" value="Envoyer" />
</form>
</div>
<?php
}
?>
</div>
<div class="clear"></div>
</div>
Addslashes résous effectivement ton problème d'insertion mais il ne te protégera jamais contre les injection de code sql je te conseil plutôt (vu que tu n'utilises pas PDO et que tu devrais) mysql-real-escape-string (ou mysql_escape_string)
ici un comparatif entre addslashes et mysql-real-escape-string
PDO est la prochaine étape, à ce moment ce qui m’intéressé c'était de limite les crash de script accidentel ou peu agressive.
PDO est ma prochaine cible :)
Nos routes risque de se recroisé.
Merci pour tous.
@+
Flo