Redirection en php ne fonctionne pas

Résolu/Fermé
rjl Messages postés 543 Date d'inscription mardi 16 mars 2004 Statut Membre Dernière intervention 25 mai 2019 - 23 juil. 2012 à 22:19
rjl Messages postés 543 Date d'inscription mardi 16 mars 2004 Statut Membre Dernière intervention 25 mai 2019 - 24 juil. 2012 à 17:00
Bonjour à tous,

J'étais content d'être un peu libéré de mes problèmes PDO mais un nouveau problème apparaît, cette fois dans les redirections !

J'ai plusieurs modules qui s'enchaînent (un formulaire par Submit) et celui-ci (non modifié) a toujours fonctionné.
Le second fonctionnait aussi mais je ne puis assurer que j'atteignais le 3ème par l'instruction location (accès direct ?) !

Problème aussi, j'ai positionné Print, echo et vardump mais n'ai aucun affichage dans ce second module !! Comment va-t'il alors à la dernière instruction (location) ?
Malgré tout, je suis aussi surpris de constater dans le message erreur reçu porte l'adresse du 3ème module mais avec une "Erreur chargement de page" :

-----> La page n'est pas redirigée correctement
-----> Firefox a détecté que le serveur redirige la demande pour cette adresse d'une manière qui n'aboutira pas.
-----> La cause de ce problème peut être la désactivation ou le refus des cookies.

J'ajoute que seul le 1er module avec édition du formulaire est en HTML, les 2 autres étant uniquement en PHP.
Enfin, j'autorise bien l'inscription des cookies (allusion du message erreur). Enfin les 3 modules sont dans le même répertoire.,

Merci de votre vue de ce problème et de l'indication des anomalies que vous y constateriez.
je ne communique que le deuxième module charnière entre le formulaire que j'instruis et le 3ème module en erreur de chargement.
<?php 
	session_start();   // Ouvrir la session
// à ajouter au début du script au cas où magic_quotes soit à ON 
	print_r($_POST); 
	if (get_magic_quotes_gpc()) 
	{ 
		$_POST = array_map('stripslashes', $_POST); 
	} 
//  echo ($_POST);
	$msg_erreur = "Erreur. Le Login et le Mot de passe doivent être correctement remplis<br/><br/>";	
	$message = $msg_erreur;
	$msg_ok = "Merci de vous être enregistré.";
	echo ($_POST); 
	echo ($msg); 
// vérification des champs
	if (empty($_POST['Login'])) 
		$message .= "Votre Login<br/>";
	if (empty($_POST['MotPasse'])) 
		$message .= "MotPasse<br/>";

			var_dump ($_POST);
		
// si un champ est vide, afficher le message d erreur
	if (strlen($message) > strlen($msg_erreur)) {
		echo $message; exit;} 
// sinon c est ok
	echo ($msg_ok);
	$_SESSION['Login']=$_POST['Login'];
	$_SESSION['MotPasse']=$_POST['MotPasse'];
	HEADER('Location: AccueilCA.php');
	
?>


@bientôt te encore merci de votre appui RJL2723


A voir également:

3 réponses

rjl Messages postés 543 Date d'inscription mardi 16 mars 2004 Statut Membre Dernière intervention 25 mai 2019 49
24 juil. 2012 à 17:00
Bonjour Adrien, Bonjour Gilbert1995,

Merci de vos réponses qui si elles ne résolvent pas encore ma difficulté m'obligent à l'aborder (relecture ou autre) avec un regard différent donc toujours bénéfique.

Pour Adrien =>
j'ai corrigé plusieurs exit() mais ce module me paraissait bien fonctionner précédemment. Un essai à la suite n'a apporté aucun changement (toujours le même message d'erreur).

Pour Gilbert1995 =>
voici le codage d'appel font la balise Form et son action qui cible bien le module.
</div>
	<!-- Saisie Identification et Mot de passe -->		<!--Début du "Form" 2709-->
	<div class="formul"  style="color: rgb(153, 0, 0);font-weight:bold;font-size : 120%;"> 	
		<p> <br /><br /><br /></p>
		<p><br /><br /><br /> Vous entrez sur une page réservée et devez vous identifier<br /><br /></p>
		<!--Début du "Form" 2621-->
		<FORM action=identifB.php method=POST >	
			<fieldset style="color: rgb(153, 0, 0);">
				<label for="Login">Entrez votre identifiant : </label><INPUT id="Login"  name="Login" 

Pour lever tout doute, j'ai renommé le module cible identifB.php pour voir si j'avais bien une impossibilité de l'atteindre et détruit celui qui portait ce nom :
Là j'ai bien une erreur différente indiquant que je n'ai plus accès à ce module :
Oups! La page n'a pas été trouvée. Essayez à nouveau ci-dessous

Enfin, j'ai refait un module au bon nom avec juste un
echo "accès identifB.php"; : surprise, j'ai un résultat correct !

En ajoutant les instructions, une à une (avec essais), mais maintenant toujours en dernière instruction :
Array ( [Login] => rjLEP [MotPasse] => ******** [envoi] => Envoi pour identification ) Array accès identif.php
J'ai eu du mal à trouver "Envoi pour identification qui est le libellé du bouton Submit du module émetteur identifA (je n'avais pas remarqué que ce texte pouvait être transmis sous le nom [Envoi] !).

Je vous épargne la totalité de mes essais mais tout à marché... jusqu'au moment où j'ai ajouré la dernière instruction et là, la même catastrophe, le message bien connu et plus d'édition de tous les echo, print ou var(dump) intermédiaires !
Je suis allé sur Internet pomper le texte de l'instruction location et l'ai copié à la place du mien sans y voir de différence sauf que j'ai obtenu un parse error en instruction 19... mais, vérification faite, c'était peu vraisemblable et ainsi, je me suis rendu compte que le Parse Error était dans le 3ème module AccueilCA.php dans lequel j'étais entré sans le message bloquant !
Finalement, une vraie bénédiction ce Parse Error !
Après recherche de la cause c'est que recopiant le format en relatif j'ai récupéré le slash impératif devant l'adresse soit d'un répertoire, si nécessaire, soit du module cible lorsque, comme moi, on reste dans le me même dossier !

Merci de votre aide qui est vrai moteur pour progresser.
@bientôt... sans doute pour un autre sujet. RJL2724
1
Autumn`Tears Messages postés 1054 Date d'inscription samedi 14 mars 2009 Statut Membre Dernière intervention 23 octobre 2013 145
24 juil. 2012 à 00:03
Salut,

Dans un premier temps, n'oublie pas de mettre exit(); après un header de redirection, afin d'éviter l'exécution de la fin du script (si jamais il y a autre chose après ce header), ça peut constituer des failles, générer des problèmes !
0
gilbert1995 Messages postés 414 Date d'inscription samedi 12 septembre 2009 Statut Membre Dernière intervention 30 mai 2013 29
24 juil. 2012 à 00:14
Est-tu sur que ton formulaire envoit bien sur la bonne page ?
0