Header()

Fermé
bowbow13 - 21 juin 2007 à 11:29
 bowbow13 - 21 juin 2007 à 14:58
Bon voila, ca fait deux semaine que j'essaye de resoudre ce probleme (par intermittence avec deux), j ai plusieurs sujets avec des solutions mais je n'arrive toujours pas les appliquers.... du moins chez moi ca fonctionne pas :'(
<html>
<body>
<?
function formulaire()
{
	echo("<table width=\"100%\">");
	$saut="<br/><br/>";
	/*formulaire d identification pour administrateur et client*/
	echo("<form name=\"formulaire\" action=\"test.php?page=st\" method=\"post\">");
	//echo("<input type=\"hidden\" name=\"repere\" value=\"1\"/>$saut");<----voudrai recuperer valeur sans message erreur de maniere a faire un repere
	echo("<tr><td>Identifiant :</td></tr>");
	echo("<tr><td><input type=\"text\" name=\"login\"/></td></tr>");
	echo("<tr><td>Mots De Passe :</td></tr>");
	echo("<tr><td><input type=\"password\" name=\"mdp\"/></td></tr>");
	echo("<tr><td><input type=\"submit\" value=\"validation\"/></td></tr>");
}
?>
<?
formulaire();
?>
<?
/*connection a la base de donné de la somei*/
$connectServer = mysql_connect("localhost", "root", "")
or die("Impossible de se connecter : " . mysql_error());
/* selection de la base de donnée mysql */
$connectDB=@mysql_select_db("somei", $connectServer);
/*verifie si la base de donné existe*/
if($connectDB)
{
	/*repere permettant (si j y arrive) à aller dans un if a un moment donné (deuxieme passage)*/
	//if($_POST['repere']==1)
	// {
	/*connection a la base de donné et récupération des valeurs*/
	$result = mysql_query("SELECT * FROM `identification`");
	while($affiche = mysql_fetch_row($result))
	{
		/*vérification que le champs identifiant a bien été rempli*/
		if(!empty($_POST['login']) && isset($_POST['login']))
		{
			/*Vérification que le champs mdp a bien été remplie*/
			if(!empty($_POST['mdp'])&& isset($_POST['mdp']))
			{
				/*comparaison de l'identifiant rentré avec la base donné*/
				if($_POST['login']==$affiche[1])
				{

					/*comparaison du mdp rentré avec la base de donné*/
					if(md5($_POST['mdp'])==$affiche[2])
					{
						/*vérification des droits d'acces*/
						if($affiche[0]=="a" || $affiche[0]=="A")
						{
                                                  redirect();
						  echo("Et oui j ai acces a touts le site avec mon grand A</td></tr>");
						}
					}
					else
					{
						echo("<tr><td><i>Le mots de passe est invalide</i></td></tr>");
					}
				}
				else
				{
					echo("<tr><td><i>L'identifiant remplie est incorrect</i></td></tr>");
				}
			}
			else
			{
				echo("<tr><td><i>Veuillez rentrer un mots de passe dans le champ correspondant</i></td></tr>");
			}
		}
		else
		{
			echo("<tr><td><i>L'identifiant et le mots de passe sont obligatoire pour vous connecter dans la partie vous étant aménagé</i></td></tr>");
		}
	}
}
echo("</form>");
echo("</table>");
mysql_close($connectServer);
?>
<br /><br /><br />
<table width="100%">
<tr><td><font size="1">Vous n êtes pas encore inscrits?</font></td></tr>
<tr><td><a href="test.php?page=insc"><font size="2">inscrivez vous</font></a></td></tr>
</table>
</body>
</html>
<?
function redirect()
{
header("Location: .\test.php");
}
?>


Header normalement recoit une variable qui est transmise apres la série de vérification en fonction des droits accordé à l'utilisateur. Cette variable correspond aux page qui peut acceder. Mais la n'est pas le probleme car meme quand je lui mets une page fixe pour testé ca ne marche.
Il y a une histoire d'echo ou on peut pas mettre le header apres mais la je vois aps trop de solution car meme en placant la function redirect() au dessus des balises html ca marche pas :'(

help me please

5 réponses

s.spark Messages postés 2480 Date d'inscription vendredi 29 octobre 2004 Statut Contributeur Dernière intervention 13 février 2018 617
21 juin 2007 à 13:57
Salut,

La fonction header() indique comme son nom l'indique les information d'entête de ta page. Ce qui veut dire qu'avant d'afficher quoi que ce soit tu cette page tu vas par exemple dire au navigateur : cette page va être redirigée, dire que cette page est un fichier xml, ou encore cette page va télécharger une image, etc. ...

Résultat absolument rien ne doit être afficher dans la page avant un header, hors ta page commence par quoi ? De l'HTML !
<html>
<body>
Et il n'y probablement pas que ça.

Le mieux est donc de vérifier les droits dans une autre page.

Autre chose, il est inutile de créer une fonction pour en mettre une seul autre dedans, autant appeler celle-ci directement (je parle de function redirect())
0
mais alors comment rediriger la personne se connectant en fonction de ses droits et donc vers la page lui correspondant??
0
et quand je place au dessus du html en gardant le principe des pages fixe (provisoire) voici l erreur

Warning: Cannot modify header information - headers already sent by (output started at d:\dev\easyphp1-8\www\somei\test\identification.php:9) in d:\dev\easyphp1-8\www\somei\test\identification.php on line 4

a la ligne 4
header("Location: http://127.0.0.1/somei/test/test.php");
0
s.spark Messages postés 2480 Date d'inscription vendredi 29 octobre 2004 Statut Contributeur Dernière intervention 13 février 2018 617 > bowbow13
21 juin 2007 à 14:11
Je vais me répéter :


"Le mieux est donc de vérifier les droits dans une autre page. "
0
s.spark Messages postés 2480 Date d'inscription vendredi 29 octobre 2004 Statut Contributeur Dernière intervention 13 février 2018 617 > bowbow13
21 juin 2007 à 14:12
"Cannot modify header information"

Impossible de modifier l'entête, normal.
0
bowbow13 > s.spark Messages postés 2480 Date d'inscription vendredi 29 octobre 2004 Statut Contributeur Dernière intervention 13 février 2018
21 juin 2007 à 14:12
<b>"Le mieux est donc de vérifier les droits dans une autre page. " </b>???
qu elle droit tu parle? j ai pas administrer de droits sur les pages
0
Utilisateur anonyme
21 juin 2007 à 14:19
c'est juste que tu doit pas avoir de html ecrit avant de modifier l'entete de ta page...
0
s.spark Messages postés 2480 Date d'inscription vendredi 29 octobre 2004 Statut Contributeur Dernière intervention 13 février 2018 617
21 juin 2007 à 14:21
Je me rabache.

"Header normalement recoit une variable qui est transmise apres la série de vérification en fonction des droits accordé à l'utilisateur."

Fait lui recevoir ces information dans une autre page !
0
ok mais ce que j ai fait apres c'est de mettre ma fonction au dessus des balises html
et apres validation la fonction redirige vers le header.
la page se recharge normalement.

Mais en faite je veux juste rediriger les personnes aux pages leurs correspondant.

Je prends TOUTES les solutions proposé
0
s.spark Messages postés 2480 Date d'inscription vendredi 29 octobre 2004 Statut Contributeur Dernière intervention 13 février 2018 617
21 juin 2007 à 14:23
OK je me casse t'en a rien à foutre de ce que je te dis.

0
bowbow13 > s.spark Messages postés 2480 Date d'inscription vendredi 29 octobre 2004 Statut Contributeur Dernière intervention 13 février 2018
21 juin 2007 à 14:26
non pas que j en ai rien a foutre loin de la puisque j ai essayer de deplacer le header suivant ce que tu as dis
Mais la c'est un probleme de redirection, apres l administration des droits je les geres et a vrai dire, sur ca j ai pas de mal.
Le truc c'est faire un lien automatique vers une autre page, en faite c'est ca mon vrai probleme.
Et avec le header je n y arrive pas
0
s.spark Messages postés 2480 Date d'inscription vendredi 29 octobre 2004 Statut Contributeur Dernière intervention 13 février 2018 617
21 juin 2007 à 14:22
Au fait,

Ca sert à ruen de créer une fonction formulaire si c'est pour l'appeler qu'une seul fois.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
resolu en javascript
echo "<script language='javascript'>window.location='index.php'; </script>";
0