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 :

HEADER is not working


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 252
    Points : 85
    Points
    85
    Par défaut HEADER is not working
    Bonjour a tous,

    je souhaite me connecte a un page loggedin.php apres que je me sois connecte en utilisant mon address email et mon mot de passe.
    j'ecris pour cela le code suiavnt:

    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
    <?php
    if (isset($_POST['submitted'])){
    	require_once('includes/login_functions.inc.php');
    	require_once('../PHP-TESTS/mysqli_connect.php');
    	list($check, $data)=check_login($dbc, $_POST['email'], $_POST['pass']);
    	if ($check){
    		session_start();
    		$_SESSION['user_id']=$data['user_id'];
    		$_SESSION['first_name']=$data['first_name'];
    		$url=absolute_url('loggedin.php');
    		header("Location: $url");
    		exit();
    	} else {
    		$errors=$data;
    	}
    	mysqli_close($dbc);
    }
    include ('includes/login_page.inc.php');
    La page loggedin.php est toute simple, je fais juste un test:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    $page_title='Logged In!';
    include('includes/header.html');
    echo "SALUT";
    include ('includes/footer.html');
    ?>
    mais voila, lorsque je me connecte (voir le premier fichier attache), au lieu d'etre redirige vers la page loggedin.php, je suis redirige vers une autre page (voir deuxieme fichier attache).

    Qu'est ce qui se passe?
    Est ce que je fais une erreur dans l'utilisation de la fonction Header?
    Merci

  2. #2
    Membre éprouvé Avatar de sharrascript
    Homme Profil pro
    Développeur Web indépendant
    Inscrit en
    Avril 2007
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web indépendant

    Informations forums :
    Inscription : Avril 2007
    Messages : 678
    Points : 1 042
    Points
    1 042
    Par défaut
    Bonjour,

    j'ai pas trifouiller dans ton code, mais apriori c'est surement l'action de ton form qui te dirige vers une page login.php, non ? Et cette dernière n'existe pas, et ce, sans passer dans ton traitement.
    LudiKreation Pour un web ludique et son Blog | CapRumbo pour un peu d'évasion | ChaOdisiaque Club Passion Rôliste |SierrElben le Jeu de rôle

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 252
    Points : 85
    Points
    85
    Par défaut
    Citation Envoyé par sharrascript Voir le message
    Bonjour,

    j'ai pas trifouiller dans ton code, mais apriori c'est surement l'action de ton form qui te dirige vers une page login.php, non ? Et cette dernière n'existe pas, et ce, sans passer dans ton traitement.
    Si la page login.php existe. mais le formulaire est dans un autre fichier php que j'inclus dans la page login.php.

    le code php affichant le formulaire est login_page.inc.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
    <?php
    $page_title='Login';
    include('includes/header.html');
    if (!empty($errors)) {
    	echo '<h1> Error !</h1>
    	<p class = "error"> The following error(s) occured : <br />';
    	foreach ($errors as $msg) {
    		echo " - $msg <br /> \n";
    	}
    	echo '</p><p> Please try again. </p>';
    }
    ?>
    <h1>Login</h1>
    <form action="login.php" method="post">
    	<p>Email Address: <input type="text" name="email" size="20" maxlength="80" value="<?php if (isset($_POST['email'])) echo $_POST['email']; ?>"  /> </p>
    	<p>Password: <input type="password" name="pass" size="10" maxlength="20" /></p>
    	<p><input type="submit" name="submit" value="Login" /></p>
    	<input type="hidden" name="submitted" value="TRUE" />
    </form>
    <?php
    include ('includes/footer.html');
    ?>
    jai 5 pages:
    login_page.inc.php -- affiche le formulaire ou les erreurs
    login_functions.inc.php -- verifie que l'user existe dans la BD
    login.php -- connexion du user
    loggedin.php -- Un user qui vient de se connecter est redirige vers cette page. la page en elle mm signale que l'utilisateur est bien connecte en affichant son nom
    logout.php -- deconnexion.

    donc toutes mes pages existent bien.

    Merci

  4. #4
    Membre éprouvé Avatar de sharrascript
    Homme Profil pro
    Développeur Web indépendant
    Inscrit en
    Avril 2007
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web indépendant

    Informations forums :
    Inscription : Avril 2007
    Messages : 678
    Points : 1 042
    Points
    1 042
    Par défaut
    Donc oui, ton formulaire envoi bien les données sur login.php, mais pas sur loggedin.php.

    Qui a t il dans login.php ??
    LudiKreation Pour un web ludique et son Blog | CapRumbo pour un peu d'évasion | ChaOdisiaque Club Passion Rôliste |SierrElben le Jeu de rôle

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 71
    Points : 76
    Points
    76
    Par défaut
    salut,
    es-tu sure que ton programme passe bien par header("Location: $url");
    fait genre echo 'coucou';exit; devant ton header et si tu vois le texte coucou ben c'est bon^^

    Ensuite a tu tester ta fonction absolute_url?

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 252
    Points : 85
    Points
    85
    Par défaut
    Citation Envoyé par sharrascript Voir le message
    Donc oui, ton formulaire envoi bien les données sur login.php, mais pas sur loggedin.php.

    Qui a t il dans login.php ??
    login.php cree en fait les sessions une fois que j'ai verifie que l'email et le mot de passe rentre par l'utilisateur existe bien. et ensuite l'utilisateur est redirige vers loggedin.php.

  7. #7
    Membre éprouvé Avatar de sharrascript
    Homme Profil pro
    Développeur Web indépendant
    Inscrit en
    Avril 2007
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web indépendant

    Informations forums :
    Inscription : Avril 2007
    Messages : 678
    Points : 1 042
    Points
    1 042
    Par défaut
    Dans ce cas tu perd toutes tes données $_POST.
    LudiKreation Pour un web ludique et son Blog | CapRumbo pour un peu d'évasion | ChaOdisiaque Club Passion Rôliste |SierrElben le Jeu de rôle

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 252
    Points : 85
    Points
    85
    Par défaut
    Citation Envoyé par sharrascript Voir le message
    Dans ce cas tu perd toutes tes données $_POST.
    pourquoi? et en plus je ne les utilise plus. Une fois que l'utilisateur rentre son email et password, je verifie si ils sont dans la BD et ensuite je cree mes sessions. je n'utilise plus la table $_POST.

    Merci,
    Billyrose

  9. #9
    Membre éprouvé Avatar de sharrascript
    Homme Profil pro
    Développeur Web indépendant
    Inscrit en
    Avril 2007
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web indépendant

    Informations forums :
    Inscription : Avril 2007
    Messages : 678
    Points : 1 042
    Points
    1 042
    Par défaut
    Je crois que je n'ai pas compris alors^^

    Qu'elle est la page avec ce code ?

    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
    <?php
    if (isset($_POST['submitted'])){
    	require_once('includes/login_functions.inc.php');
    	require_once('../PHP-TESTS/mysqli_connect.php');
    	list($check, $data)=check_login($dbc, $_POST['email'], $_POST['pass']);
    	if ($check){
    		session_start();
    		$_SESSION['user_id']=$data['user_id'];
    		$_SESSION['first_name']=$data['first_name'];
    		$url=absolute_url('loggedin.php');
    		header("Location: $url");
    		exit();
    	} else {
    		$errors=$data;
    	}
    	mysqli_close($dbc);
    }
    include ('includes/login_page.inc.php');
    LudiKreation Pour un web ludique et son Blog | CapRumbo pour un peu d'évasion | ChaOdisiaque Club Passion Rôliste |SierrElben le Jeu de rôle

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 252
    Points : 85
    Points
    85
    Par défaut
    la page avec ce code c'est login.php

  11. #11
    Membre éprouvé Avatar de sharrascript
    Homme Profil pro
    Développeur Web indépendant
    Inscrit en
    Avril 2007
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web indépendant

    Informations forums :
    Inscription : Avril 2007
    Messages : 678
    Points : 1 042
    Points
    1 042
    Par défaut
    Et tu es sûr que login.php se trouve à la racine du dossier PHP-TESTS ??
    LudiKreation Pour un web ludique et son Blog | CapRumbo pour un peu d'évasion | ChaOdisiaque Club Passion Rôliste |SierrElben le Jeu de rôle

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 252
    Points : 85
    Points
    85
    Par défaut
    Citation Envoyé par lunarnet76 Voir le message
    salut,
    es-tu sure que ton programme passe bien par header("Location: $url");
    fait genre echo 'coucou';exit; devant ton header et si tu vois le texte coucou ben c'est bon^^

    Ensuite a tu tester ta fonction absolute_url?
    Ok je vais le faire.
    Merci

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 252
    Points : 85
    Points
    85
    Par défaut
    Citation Envoyé par sharrascript Voir le message
    Et tu es sûr que login.php se trouve à la racine du dossier PHP-TESTS ??
    Oui j'ai bien verifie. Je sais vraiment pas ce qui se passe.

  14. #14
    Membre éprouvé Avatar de sharrascript
    Homme Profil pro
    Développeur Web indépendant
    Inscrit en
    Avril 2007
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web indépendant

    Informations forums :
    Inscription : Avril 2007
    Messages : 678
    Points : 1 042
    Points
    1 042
    Par défaut
    Pourtant le message de ton image est clair :

    http://www.developpez.net/forums/att...ng/result.jpg/

    la page login.php n'est pas trouvée sur http://localhost/PHP-TESTS/login.php

    Donc ton form ne renvoi pas sur la bonne page et donc ne passe pas le traitement...

    EDIT : Bizarre, ton serveur local est activé ??
    LudiKreation Pour un web ludique et son Blog | CapRumbo pour un peu d'évasion | ChaOdisiaque Club Passion Rôliste |SierrElben le Jeu de rôle

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 252
    Points : 85
    Points
    85
    Par défaut
    j'ai fait le test demande par lunarnet76.
    Eh ben voila le resultat:

    Notice: Undefined index: HTTP_POST in D:\wamp\www\PHP-TESTS\includes\login_functions.inc.php on line 3
    coucou

  16. #16
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 252
    Points : 85
    Points
    85
    Par défaut
    Citation Envoyé par sharrascript Voir le message
    Pourtant le message de ton image est clair :

    http://www.developpez.net/forums/att...ng/result.jpg/

    la page login.php n'est pas trouvée sur http://localhost/PHP-TESTS/login.php

    Donc ton form ne renvoi pas sur la bonne page et donc ne passe pas le traitement...

    EDIT : Bizarre, ton serveur local est activé ??
    j'ai arrete et redemarre mon serveur locam juste au cas ou.
    Qund j'approche ma souris de WAMPSERVER je vois bien "server online"

  17. #17
    Membre éprouvé Avatar de sharrascript
    Homme Profil pro
    Développeur Web indépendant
    Inscrit en
    Avril 2007
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web indépendant

    Informations forums :
    Inscription : Avril 2007
    Messages : 678
    Points : 1 042
    Points
    1 042
    Par défaut
    oui en effet, il fonctionne, car il donne des erreurs php.

    Pourrais tu faire voir le code de ton fichier de fonctions ??
    LudiKreation Pour un web ludique et son Blog | CapRumbo pour un peu d'évasion | ChaOdisiaque Club Passion Rôliste |SierrElben le Jeu de rôle

  18. #18
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 252
    Points : 85
    Points
    85
    Par défaut
    Ok voila la premiere function qui affiche le formulaire ou les erreurs login_page.inc.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
    <?php
    $page_title='Login';
    include('includes/header.html');
    if (!empty($errors)) {
    	echo '<h1> Error !</h1>
    	<p class = "error"> The following error(s) occured : <br />';
    	foreach ($errors as $msg) {
    		echo " - $msg <br /> \n";
    	}
    	echo '</p><p> Please try again. </p>';
    }
    ?>
    <h1>Login</h1>
    <form action="login.php" method="post">
    	<p>Email Address: <input type="text" name="email" size="20" maxlength="80" value="<?php if (isset($_POST['email'])) echo $_POST['email']; ?>"  /> </p>
    	<p>Password: <input type="password" name="pass" size="10" maxlength="20" /></p>
    	<p><input type="submit" name="submit" value="Login" /></p>
    	<input type="hidden" name="submitted" value="TRUE" />
    </form>
    <?php
    include ('includes/footer.html');
    ?>
    et la fonction qui reconstitue l'url et verifie que l'utilisateur qui veut se connecter existe bien.

    c'est le fichier login_functions.inc.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
    37
    <?php
    function absolute_url($page='index1.php'){
    	$url='http://' .$_SERVER['HTTP_POST'] .	
    	dirname($_SERVER['PHP_SELF']);
    	$url=rtrim($url, '/\\');
    	$url .= '/' . $page;
    	return $url;
    }
    function check_login($dbc, $email='', $pass=''){
    	$errors=array();
    	if (empty($email)){
    		$errors[]='You forgot to enter your email address.';
    	} else {
    		$e= mysqli_real_escape_string($dbc,trim ($email));
    	}
    	if (empty ($pass)){
    		$errors[]= 'Your forgot to enter your password.';
    	}
    	else {
    		$p=mysqli_real_escape_string($dbc, trim ($pass));
    	}
     
    	if (empty($errors)){
    		$q="SELECT user_id, first_name FROM users WHERE email='$e' AND pass=SHA1('$p')";
    		$r=@mysqli_query($dbc, $q);
     
    		if (mysqli_num_rows($r) == 1){
    			$row=mysqli_fetch_array($r, MYSQLI_ASSOC);
    			return array(true, $row);
     
    		} else {
    			$errors[]='The email address and password entered do not match those on file.';
    		}
    	}
    	return array(false, $errors);
    }
    ?>
    Je pense au vu du test avec le "coucou" que ma fonction absolute_url() est mal ecrite mais je ne vois pas l'erreur.

    Merci encore pour votre aide

  19. #19
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 252
    Points : 85
    Points
    85
    Par défaut
    j'ai trouve l'erreur. En fait j'ai ecrit HTTP_POST au lieu de HTTP_HOST.

    Merci pour votre aide.
    Billyrose

  20. #20
    Membre éprouvé Avatar de sharrascript
    Homme Profil pro
    Développeur Web indépendant
    Inscrit en
    Avril 2007
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web indépendant

    Informations forums :
    Inscription : Avril 2007
    Messages : 678
    Points : 1 042
    Points
    1 042
    Par défaut
    c'est quoi $_SERVER['HTTP_POST'] ??

    EDIT : devancé^^
    LudiKreation Pour un web ludique et son Blog | CapRumbo pour un peu d'évasion | ChaOdisiaque Club Passion Rôliste |SierrElben le Jeu de rôle

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 10
    Dernier message: 01/02/2011, 18h23
  2. [Humour] Hey ! My BlackBerry is not working !
    Par souviron34 dans le forum Humour Informatique
    Réponses: 0
    Dernier message: 16/01/2011, 17h09
  3. NumberField.setValue not work
    Par Glenn_31 dans le forum GWT et Vaadin
    Réponses: 1
    Dernier message: 23/03/2009, 11h00
  4. CR 11 UFL Java work ou not work?
    Par lyonnaisFR dans le forum SDK
    Réponses: 1
    Dernier message: 29/11/2006, 17h07

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