[php] Transmettre une variable

Résolu/Fermé
Signaler
Messages postés
103
Date d'inscription
lundi 2 juillet 2007
Statut
Membre
Dernière intervention
14 novembre 2009
-
Messages postés
103
Date d'inscription
lundi 2 juillet 2007
Statut
Membre
Dernière intervention
14 novembre 2009
-
Bonjour,
Dans mon code php, j'ai plusieurs formulaires (inscription,...)
Je veux que lorsque l'utilisateur rentre de mauvaise informations ils soient renvoyés sur la meme page mais avec un petit message d'erreur en haut du formulaire.
Voici mon code
	case "subscribe": {
		echo'<center>Inscription<br>
		<font color="red">'.$error_log.'</font><br>
		<form name="form1" method="post" action="?cat=subscribe2">
		<table cellpadding="2" cellspacing="2">
			<tr>
				<td>Pseudo</td>
				<td><input name="login" type="text" id="login"></td>
			</tr>
			//autres champs du tableau


tout cela est récupéré sur la page subscribe2 avec les vérifications
	case "subscribe2": {
		if ($_POST['pass1'] != $_POST['pass2']){
			$error_log = "mots de passe entrés différents";	
			echo'<META http-equiv="refresh" content="1 ; URL=?cat=subscribe">'; //redirection automatique
		}

		//autres vérifications

		else{
			//requête sql d'enregistrement
			echo'<center>Vous voila enregistré<br>
			Bon amusement :-)<br><br>';
		}

	}


C'est donc la valeur $error_log qu'il faut transmettre à la page "subscribe" si il y a une erreur.
Etant donné que c'est un string je me verrais mal le transmettre dans l'url donc il faudrait le stocker dans une variable cachée (ptete pas besoin d'une variable de session ou cookie pour ça)
Je ne sais pas si c'est la méthode la plus efficace...

Merci d'avance

3 réponses

Messages postés
613
Date d'inscription
dimanche 21 octobre 2007
Statut
Membre
Dernière intervention
22 juin 2009
46
la method la plus simple de verification de formulaire reste le javascript Oo

il suffit de mettre ds la balise form du debut :
onsubmit='return(verifForm());'
puis ds le head mettre un script style :
<script type='text/javascript'>
  <!--
    function verifForm(){
      var f=document.form1;
      if(f.pass1.value!=f.pass2.value){
        alert("vous avez rentré 2 mots de passe differents");
        return(false);}}
  -->
</script>
c'est un exemple pr tester si les 2 mdp tapés st identiques,
le formulaire ne sera alr pas envoyé si ils st differents ..
et tu peux tester tt et n'importe quoi comme ca :)
Messages postés
103
Date d'inscription
lundi 2 juillet 2007
Statut
Membre
Dernière intervention
14 novembre 2009
6
Euuh apprendre le javascript est dans ma liste de tâche à réaliser cet été xD
Pour l'instant je pensais plutôt essayer de rester uniquement dans le php.

A moins que tu me dises qu'il n'existe pas d'autres manière de le faire (ou trop compliquées) :-)
Messages postés
613
Date d'inscription
dimanche 21 octobre 2007
Statut
Membre
Dernière intervention
22 juin 2009
46
bien sur que si ^^
on peut tt faire ( ou quaziment ^^ )
mais faut avouer que le javascript te simplifie drolement la tache ^^

pr ton cas par exemple tu peux créer une variable $message_d'erreur
quand tu arrive ds la 2eme page ( celle qui vérifie ) tu donne une valeur a cette variable que tu envoies a la 1ere page via un formulaire tt en hidden et en post que tu fais envoyer automatiquement

et ds ta 1ere page tu regarde si $_POST[message_erreur'] existe puis tu regarde sa valeur et tu affiche un message d'erreur en fct ^^
Messages postés
103
Date d'inscription
lundi 2 juillet 2007
Statut
Membre
Dernière intervention
14 novembre 2009
6
C'est donc à ça que sert les formulaires cachés ^^
Merci je vais regarder à ça (site du zero mon ami)