Minichat fonctionnant dans un sens mais pas dans l'autre

Résolu
VivoBaggio Messages postés 140 Date d'inscription jeudi 27 octobre 2005 Statut Membre Dernière intervention 23 janvier 2009 - 8 janv. 2006 à 15:35
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 - 8 janv. 2006 à 19:30
Salut. Voilà, j'ai voulu faire un minichat. Le problème, c'est après avoir crée la BDD et avoir placé les champs correctement, le chat marche dans le sens BDD - site quand on rentre les infos mais dans le sens site - BDD. Si vous pouviez regardez où se trouve l'erreur sur le code. Merci

<?php
if (isset($_POST['MiniChatPse']) AND isset($_POST['MiniChatMes'])) // Si les variables existent
{
if ($_POST['MiniChatPse'] != NULL AND $_POST['MiniChatMes'] != NULL) // Si on a quelque chose à enregistrer
{
mysql_connect("localhost", "root", "");
mysql_select_db("admin");
$pseudo = htmlentities ($_POST['MiniChatPse']);
$message = htmlentities ($_POST['MiniChatMes']);
// Ensuite on enregistre le message
mysql_query("INSERT INTO minichat VALUES('', '$pseudo', '$message')");
mysql_close();
}
}
?>
<form action="principal.php" method="post">

Pseudo :

Message :

<textarea name="message" rows="5"></textarea>

</form>
<?php
mysql_connect("localhost", "root", "");
mysql_select_db("animemor");
// On utilise la requête suivante pour récupérer les 10 derniers messages :
$reponse = mysql_query("SELECT * FROM minichat ORDER BY MiniChatId DESC LIMIT 0,10");
mysql_close();
// Puis on fait une boucle pour afficher tous les résultats :
while ($donnees = mysql_fetch_array($reponse) )
{
?>

<?php
echo $donnees['MiniChatPse'];
?>
:
<?php
echo $donnees['MiniChatMes'];
?>

<?php
}
?>

Les Canaris redeviendront Champions de France.
A voir également:

8 réponses

cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
8 janv. 2006 à 19:12
surement un problème dans ta requête MySQL (structure de ta table ?)

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
3
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
8 janv. 2006 à 18:29
Salut,

if (isset($_POST['MiniChatPse']) AND isset($_POST['MiniChatMes'])) // Si les variables existent
{
if ($_POST['MiniChatPse'] != NULL AND $_POST['MiniChatMes'] != NULL)

il n'y a aucun champ dans ton formulaire portant le nom de "MiniChatPse"

tu peux je pense remplacer ça par ça :

if (isset($_POST['message'],$_POST['pseudo']) AND trim($_POST['message']) AND trim($_POST['pseudo']))
{
if(get_magic_quotes_gpc()===0)

{

$pseudo=mysql_real_escape_string($_POST['pseudo']); //ça va plaire à FhX (lol)

$message=mysql_real_escape_string($_POST['message']);

}

$pseudo=htmlentities ($pseudo);

$message=htmlentities ($message);

mysql_connect('localhost', 'root','');
mysql_select_db('admin');
mysql_query("INSERT INTO minichat VALUES('', '$pseudo', '$message')");
mysql_close();
}

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
0
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
8 janv. 2006 à 18:39
"if(get_magic_quotes_gpc()===0)
{
$pseudo=mysql_real_escape_string($_POST['pseudo']); //ça va plaire à FhX (lol)
$message=mysql_real_escape_string($_POST['message']);
}"
Ce qui va me plaire surtout, c'est qu'avec PHP6, y'aura plus besoin de se faire chier car les magic_quote vont dégager du PHP.ini :) :) :) :) :) :)

Par contre, faire un echappement de caractères suivit d'un htmlentities... ca sert un peu à rien :p
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
8 janv. 2006 à 19:02
FhX >"Par contre, faire un echappement de caractères suivit d'un htmlentities... ca sert un peu à rien :p"

si car si le mec injecte du HTML sans htmlentities tu l'as dans le luc... et si tu veux te passer des addslashes ou autres mysql_real_escape_string faut mettre le ENT_QUOTES dans le htmlentities, chose que je n'ai pas faite car ça reviendrait à faire un stripslashes en plus si le magic_quotes_gpc est à 1. donc inutile.
<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
VivoBaggio Messages postés 140 Date d'inscription jeudi 27 octobre 2005 Statut Membre Dernière intervention 23 janvier 2009
8 janv. 2006 à 19:05
Le hic avec ton code et d'ailleurs je comprends pas pourquoi, mais il a marché avec le 1er enregistrement mais plus maintenant.

Les Canaris redeviendront Champions de France.
0
VivoBaggio Messages postés 140 Date d'inscription jeudi 27 octobre 2005 Statut Membre Dernière intervention 23 janvier 2009
8 janv. 2006 à 19:21
C'est bon j'ai réussi à trouver mon erreur. C'était dans la BDD. Merci

Les Canaris redeviendront Champions de France.
0
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
8 janv. 2006 à 19:26
Bah en même temps, si tu accèptes les balises html c'est que y'a un problème :)
Donc un coup d'ereg sur tout ce qui est balise et on en parle plus dès le début ! =)
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
8 janv. 2006 à 19:30
bah non justement si le mec veut afficher "voilà <salut à tous>" bah tu l'as dans le luc avec ton ereg car tu supprimes le texte inutilement. le htmlentities t'affiche le texte. et si tu veux supprimer les balises prends un strip_tags m'enfin bon là n'est pas la question :-)

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
0
Rejoignez-nous