Etrange, boutton submit inactif [NEW]
Thibaut93260
Messages postés
13
Date d'inscription
Statut
Membre
Dernière intervention
-
Thibaut93260 Messages postés 13 Date d'inscription Statut Membre Dernière intervention -
Thibaut93260 Messages postés 13 Date d'inscription Statut Membre Dernière intervention -
Bonsoir tout le monde, il y a deja quelques topics traitant du même sujet, mais aucun ne m'a aidé à regler mon probleme, voili voilou en projet de fin d'année on attend de moi que je réalise un site dynamique en php (original n'est ce pas ! ), je suis en ce moment sur mon minichat, et chose étrange, le boutton submit de mon formulaire ne marche pas, il actualise la page, allez savoir pourquoi
Voila mon code : (Fin de ma page d'accueil)
Et la traitement php :
C'est comme si je n'étais pas du tout edirigé vers ma page chat_post3.php, ce qui est le cas de toute manière, car j'ai essayé en copiant/collant mon formulaire sur une page test vierge, et cela marche sans soucis ... pourtant c'est exactement le même formulaire que sur ma page d'accueil ... bref, en espérant un peu d'aide, merci d'avance :)
Voila mon code : (Fin de ma page d'accueil)
<div class="div5">
<span class="titre5">
Minichat
</span>
<hr>
<div class="minichat">
<p>
<?php
// Connexion à la base de données
$cx=@mysqli_connect("localhost","root","") or die("[Erreur de connexion]");
$bdd=@mysqli_select_db($cx,"test") or die("[Erreur de base]");
// Récupération des 5 derniers messages
$requete = 'SELECT pseudo,message FROM chat ORDER BY ID DESC LIMIT 0, 5;';
$reponse = @mysqli_query($cx,$requete) or die("[Erreur de requete]");
echo '<div class=\'minichat3\'>';
echo '<table align=\'left\' border=\'0\' cellspacing=\'0\' cellpadding=\'0\' width=\'100%\' style=\'table-layout:fixed\'>';
while ($data = @mysqli_fetch_array($reponse))
{
echo '<tr><td align=\'center\'><strong><u><font color=\'#3399FF\'>' . $data['pseudo'] .'</strong></u>: </td><td><strong><font color=\' #696969\'>-' . $data['message'] .'</strong></td></tr><tr><td><br></td><td><br></td></tr>';
}
echo '</table>';
echo '</div>';
?>
</div>
<form action="chat_post3.php" method="post">
<table width="100%" class="minichat2">
<tr><td><label for="pseudo">Pseudo</lable> : </td><td><input type="text" name="pseudo" id="pseudo" /></td></tr>
<tr><td><label for="message">Message</label> : </td><td><input type="text" name="message" id="message" /></td></tr>
<tr><td><input type="submit" value="Envoyer" id="envoyer"/></td></tr>
</table>
</form>
</div>
</body>
</html>
Et la traitement php :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Testchat</title>
</head>
<body>
<?php
// Connexion à la base de données
$cx=@mysqli_connect("localhost","root","") or die("[Erreur de connexion]");
$bdd=@mysqli_select_db($cx,"test") or die("[erreur de base]");
function securisation($variable)
// Fonction de sécurisation //
{
$variable = mysql_real_escape_string($variable);
$variable = htmlspecialchars($variable);
return $variable ;
}
// Le traitement du formulaire d'ajout d'un message.
if(isset($_POST['pseudo'], $_POST['message'])) // Si le formulaire est envoyé.
{
if(!empty($_POST['pseudo']) AND !empty($_POST['message'])) // Si tous les champs ont été remplis correctement.
{
$pseudo = securisation($_POST['pseudo']); // Regardez un peu plus haut pour la fonction.
$message = securisation($_POST['message']);
// Et une insertion dans la table minichat.
mysqli_query($cx,'INSERT INTO chat(pseudo,message) VALUES("' . $pseudo . '", "' . $message . '")') ;
}
else // Si le visiteur n'a pas correctement saisi tous les champs, alors on le lui indique.
{
echo '<strong>Erreur : vous n\'avez pas correctement saisi les champs obligatoires.</strong>' ;
}
}
// Redirection du visiteur vers la page du minichat
echo '<a href=\'Pageaccueil.php\'> ICI </a>';
?>
</body>
</html>
C'est comme si je n'étais pas du tout edirigé vers ma page chat_post3.php, ce qui est le cas de toute manière, car j'ai essayé en copiant/collant mon formulaire sur une page test vierge, et cela marche sans soucis ... pourtant c'est exactement le même formulaire que sur ma page d'accueil ... bref, en espérant un peu d'aide, merci d'avance :)
A voir également:
- Etrange, boutton submit inactif [NEW]
- Service spouleur d'impression inactif - Guide
- Processus inactif du systeme ✓ - Forum Windows
- Gpu distinct inactif - Forum Refroidissement
- We detected a new ftpm firmware ✓ - Forum BIOS
- Au bout de combien de temps un compte facebook inactif est supprimé ✓ - Forum Facebook
3 réponses
et tu veux qu'il fasse quoi on input (de type submit) à part d'actualiser la page.
quand tu met pas de "action" dans la balise <form> ton formulaire renvoi vers la même page !!
veuillez mieux s'expliquer et nous donner le problème s'il y en a un ^^
quand tu met pas de "action" dans la balise <form> ton formulaire renvoi vers la même page !!
veuillez mieux s'expliquer et nous donner le problème s'il y en a un ^^
Salut,
Essaye de passer le code source de ta page d'accueil au validateur w3c, tu as p-e une erreur sur ton code HTML qui rend ton formulaire inactif.
Attention à ta fonction securisation() qui n'est pas du tout sécurisé : les fonctions mysql_real_escape_string() et htmlspecialchars() ont chacune leurs rôles et ne doivent pas être utilisées n'importe quand.
En utilisant htmlspecialchars() en plus de mysql_real_escape_string() avant l'insertion en bdd, tu risques des injections sql.
mysql_real_escape_string() doit uniquement être utilisé sur des données avant insérer en bdd.
htmlspecialchars() doit uniquement être utilisé pour afficher des données en html.
Exemple :
Dernier conseil, évite l'utilisation des @, il faut mieux corriger les erreurs que de les masquer.
Bonne journée
Essaye de passer le code source de ta page d'accueil au validateur w3c, tu as p-e une erreur sur ton code HTML qui rend ton formulaire inactif.
Attention à ta fonction securisation() qui n'est pas du tout sécurisé : les fonctions mysql_real_escape_string() et htmlspecialchars() ont chacune leurs rôles et ne doivent pas être utilisées n'importe quand.
En utilisant htmlspecialchars() en plus de mysql_real_escape_string() avant l'insertion en bdd, tu risques des injections sql.
mysql_real_escape_string() doit uniquement être utilisé sur des données avant insérer en bdd.
htmlspecialchars() doit uniquement être utilisé pour afficher des données en html.
Exemple :
<?php if (!empty($_POST['pseudo'])) { // insertion en bdd, on échappe les caractères spéciaux sql mysql_query('INSERT INTO users (pseudo) VALUE (' . mysql_real_escape_string($_POST['pseudo']) . ')'); } // affichage du pseudo, on échappe les caractères spéciaux html echo htmlspecialchars($_POST['pseudo']);
Dernier conseil, évite l'utilisation des @, il faut mieux corriger les erreurs que de les masquer.
Bonne journée
Merci à vous deux pour votre temps, je viens de trouver, ma premiere balise <form> pour ma fonction de recherche n'était pas fermée, il devait donc y avoir conflit, j'ai trouvé cette erreur grâce au validateur W3C, que je vais dorenavant utiliser bien plus souvent ! Pour ça, encore merci Pitet !
Bonne journée à vous.
Bonne journée à vous.