fonction php retour page précédente

HTML5, CSS3, Javascript, support des mobiles... Que penser de votre site ? Vous manquez d'informations pour la construction d'un site qui puisse s'afficher correctement partout ? C'est un problème simple, un peu complexe ? Venez ici !
Répondre
scatman44

fonction php retour page précédente

Message par scatman44 »

Bonjour a tous. J' ai presque fini mon formulaire d' inscription de mon site mais il me manque "une fonction php" de retour a la page précédente. Cela éviterait que les champs remplis par le visiteur soient effacés lors d' une redirection, pour manque d' une valeur dans un champ, ou identifiant deja utilisé...J' ai essayé avec du javascript mais je n' y arrive pas.
Ce qui donnerait par exemple:
"Désolé votre identifiant est deja utilisé" + retour page précédente.
Si vous pouvez m' aider, merci d' avance.

Message envoyé avec : Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
nico@nc
Animal mythique
Messages : 8038
Inscription : 21 août 2005, 08:04

Message par nico@nc »

Et avec un

Code : Tout sélectionner

<a href="javascript:history.back(-1)">
?

Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.8.1.2) Gecko/20070220 Firefox/2.0.0.2
Nicolas
☛ Problème [résolu] ? Modifiez votre premier message pour l'indiquer.
Pas de support par message privé, postez sur le forum, merci.
scatman44

Message par scatman44 »

Nico j' ai essayé ton script ainsi que d' autres que j' ai trouvé sur le net comme:
<a href="javascript:window.history.go(-1)">Retour</a>
mais ça ne marche pas. Peut -etre que je les place mal dans mon script mais en tout cas j' ai un message d' erreur lors du chargement de ma page...parse error...
Je vous donne mon script si quelqu' un trouve la solution:
<?php
$identifiant = $_POST['identifiant'];
$motdepasse = $_POST['motdepasse'];
$nomdusumo = $_POST['nomdusumo'];
$adresseemail = $_POST['adresseemail'];

if(empty($identifiant) OR empty($motdepasse) OR empty($nomdusumo) OR empty($adresseemail))
{
echo ' <font face="arial" size="10" color="red">Attention,un ou des champ(s)sont vide(s)!</font> ';
<a href="javascript:history.back(-1)">;
}
else
{
// connexion à la base
$db = mysql_connect('xxx','xxx','xxx') or die('Erreur de connexion '.mysql_error());
// sélection de la base

mysql_select_db('scatman44_db',$db) or die('Erreur de selection '.mysql_error());


$sql = "SELECT identifiant FROM Tablesumo WHERE identifiant='$identifiant'";
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

// on compte le nombre de résultats
$res = mysql_num_rows($req);

if($res!=0)
{
echo '<font face="arial" size="6" color="green">Désolé,mais votre Identifiant existe dejà dans notre base.</font>';
}
else
{
$sql = "SELECT nomdusumo FROM Tablesumo WHERE nomdusumo='$nomdusumo'";
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

// on compte le nombre de résultats
$res = mysql_num_rows($req);

if($res!=0)
{
echo '<font face="arial" size="6" color="green">Désolé,mais votre Nom de sumo existe dejà dans notre base.</font>';
}
else
{

$sql = "INSERT INTO Tablesumo(identifiant, motdepasse, nomdusumo,adresseemail) VALUES('$identifiant','$motdepasse','$nomdusumo','$adresseemail')";

// on insère les informations du formulaire dans la table
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

// on affiche le résultat pour le visiteur
echo ' <font face="arial" size="10" color="blue">Bienvenue à Sumoland!</font> ';
echo ' <font face="arial" size="4" color="black">Votre demande a été enregistrée avec succés!</font> ';
mysql_close(); // on ferme la connexion
}}}
?>
Merci d' avance

Message envoyé avec : Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
nico@nc
Animal mythique
Messages : 8038
Inscription : 21 août 2005, 08:04

Message par nico@nc »

Là, je ne sais pas trop, par contre ça serait bien que tu entoure tes extraits de code des balises pour qu'on les distingue bien. ;)

Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.8.1.2) Gecko/20070220 Firefox/2.0.0.2
Nicolas
☛ Problème [résolu] ? Modifiez votre premier message pour l'indiquer.
Pas de support par message privé, postez sur le forum, merci.
scatman44

Message par scatman44 »

Pas de probleme Nico.
Nico j' ai essayé ton script ainsi que d' autres que j' ai trouvé sur le net comme:
<a href="javascript:window.history.go(-1)">Retour</a>
mais ça ne marche pas. Peut -etre que je les place mal dans mon script mais en tout cas j' ai un message d' erreur lors du chargement de ma page...parse error...
Je vous donne mon script si quelqu' un trouve la solution:
<?php
$identifiant = $_POST['identifiant'];
$motdepasse = $_POST['motdepasse'];
$nomdusumo = $_POST['nomdusumo'];
$adresseemail = $_POST['adresseemail'];

if(empty($identifiant) OR empty($motdepasse) OR empty($nomdusumo) OR empty($adresseemail))
{
echo ' <font face="arial" size="10" color="red">Attention,un ou des champ(s)sont vide(s)!</font> ';

Code : Tout sélectionner

<a href="javascript:history.back(-1)">
;
}
else
{
// connexion à la base
$db = mysql_connect('xxx','xxx','xxx') or die('Erreur de connexion '.mysql_error());
// sélection de la base

mysql_select_db('scatman44_db',$db) or die('Erreur de selection '.mysql_error());


$sql = "SELECT identifiant FROM Tablesumo WHERE identifiant='$identifiant'";
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

// on compte le nombre de résultats
$res = mysql_num_rows($req);

if($res!=0)
{
echo '<font face="arial" size="6" color="green">Désolé,mais votre Identifiant existe dejà dans notre base.</font>';
}
else
{
$sql = "SELECT nomdusumo FROM Tablesumo WHERE nomdusumo='$nomdusumo'";
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

// on compte le nombre de résultats
$res = mysql_num_rows($req);

if($res!=0)
{
echo '<font face="arial" size="6" color="green">Désolé,mais votre Nom de sumo existe dejà dans notre base.</font>';
}
else
{

$sql = "INSERT INTO Tablesumo(identifiant, motdepasse, nomdusumo,adresseemail) VALUES('$identifiant','$motdepasse','$nomdusumo','$adresseemail')";

// on insère les informations du formulaire dans la table
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

// on affiche le résultat pour le visiteur
echo ' <font face="arial" size="10" color="blue">Bienvenue à Sumoland!</font> ';
echo ' <font face="arial" size="4" color="black">Votre demande a été enregistrée avec succés!</font> ';
mysql_close(); // on ferme la connexion
}}}
?>
Merci d' avance

Message envoyé avec : Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
Asumbaa
Tyrannosaurus Rex
Messages : 2411
Inscription : 08 déc. 2004, 20:07

Message par Asumbaa »

Salut,

<a href="javascript:history.back(-1)"> c'est du HTML, toi tu le mets dans ton code PHP, c'est bien normal que ça ne fonctionne pas.
Essaye déjà

Code : Tout sélectionner

echo '<a href="javascript:history.back(-1)">Retour</a>';
Mais dans le principe, ce ne sera pas forcément la meilleure solution. Il vaudrait mieux faire traiter les données du formulaire par la même page que le formulaire ; après traitement :

- soit il y a des champs à revoir, dans ce cas tu raffiches le formulaire avec les données précédemment entrées, et tu indiques les erreurs

- soit tout va bien et tu affiches un message de succès / ou tu rediriges sur une page pour la suite des opérations (mais toujours bien indiquer que tout s'est bien passé)

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.3) Gecko/20060426 Firefox/1.5.0.3
scatman44

Message par scatman44 »

Merci pour le code Asumbaa, ça marche trés bien.
Effectivement je pense que la deuxieme solution serait de loin la meilleure, mais je crains de ne pas avoir les compétences pour le faire, a moins que se soit simple...Je pense qu' il faudrait tout coder en php pour avoir le formulaire et le traitement sur la meme page.En fait moi, comme débutant, je fais mon site avec nvu et j' inclu un peu de php pour arriver a mes fins. J' espère bientot pouvoir faire ce que tu me propose.
En tout cas merci pour ton aide.
ps:en attendant j' aimerais transformer mon lien de "retour page précédente" en quelque chose d' un peu plus joli style un bouton par exemple, si tu sais comment faire n' hésite pas.
A plus.

Message envoyé avec : Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

Asumbaa a écrit :Salut,

<a href="javascript:history.back(-1)"> c'est du HTML, toi tu le mets dans ton code PHP, c'est bien normal que ça ne fonctionne pas.
C'est même du javascript. Donc ceux qui l'ont désactivé ne pourront pas le faire fonctionner. Et puis au fond ce n'est qu'une autre méthode pour cliquer sur le bouton "précédent" du navigateur :wink:

Pour inclure les données déjà entrées dans les champs, ce n'est pas difficile du tout, il suffit de définir un attribut value aux <input> :wink:

Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.8.1.1) Gecko/20061208 Firefox/2.0.0.1
Asumbaa
Tyrannosaurus Rex
Messages : 2411
Inscription : 08 déc. 2004, 20:07

Message par Asumbaa »

Salut,

Ben c'est pas plus compliqué, tu fais ta petite image de retour et tu indiques

Code : Tout sélectionner

echo '<a href="javascript:history.back(-1)"><img src="chemin_vers_image" alt="texte_alternatif" title="Retour au formulaire"></a>';
Si tu es en XHTML il faut fermer la balise image :

Code : Tout sélectionner

echo '<a href="javascript:history.back(-1)"><img src="chemin_vers_image" alt="texte_alternatif" title="Retour au formulaire" /></a>';
Bon courage :D

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.3) Gecko/20060426 Firefox/1.5.0.3
Kristal_be
Salamandre
Messages : 41
Inscription : 28 avr. 2005, 18:07

Message par Kristal_be »

Il y a aussi la méthode PHP :

Code : Tout sélectionner

<a href="<?php echo $_SERVER['HTTP_REFERER']; ?>">Retour</a>
:wink:

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.2) Gecko/20070219 Firefox/2.0.0.1 MEGAUPLOAD 1.0
HP
Tyrannosaurus Rex
Messages : 2196
Inscription : 21 oct. 2004, 10:25

Message par HP »

Kristal_be a écrit :

Code : Tout sélectionner

<a href="<?php echo $_SERVER['HTTP_REFERER']; ?>">Retour</a>
lol :lol:

si HTTP_REFERER est bloqué tu fais quoi ?
ça ne vaut guère mieux que le javascrpt précédemment cité.

Message envoyé avec : Mozilla/5.0 (Macintosh; U; Intel Mac OS X; fr; rv:1.8.1.3pre) Gecko/20070308 Firefox/2.0.0.3pre (Mac Community Build, ElFurbe)

“La médiocrité obtiendra immanquablement la préséance en se travestissant des oripeaux de la bienséance.”
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

Kristal_be a écrit :Il y a aussi la méthode PHP :

Code : Tout sélectionner

<a href="<?php echo $_SERVER['HTTP_REFERER']; ?>">Retour</a>
:wink:
Ce n'est pas du tout ça qui remplira les champs, au contraire, la page sera rechargée et les champs seront donc complètement vides :wink:

Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.8.1.2) Gecko/20070220 Firerenard Firefox/2.0.0.2
Kristal_be
Salamandre
Messages : 41
Inscription : 28 avr. 2005, 18:07

Message par Kristal_be »

calimo a écrit :
Kristal_be a écrit :Il y a aussi la méthode PHP :

Code : Tout sélectionner

<a href="<?php echo $_SERVER['HTTP_REFERER']; ?>">Retour</a>
:wink:
Ce n'est pas du tout ça qui remplira les champs, au contraire, la page sera rechargée et les champs seront donc complètement vides :wink:

Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.8.1.2) Gecko/20070220 Firerenard Firefox/2.0.0.2
Ah, je n'avais pas vu qu'il voulait que les champs gardent leur valeur. :wink:
Invité

Message par Invité »

Bonjour a tous.Désolé de ne pas etre passé avant mais j' ai eu quelques petits problemes de pc.
Asumbaa a écrit :Salut,

Ben c'est pas plus compliqué, tu fais ta petite image de retour et tu indiques

Code : Tout sélectionner

echo '<a href="javascript:history.back(-1)"><img src="chemin_vers_image" alt="texte_alternatif" title="Retour au formulaire"></a>';
Si tu es en XHTML il faut fermer la balise image :

Code : Tout sélectionner

echo '<a href="javascript:history.back(-1)"><img src="chemin_vers_image" alt="texte_alternatif" title="Retour au formulaire" /></a>';
Bon courage :D

Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.3) Gecko/20060426 Firefox/1.5.0.3
Merci a toi Asumbaa, tes codes marchent trés bien, c' est cool.
calimo a écrit :C'est même du javascript. Donc ceux qui l'ont désactivé ne pourront pas le faire fonctionner. Et puis au fond ce n'est qu'une autre méthode pour cliquer sur le bouton "précédent" du navigateur
En fait j'ai voulu faire cela pour que ça soit plus pratique pour mes visiteurs, mais bon au pire ils ont le bouton "précédent",comme tu dis
calimo a écrit : Pour inclure les données déjà entrées dans les champs, ce n'est pas difficile du tout, il suffit de définir un attribut value aux <input>
Je vais réfléchir plus tard comment faire, pour l' instant, je reste sur une nouvelle page avec un bouton retour,car ça reste encore un peu flou pour moi, et vais essayer d' avancer sur mon site.
En tout cas merci a tous pour vos nombreuses réponses a ce topic.
scatman44

Message par scatman44 »

Oups c' était moi , de toute manière je vais m' enregistrer vu les nombreuses réponses que l' on trouve sur ce forum. :wink:

Message envoyé avec : Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506)
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 3 invités