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 :

Utilisation de "header"


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 94
    Par défaut Utilisation de "header"
    Bonsoir, décidément, je crois que j'ai encore du mal avec la logique php.
    Ça me déroute un peu de mes habitudes en prog !

    Le problème est tout simple...
    J'ai une page login.php avec un champs login et mot de pass.

    Quand je rentre les bonnes informations, je veux qu'il ce dirige vers la page access.php

    Voila comment j'ai procéder.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?php
    if (isset($_POST['pass'])) {
        $name = $_POST['ident'];
    	$mot_de_passe = $_POST['pass'];
    }else {
        $mot_de_passe = "";
    }
    if ($name == "douglas" && $mot_de_passe == "kennedy") { // Si le mot de passe est bon
    // J'affiche ma deuxième page avec une redirection header qui malheureusement pour moi ne fonctionne pas :)
    	 header('Location: access.php');
    }else{
    ?>
    Pour le formulaire, j'ai mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    	<form action="login.php" method="post">
    Je pense que si je veux qu'il vérifie si les codes de la page sont bons, il faut donc que l'action soit sur "login.php" non ?


    Merci de bien vouloir m'éclairer ^^
    @++

  2. #2
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 494
    Par défaut
    Non tu peux l'appeler dans la même page

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 94
    Par défaut
    Oui mais alors, si il vérifie que les données sont correctes et qu'il reviens sur la même page, comment aller à la page suivante "access.php ?"

    En sachant que mon header ne fonctionne pas, j'obtiens une erreur.

  4. #4
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 494
    Par défaut
    Ben dans ce cas tu fais une redirection vers la page.
    Mais tu testes au début avant le code HTML.

    Quelle est ton erreur ?

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 94
    Par défaut
    Très simplement, je voudrais savoir comment aller sur une autre page php si mon code est correct...
    C'est tout.
    Je pensai m'y être pris de la bonne manière mais...

    L'erreur pour le header est la suivante :

    Warning: Cannot modify header information - headers already sent by (output started at C:\wamp\www\monsite\admin.php:3) in C:\wamp\www\monsite\admin.php on line 17.

    Ce message arrive une fois que le mot de pass est ok et que la page ce recharge.

    Merci de m'aider si tu as une idée.
    @+++

  6. #6
    Membre Expert

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 127
    Par défaut
    L'erreur est clair pourtant.
    un header ne fonctionne pas si quelque chose est déjà affiché. en l'occurrence ligne 3.

  7. #7
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 94
    Par défaut
    mais pourtant je n'ai pas de code html avant, peut etre que le code php non plus est pas bon ?

    j'ai ça avant le header

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?php
    if (isset($_POST['pass'])) {
        $name = $_POST['ident'];
    	$mot_de_passe = $_POST['pass'];
    }else {
        $mot_de_passe = "";
    }
    if ($name == "douglas" && $mot_de_passe == "kennedy") { // Si le mot de passe est bon
    // J'affiche ma deuxième page avec une redirection header qui malheureusement pour moi ne fonctionne pas :)
    	 header('Location: access.php');
    }else{
    ?>
    Si je ne peux pas mettre de conditions avant mon header alors il va falloir que je procède autrement !
    Malheureusement mon faible niveau en php ne m'aide pas

  8. #8
    Membre Expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Par défaut
    Citation Envoyé par dimebagplan Voir le message
    mais pourtant je n'ai pas de code html avant, peut etre que le code php non plus est pas bon ?
    Il n'y a pas un espace avant la balise <?php ?

  9. #9
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 94
    Par défaut
    non, pas d'espace.
    Ca voudrais dire que le header n'accepte pas de code php devant lui ?

    Encore une fois, je ne sais pas si c'est la bonne manière pour procéder...
    Si jamais il existe une redirection plus intéressante, je suis preneur.

  10. #10
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 494
    Par défaut
    Utilise ob_start() et ob_end_flush(), regarde la doc tu comprendras...

    http://www.php.net/manual/fr/function.ob-start.php

    http://www.php.net/manual/fr/function.ob-end-flush.php

  11. #11
    Membre Expert

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 127
    Par défaut
    Ton erreur nous parle de la ligne 17. Or ton header n'est pas ligne 17.

  12. #12
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 494
    Par défaut
    M'enfin tu vois bien que ce n'est qu'un bout de code...
    On ne peut pas dire que sa ligne 17 corresponde au code donné.

  13. #13
    Membre Expert

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 127
    Par défaut
    Citation Envoyé par blueice Voir le message
    M'enfin tu vois bien que ce n'est qu'un bout de code...
    On ne peut pas dire que sa ligne 17 corresponde au code donné.
    Il dit qu'il n'a QUE ça. donc j'en déduis que c'est le début de son fichier admin.php.

    Et c'est bien pour ça qu'on voudrais voir le fichier admin.php en étant sur que ça soit le début. car il dit que un header est parti ligne 3

  14. #14
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 94
    Par défaut
    Désoler, je vais montrer le tout une bonne fois pour toute.

    voici le code complet de la page admin.php

    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
    34
    35
    36
     
    <?php
    if (isset($_POST['pass'])) {
        $name = $_POST['ident'];
    	$mot_de_passe = $_POST['pass'];
    }else {
        $mot_de_passe = "";
    }
    if ($mot_de_passe == "kennedy" && $name == "douglas") { 
        header('Location: config.php');
    }else{
    ?>
    <html>
    	<head>
    	<title>Your Site / Admin</title>
    	<link rel="stylesheet" type="text/css" href="admin.css"> 
    	</head>
     
    	<body>
    		<div id="conteneur">
    			<h1 class="h1Font">Hello</h1>
    			<div id="formBox">
    			<h2 class="h1Font">Admin Acces</h2>
    				<form action="admin.php" method="post">
    			<p class="h1Font">Name : <input type="text" name="ident" ></input> </p>
    			<p class="h1Font">Pass : <input type="password" name="pass" ></input>  </p>
    			<p> <input type="submit" value="Valider" ></input> </p>
    				</form>
    			</br>
    		</div>
    <?php
    }
    ?>
    		</div>
    	<body>
    </html>
    Le message d'erreur de header apparait sur la page 10.
    Désoler, et encore merci pour votre aide.

  15. #15
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 494
    Par défaut
    Vire la première ligne vide

  16. #16
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 94
    Par défaut
    il n'y à aucuns espaces...

    c'est le forum qui crée cette ligne vide.
    Nan mais de toute façon c'est pas grave, je vais bien regarder la doc pour les header, je vais trouver cette faille tout seul.
    Au pire si après toute mes recherches je n'y arrive toujours pas, je vous posterai mon .php



    @++ Et merci pour l'aide.

  17. #17
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 494
    Par défaut
    Je t'ai pourtant donné la réponse
    ob_start et ob_end_flush...

  18. #18
    Membre Expert

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 127
    Par défaut
    C'est quand même pas compliqué de nous donner le fichier qui correspond à l'erreur ...

    Tu parles maintenant d'une erreur page 10 ...

  19. #19
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 94
    Par défaut
    Bon, j'ai trouvé l'erreur...

    Effectivement je comprend pourquoi je tournais en rond

    Mon éditeur notepad++ donnais par défaut un encodage UTF-8 BOM.
    Ce qui provoquais un espace vide automatique avant le <?php ...

    Du coup j'ai changer ça en UTF-8 Standard et hop !
    Ca fonctionne nickel !

    Dis donc, j'aurais vraiment pu chercher des plombes
    Merci de votre aide et désoler pour la perte de temps
    ciao.

  20. #20
    Membre Expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Par défaut
    C'est un coup plus ou moins classique, il y a déjà eu des fils avec cette conclusion.
    Je pense que ce serait pas mal à ajouter dans la FAQ sur ce lien.

    http://php.developpez.com/faq/?page=...s_already_sent

    A suivre...

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 27/11/2006, 19h00

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