Formulaires redirigent tous vers la meme page
tibolos
Messages postés
9
Statut
Membre
-
Posotaz Messages postés 505 Statut Membre -
Posotaz Messages postés 505 Statut Membre -
Bonjour,
Voila j'ai un petit problème.J'apprends le PHP, et je suis en train de faire un petit site pour m'entraîner
J'ai plusieurs formulaires sur différentes pages, qui sont sensés rediriger vers de endroits différents.
form action="livre_or.php" method="post"
form action="forum.php" method="post"
form method="post" action="mysite.php"
pourtant quand je clique sur valider, quelque soit la page sur laquelle je suis, je suis redirigé vers la page
du forum!!!
Aidez moi s'il vous plait!!!!
Voila j'ai un petit problème.J'apprends le PHP, et je suis en train de faire un petit site pour m'entraîner
J'ai plusieurs formulaires sur différentes pages, qui sont sensés rediriger vers de endroits différents.
form action="livre_or.php" method="post"
form action="forum.php" method="post"
form method="post" action="mysite.php"
pourtant quand je clique sur valider, quelque soit la page sur laquelle je suis, je suis redirigé vers la page
du forum!!!
Aidez moi s'il vous plait!!!!
A voir également:
- Formulaires redirigent tous vers la meme page
- Supprimer page word - Guide
- Page d'accueil - Guide
- Page accueil iphone - Guide
- Imprimer tableau excel sur une page - Guide
- Impossible de créer la page: vous avez essayé de créer une page trop souvent récemment. réessayez plus tard. - Forum Facebook
3 réponses
Bonjour,merci d'avoir repondu
j'ai bien ouvert une session avant tout code html
voici des bouts de code de ma page traitant le forum:
<h2>Bienvenue sur le forum</h2>
<?php
mysql_connect("localhost","root","");
mysql_select_db("cours");
$reponse=mysql_query("SELECT id,message From tchatch ORDER BY rang DESC LIMIT 0,10");
while($donnees=mysql_fetch_array($reponse)){
?>
<p> <strong> <?php echo $donnees['id'] ;?> :</strong> <?php echo nl2br($donnees['message']);?></br></p>
<?php }
mysql_close();//on affiche les 10 derniers messages
if(isset($_SESSION['pseudonime'])&&isset($_SESSION['mot_de_passe'])){//si l'utilisateur est connecté on lui permet de poster un nv message
?>
<form action="forum.php" method="post">
<fieldset>
<legend>Nouveau Message</legend>
<textarea name="texte" id="texte" rows="10" cols="50"></textarea>
<input type="submit"/>
</fieldset>
</form>
<?php
}
else{
echo'<p>vous devez-être connecté pour pouvoir poster un message <a href="connexion.php">Se connecter</a></p>';
}
?>
sur la page traitant du livre d'or:
<h2>Bienvenue sur mon livre d'or</h2>
<p>Mon site vous a plu? Laissez moi un message!!</p>
<form action="livre_or.php" method="post" >
<fieldset>
<legend >Message:</legend>
<textarea name="message" rows="10" cols="50"></textarea>
<input type="submit"/>
</fieldset>
</form>
<p>
<?php
if(isset($_POST['message'])){//si un utilisateur a envoye un message
if(isset($_SESSION['pseudonime'])&& $_POST['message']!=NULL){//vérifie quel'utilisateur n'envoie pas un message vide
mysql_connect("localhost","root","");//se connecte à la base de donnees
mysql_select_db("cours");
$pseudo = $_SESSION['pseudonime'];//evite les probs de securite
$message=mysql_real_escape_string(htmlspecialchars($_POST['message']));
mysql_query("INSERT INTO livre_or(id,pseudo,message) VALUES('','$pseudo','$message')");//stocke dans la base de donnees le message envoyé par l'utilisateur
mysql_close();//se deconnecte de la base de donnees
}
elseif(!isset($_SESSION['pseudonime'])){
echo 'vous devez-être connecté pour pouvoir écrire';
}
}
ensuite, j'affiche tous les messages (20 par pages)
sur la page traitant la connexion:
<?php
if(!isset($_SESSION['pseudonime'])&& !isset($_SESSION['mot_de_passe'])&&!isset($_GET['oubli'])){
?>
<h1>Se Connecter</h1>
<form method="post" action="mysite.php">
<label for="pseudo">pseudo</label>
<input type="text" name="pseudo" id="pseudo"/><br/>
<label for="password">mot de passe</label>
<input type="text" name="password" id="password"/><br/>
<input type="submit" value="valider"/>
</form>
<p><a href="connexion.php?oubli=1">Mot de passe oublié??</a></p>
<?php
}
j'effectue egalement d'autres tests pour traiter le cas ou l'utilisateur est déjà connecté, ou s'il a oublié son
mot de passe
Desole pour la mise en page, cela fait un peu indigeste, mais c'est pas evident de mettre du code sur un forum.
Merci d'avance de votre aide.
j'ai bien ouvert une session avant tout code html
voici des bouts de code de ma page traitant le forum:
<h2>Bienvenue sur le forum</h2>
<?php
mysql_connect("localhost","root","");
mysql_select_db("cours");
$reponse=mysql_query("SELECT id,message From tchatch ORDER BY rang DESC LIMIT 0,10");
while($donnees=mysql_fetch_array($reponse)){
?>
<p> <strong> <?php echo $donnees['id'] ;?> :</strong> <?php echo nl2br($donnees['message']);?></br></p>
<?php }
mysql_close();//on affiche les 10 derniers messages
if(isset($_SESSION['pseudonime'])&&isset($_SESSION['mot_de_passe'])){//si l'utilisateur est connecté on lui permet de poster un nv message
?>
<form action="forum.php" method="post">
<fieldset>
<legend>Nouveau Message</legend>
<textarea name="texte" id="texte" rows="10" cols="50"></textarea>
<input type="submit"/>
</fieldset>
</form>
<?php
}
else{
echo'<p>vous devez-être connecté pour pouvoir poster un message <a href="connexion.php">Se connecter</a></p>';
}
?>
sur la page traitant du livre d'or:
<h2>Bienvenue sur mon livre d'or</h2>
<p>Mon site vous a plu? Laissez moi un message!!</p>
<form action="livre_or.php" method="post" >
<fieldset>
<legend >Message:</legend>
<textarea name="message" rows="10" cols="50"></textarea>
<input type="submit"/>
</fieldset>
</form>
<p>
<?php
if(isset($_POST['message'])){//si un utilisateur a envoye un message
if(isset($_SESSION['pseudonime'])&& $_POST['message']!=NULL){//vérifie quel'utilisateur n'envoie pas un message vide
mysql_connect("localhost","root","");//se connecte à la base de donnees
mysql_select_db("cours");
$pseudo = $_SESSION['pseudonime'];//evite les probs de securite
$message=mysql_real_escape_string(htmlspecialchars($_POST['message']));
mysql_query("INSERT INTO livre_or(id,pseudo,message) VALUES('','$pseudo','$message')");//stocke dans la base de donnees le message envoyé par l'utilisateur
mysql_close();//se deconnecte de la base de donnees
}
elseif(!isset($_SESSION['pseudonime'])){
echo 'vous devez-être connecté pour pouvoir écrire';
}
}
ensuite, j'affiche tous les messages (20 par pages)
sur la page traitant la connexion:
<?php
if(!isset($_SESSION['pseudonime'])&& !isset($_SESSION['mot_de_passe'])&&!isset($_GET['oubli'])){
?>
<h1>Se Connecter</h1>
<form method="post" action="mysite.php">
<label for="pseudo">pseudo</label>
<input type="text" name="pseudo" id="pseudo"/><br/>
<label for="password">mot de passe</label>
<input type="text" name="password" id="password"/><br/>
<input type="submit" value="valider"/>
</form>
<p><a href="connexion.php?oubli=1">Mot de passe oublié??</a></p>
<?php
}
j'effectue egalement d'autres tests pour traiter le cas ou l'utilisateur est déjà connecté, ou s'il a oublié son
mot de passe
Desole pour la mise en page, cela fait un peu indigeste, mais c'est pas evident de mettre du code sur un forum.
Merci d'avance de votre aide.
Salut Tibolos,
C'est plutôt inhabituel, je n'ai jamais vu ça. Donc si je comprends bien ce sont 3 pages bien distinctes et quoi que tu fasses sur le formulaire d'identification par exemple, ça t'envoie sur la page "forum.php" ?
Je t'avoue que si je devais reproduire ce comportement oh combien étrange, le seul moyen que j'aurais d'y arriver serait :
- D'insérer un code JavaScript qui va modifier l'action du formulaire dès le chargement de la page.
- D'ajouter un fichier ".htaccess" quelque part dans l'arborescence du site afin de rediriger les URL vers le même endroit.
Donc vérifie déjà que ta page ne comprend aucune de ces deux propositions suspectes. De préférence regarde du côté de la source de la page générée et non celle du code source PHP... en espérant pouvoir t'aider à avancer sur ce mystère.
C'est plutôt inhabituel, je n'ai jamais vu ça. Donc si je comprends bien ce sont 3 pages bien distinctes et quoi que tu fasses sur le formulaire d'identification par exemple, ça t'envoie sur la page "forum.php" ?
Je t'avoue que si je devais reproduire ce comportement oh combien étrange, le seul moyen que j'aurais d'y arriver serait :
- D'insérer un code JavaScript qui va modifier l'action du formulaire dès le chargement de la page.
- D'ajouter un fichier ".htaccess" quelque part dans l'arborescence du site afin de rediriger les URL vers le même endroit.
Donc vérifie déjà que ta page ne comprend aucune de ces deux propositions suspectes. De préférence regarde du côté de la source de la page générée et non celle du code source PHP... en espérant pouvoir t'aider à avancer sur ce mystère.