IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Problème header location


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 33
    Points : 17
    Points
    17
    Par défaut Problème header location
    Bonjour,

    J'utilise ce code pour un accès simplifié à l'administration:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    <?php 
    	include ('connection.php');
    	$login=$_POST['login'];
    	$retour = mysql_query("SELECT * FROM admin WHERE nom='$login'");
    	while ($donnees = mysql_fetch_array($retour))
    	{
    		if($donnees['mdp']==$_POST['mdp'])
    		{
    			echo 'connection réussite';
    			header("Location: /admin/index_admin.php");
    			exit();
    		}
    		else
    		{
    			echo 'Probleme de connection, réessayez';
    		}
    	}
    ?>
     
    <p>
    	<form method="POST" action="index.php?page=admin" enctype="multipart/form-data">
    		<fieldset>
    			<legend>Identification</legend>
    				<p>
    					<label>Entrez votre nom : </label><input type="texte" name="login" />
    				</p>
    				<p>
    					<label>Entrez votre mot de passe : </label><input type="password" name="mdp" />
    				</p>
    			<input type="submit" value="Valider" />
    		</fieldset>
    	</form>
    </p>
    Le probleme est que la redirection via le header ne fonctionne pas.
    Je recoi ce message d'erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Warning: Cannot modify header information - headers already sent by (output started at C:\wamp\www\CMS\index.php:73) in C:\wamp\www\CMS\index_admin.php on line 10
    j'ai lu quelques sujet, mais aucune réponse apporté.
    Merci de m'aider

  2. #2
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Salut

    La réponse est pourtant ici : http://php.developpez.com/faq/index....s_already_sent
    Et en lisant ton message d'erreur, tu verras que tu fais "echo", c'est ça l'erreur

  3. #3
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Points : 1 504
    Points
    1 504
    Par défaut
    Avant ton header, ne fait aucun retour vers le navigateur (pas de echo , ni de sauts de lignes etc).

    Entre parenthèse, essaie quand meme de faire gaffe à l'orthographe parce que
    "echo 'Probleme de connection, résseillez';" , ça pique un peu les yeux.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 33
    Points : 17
    Points
    17
    Par défaut
    Merci pour la faute.
    Vraiment énorme...lol

    J'ai compris pourquoi sa ne fonctionnais pas, mais le problème est que cette page est elle même incluse dans une autres page.
    Donc j'ai sur l'autre page des echo présents avant l'inclusion de celle-ci.
    N'y a t-il pas un autre moyen de faire un redirection?
    Ou de faire en sorte que le header se trouve sur l'autre page?

  5. #5
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    Bonsoir,

    D'un point de vue conception, il y a très peu de raisons pour que la page appellante affiche quelque chose avant la redirection dans la page incluse.
    Mais si tu ne veux pas refactoriser tes pages, utilise les output buffering :
    - ob_start() tout en haut de la page appellante;
    - ob_flush() tout en bas;

  6. #6
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Normalement, le principe d'un script est comme suit :
    1. Traitement des données en entrée ;
    2. Préparation des données de sortie pour affichage ;
    3. Affichage.
    Il n'y a pas de raison pour afficher quoi que ce soit avant la fin du traitement. En fait, si tu affiches avant la fin du traitement tu as exactement la situation actulle : tu es bloqué parce que tu voudrais faire une redirection alors que tu as déjà envoyé des choses.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 33
    Points : 17
    Points
    17
    Par défaut
    Je suis bien conscient des étapes de développement.
    Mais j'ai un base de mon site qui est fixe.
    Et j'affiche dans une div mes différentes pages.

    Le problème est donc que j'affiche mon menu avant cette div.
    Je ne peux donc pas utiliser de header pour faire ma redirection.

  8. #8
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Maintenant que tu sais où est la FAQ, tu peux sans doute y faire une recherche sur les redirections ?

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 33
    Points : 17
    Points
    17
    Par défaut
    Bon du coup j'ai utilisé du javascript.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <script type="text/javascript">
    window.location.href = 'page de redirection';
    </script>

  10. #10
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    Et si, pour une raison ou pour une autre, javascript est désactivé sur le navigateur ?

  11. #11
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Citation Envoyé par Tsilefy Voir le message
    Et si, pour une raison ou pour une autre, javascript est désactivé sur le navigateur ?
    Alors cet utilisateur ne peut presque pas utiliser l'Internet d'aujourd'hui

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 125
    Points : 149
    Points
    149
    Par défaut
    Citation Envoyé par Yogui Voir le message
    1. Traitement des données en entrée ;
    2. Préparation des données de sortie pour affichage ;
    3. Affichage.
    Même si ton problème est résolu je me permet de dire que Yogui a entièrement raison et je te conseille de mettre tout ce que tu veux écrire dans une variable comme par exemple $texte et de l'incrementée à chaque fois, ainsi, tu fera un echo sur ta page et un seul, à la fin de ton script, ce qui facilite grandement les choses notamment pour les header, les sessions et autres. Voilà c'était juste un conseil, A+

  13. #13
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    Citation Envoyé par Yogui Voir le message
    Alors cet utilisateur ne peut presque pas utiliser l'Internet d'aujourd'hui
    Est-ce que 100 % des mobiles supportent javascript ?
    Bon, pour son site, les accès depuis mobiles peuvent être rares, mais si on veut ratisser large, il vaut mieux éviter de confier des tâches aussi importantes qu'une redirection à javascript, surtout qu'il a PHP à côté et que son problème est juste un souci de réorganisation.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème Header(location: etc)sous IE
    Par gryps dans le forum Langage
    Réponses: 4
    Dernier message: 26/01/2013, 22h02
  2. Problème Header(location:) après hebergement
    Par Nanais19 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 03/05/2011, 10h19
  3. Problème redirection header ('location:
    Par Jiraiya42 dans le forum Langage
    Réponses: 1
    Dernier message: 24/06/2006, 17h08
  4. Problème "Header location"
    Par mLk92 dans le forum Langage
    Réponses: 7
    Dernier message: 31/05/2006, 11h24
  5. [FTP] problème header("location:......")
    Par K4trix dans le forum Langage
    Réponses: 23
    Dernier message: 30/11/2005, 11h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo