Minichat fonctionnant dans un sens mais pas dans l'autre

[Résolu]
Signaler
Messages postés
140
Date d'inscription
jeudi 27 octobre 2005
Statut
Membre
Dernière intervention
23 janvier 2009
-
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
-
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.

8 réponses

Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
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>
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
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>
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
4
"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
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
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>
Messages postés
140
Date d'inscription
jeudi 27 octobre 2005
Statut
Membre
Dernière intervention
23 janvier 2009

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.
Messages postés
140
Date d'inscription
jeudi 27 octobre 2005
Statut
Membre
Dernière intervention
23 janvier 2009

C'est bon j'ai réussi à trouver mon erreur. C'était dans la BDD. Merci

Les Canaris redeviendront Champions de France.
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
4
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 ! =)
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
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>