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 :

variable de session testée à false alors que true est prévu


Sujet :

Langage PHP

  1. #21
    Invité
    Invité(e)
    Par défaut
    Alors apprend à lire.

    Dans le-dit code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     // Si l'utilisateur n'utilise pas windows, ou si le navigateur n'est pas chrome ni IE, échoue

  2. #22
    Membre éclairé Avatar de Geoffrey74
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Isère (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2007
    Messages : 515
    Points : 760
    Points
    760
    Par défaut
    Salut,

    dans le post que tu cite, tu as cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if ($browser['platform'] != 'windows' OR ( $browser['name'] != 'Google Chrome' AND $browser['name'] != 'Internet Explorer')) {
            return false;
        }
    Donc, pour Firefiox, tu aura toujours false...

  3. #23
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 385
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut
    Ca, Jérôme, je l'avais bien vu et c'est pourquoi avec Firefox, le retour de la fonction connexionWindows est vide (comme dit Geoffrey74, toujours false) mais je fais le test (ligne 11 de la fonction html2-milieu dans le post #16) et c'est pourquoi si la valeur est vide (ou false), on affiche le formulaire d'authentification et c'est justement la variable de session $_SESSION['auth'] positionnée par l'action de ce formulaire qui reste à false quand ça devrait être true.
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  4. #24
    Invité
    Invité(e)
    Par défaut
    Remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ((isset($SESA))&&!(empty($SESA))) {
    Par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ( empty($SESA) ) { // vide ou false ou 0.....

    Tes codes sont tellement biscornus qu'une chatte n'y retrouverait pas ses poussins...

  5. #25
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 385
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut
    Ca serait pas plutôt une poule qui retrouverait pas ses poussins ? Quoique si la chatte est née à Tchernobyl ou à Fukushima, tout peut arriver...

    Voici mon code actuel mais le problème est encore là

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $_SESSION['user']=$SESA=connexionWindows();
    if (!(empty($SESA))) {//variable non vide donc le SSO a fonctionné
    		$_SESSION["auth"]=true; 
                    // traitement d'un cas particulier
    		}
    }
    if ( ! $_SESSION["auth"]) 
    	{//formulaire d'authentification
             ...
            }

    et qu'est-ce que tu trouves biscornu ? (avec Firefox, on a bien l'affichage du formulaire d'authentification et pas avec les 2 autres navigateurs, donc le code ci-dessus semble fonctionner)
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  6. #26
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par laurentSc Voir le message
    (avec Firefox, on a bien l'affichage du formulaire d'authentification et pas avec les 2 autres navigateurs, donc le code ci-dessus semble fonctionner)
    ALORS QU'EST-CE QUI NE VA PAS ????

    ON NE COMPREND RIEN avec tes POINTS DE SUSPENSIONS PARTOUT où c'est important de COMPRENDRE !!!

  7. #27
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 385
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    pas dispo pour répondre avant

    Ce qui ne va pas, c'est dans l'action du formulaire : même si les identifiants sont corrects et que la variable $auth est positionnée à true, la variable de session $_SESSION['auth'] reste à false.

    Voici mon code (sans aucun point de suspension) :

    html2-milieu.php :
    Code php : 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
    38
    include "fct_SESA.php";
    $_SESSION["auth"]=false;
    $_SESSION['user']=$SESA=connexionWindows(); 
    if (!(empty($SESA))) {
    		$_SESSION["auth"]=true; 
    		$_usr=$_pwd=$SESA;
    }
    if ( ! $_SESSION["auth"]) 
    	{
    		$_SESSION['eff']=0; //this initialization is placed here because it has to be done only at the beginning
    		?>
     
     
    		<main>
    		  <section>
    			<form id="authform" action="<?php echo SITE_URL_HTTP;?>/page/authenticate.php" method="post">
    			<p>
    			<a href="http://www.schneider-electric.com/b2b/en/campaign/life-is-on/life-is-on.jsp" target="_blank">
    			<img src="<?php echo SITE_URL_HTTP; ?>/images/logo/LifeIsOn1x30_transparent.jpg" alt=''/></a><span class="dblock"></span>
    			<?php echo $str[323]; ?>  <h2><i class="fa fa-user-o" aria-hidden="true"></i>
    		 LOGIN</h2>
    			  <p>
    				<label for="login2">Username</label>
    				<input id="login2" type="text" size="30" value="" name="login2" />
    			  </p>
    			  <p>
    				<label for="pwd2">Password</label>
    				<input class="btsubmit" id="pwd2" type="password" size="30" value="" name="pwd2" />
    			  </p>
    			  <p>
    				<input type="submit" value="Submit" name="goAuth" />
    			  </p>
    			</form>
    		  </section>
     
    		  <br />
     
    		</main>

    authenticate.php :
    Code php : 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
    38
    39
    40
    <?php // en tout début de fichier (RIEN AVANT)session_start();
     
     	require_once(dirname(__DIR__).'\_includes\html0-topPHP.php'); // INIT + FONCTIONS et autres config en PHP
     
     	require_once(dirname(__DIR__).'/_includes/html1-debut.php'); // contient le DEBUT du code HTML, le contenu de <head> SANS la balise </head>
     
    	require_once(dirname(__DIR__).'/_includes/html2-milieu.php'); // contient la balise </head>et le DEBUT du <body>, A PARTIR DE la balise </head>
     
     
     	function authentification()
    { 
    global $bdd;
     
    		$auth=false;
     
    		$sql = 'select * from `users`';
     
    		$qid = $bdd->prepare($sql);
    		$qid->execute();
    		while ($row=$qid->fetch(PDO::FETCH_ASSOC) ) {
    				$usr = $row['user']; 
    				$password = $row['password'];  
    				if (($usr == $_POST['login2']) && ($password == $_POST['pwd2'])) {
    					$auth = true;
     
    					$_SESSION['user']=$usr;
    					$_SESSION['pass']=$password;					
    				}
    		  }
    	$_SESSION['auth']=$auth;
     
     return $auth;
     
    }
     $auth=authentification();
     header ("Location: $_SERVER[HTTP_REFERER]" );
     exit(); 
     
     require_once(dirname(__DIR__).'/_includes/html3-fin.php'); // contient la FIN du code HTML, jusqu'au </body></html> 
     session_write_close();
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  8. #28
    Membre éclairé Avatar de Geoffrey74
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Isère (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2007
    Messages : 515
    Points : 760
    Points
    760
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     $auth=authentification();
     header ("Location: $_SERVER[HTTP_REFERER]" );
     exit(); 
     
     require_once(dirname(__DIR__).'/_includes/html3-fin.php'); // contient la FIN du code HTML, jusqu'au </body></html> 
     session_write_close();
    tu fais un exit() et tu exécute du code ensuite.
    Le code exécuté après exit() ne sera jamais exécuté.


    Essai ça, a tout hasard :

    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
    38
    <?php // en tout début de fichier (RIEN AVANT)session_start();
     
     	require_once(dirname(__DIR__).'\_includes\html0-topPHP.php'); // INIT + FONCTIONS et autres config en PHP
     
     	require_once(dirname(__DIR__).'/_includes/html1-debut.php'); // contient le DEBUT du code HTML, le contenu de <head> SANS la balise </head>
     
    	require_once(dirname(__DIR__).'/_includes/html2-milieu.php'); // contient la balise </head>et le DEBUT du <body>, A PARTIR DE la balise </head>
     
     
     	function authentification()
    { 
    global $bdd;
     
    		$auth=false;
     
    		$sql = 'select * from `users`';
     
    		$qid = $bdd->prepare($sql);
    		$qid->execute();
    		while ($row=$qid->fetch(PDO::FETCH_ASSOC) ) {
    				$usr = $row['user']; 
    				$password = $row['password'];  
    				if (($usr == $_POST['login2']) && ($password == $_POST['pwd2'])) {
    					$auth = true;
     
    					$_SESSION['user']=$usr;
    					$_SESSION['pass']=$password;					
    				}
    		  } 
     return $auth;
     
    }
    $_SESSION['auth'] = authentification();
     header ("Location: $_SERVER[HTTP_REFERER]" );
     
     require_once(dirname(__DIR__).'/_includes/html3-fin.php'); // contient la FIN du code HTML, jusqu'au </body></html> 
     session_write_close(); 
    exit();

  9. #29
    Invité
    Invité(e)
    Par défaut
    Bonjour Laurent,

    tu es bien brave, mais... tes bouts de code sont éparpillés dans ton fatras d'includes et autres rajouts...

    Question 1 : à quoi bon utiliser une fonction authentification(), là on un traitement direct (sans fonction) suffirait ?

    Question 2 : as-tu vérifié que cette fonction TRAITE correctement les données et renvoie le bon résultat ?
    • faire un echo de $_POST notamment
    • et plus largement : FAIRE UN DEBOGAGE DE BASE ??


    Question 3 : Mais qu'est-ce que c'est que cette fonction ?????
    • tu fais une requête de TOUS les users
    • tu parcours pour chercher celui avec les bons login et pwd...

    Tu ne sais donc pas faire une requête avec une clause WHERE ???

  10. #30
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 385
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    j'ai répondu aux 3 points (je pense) ; évidemment pour pouvoir afficher le résultat de l'authentification, je commente la redirection ; donc voici mon code (avec aussi le contenu des includes) :

    authenticate.php :

    Code php : 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
    <?php // en tout début de fichier (RIEN AVANT)session_start();
     
     	require_once(dirname(__DIR__).'\_includes\html0-topPHP.php'); // INIT + FONCTIONS et autres config en PHP
     
     	require_once(dirname(__DIR__).'/_includes/html1-debut.php'); // contient le DEBUT du code HTML, le contenu de <head> SANS la balise </head>
     
    	require_once(dirname(__DIR__).'/_includes/html2-milieu.php'); // contient la balise </head>et le DEBUT du <body>, A PARTIR DE la balise </head>
     
    	global $bdd;
     
    	$auth=false;
     
    	$sql = 'select COUNT(*) AS compte from `users` where user="'.$_POST['login2'].'" AND password="'.$_POST['pwd2'].'"';
    	$qid = $bdd->query($sql);
    	$row=$qid->fetch(PDO::FETCH_OBJ);
    	$nrows=$row->compte;
    	if ($nrows) {
    		$auth=true;
    		$_SESSION['user']=$_POST['login2'];
    		$_SESSION['pass']=$_POST['pwd2'];
    	}
     
     
    	echo "auth=".$auth."debug_authenticate l.24<br/>";
    	$_SESSION['auth']=$auth;$_SESSION['auth']=true;
            echo "26 authenticate _SERVER[HTTP_REFERER]=".$_SERVER[HTTP_REFERER]."<br/>";
            var_dump($_POST);var_dump($_SESSION);
            header ("Location: $_SERVER[HTTP_REFERER]" );
     
     
            require_once(dirname(__DIR__).'/_includes/html3-fin.php'); // contient la FIN du code HTML, jusqu'au </body></html> 
            session_write_close();
     
            exit();

    html0-topPHP.php :
    Code php : 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
    <?php 
    session_start();
     
    error_reporting(E_ALL ^ (E_NOTICE|E_WARNING|E_DEPRECATED));
     
     
    header('Content-type: text/html; charset=UTF-8');
     
    include_once dirname(__DIR__)."\config\config.php"; 
    include_once dirname(__DIR__)."\connect_mysql.php";
    include_once dirname(__DIR__)."\connect_mysql_planning.php";
     
    /* language management */ 
    if ( empty($_SESSION['lang']) ) $_SESSION['lang'] = 'fr'; // par défaut
    $lang = (isset($_GET['lang'])) ? trim($_GET['lang']) : $_SESSION['lang'];
    if ( !empty($lang) ) $_SESSION['lang'] = $lang; // to put in SESSION
     
    include_once dirname(__DIR__)."\language.".$_SESSION['lang'].".inc.php";//include of language file
    ?>

    config.php :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    // -----------------------------------------------------------
    // CONFIGURATION : 
    // -----------------------------------------------------------
    if(!defined('PATHeis')) define('PATHeis','eis2');
    if(!defined('PATH')) define('PATH','eis2');
    if(!defined('SITE_URL_WWW_LOCAL'))	define('SITE_URL_WWW_LOCAL',	'localhost:8081/eis2/eis');  // en TEST LOCAL, A REMPLACER PAR...
    if(!defined('SITE_URL_WWW_PROD'))	define('SITE_URL_WWW_PROD',	'10.234.40.34/'.PATH); // en PRODUCTION
     
    if( !defined('SITE_URL_WWW')) define('SITE_URL_WWW', isset($_SERVER['SERVER_NAME']) && $_SERVER['SERVER_NAME'] == 'localhost' ? SITE_URL_WWW_LOCAL : SITE_URL_WWW_PROD );
    if( !defined('SITE_URL_HTTP'))	define('SITE_URL_HTTP',	'http://'.SITE_URL_WWW);
    ?>

    connect_mysql.php :
    Code php : 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
    <?php
    include __DIR__.'/config/config.php';
    if(empty($bdd)){
    	include_once (__DIR__.'/new/class_MyPdo.php');
     
    }
    //// connexion
    try{
     
    				$bdd = new MyPdo("support_eis");
      }
    catch(PDOException $e){
    				echo "argggggggggggggg".$e->getMessage();
    				return(FALSE);
    			}		
    ?>

    class_MyPdo.php :
    Code php : 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
    <?php
    error_reporting(E_ALL ^ E_DEPRECATED ^ E_NOTICE);
    ini_set('display_errors','1'); 
     
     
     
    // MyPDO
     // ls : la classe MyPdo hérite de la classe PDO (extends)
    class MyPdo extends PDO {
     
    	protected $DB_NAME;
     
    	protected $HOST = "localhost";
     
    	protected $USER ="root";
     
    	protected $PASS ="";
     
     
     
    // ls : le constructeur de MyPdo appelle le constructeur de PDO en lui passant ses paramètres	
    	function __construct($db_name) {	
    	/* ls : la variable $pdo_options, ça date de ma formation de 2012 */ 
    	$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
    	$pdo_options[PDO::ATTR_EMULATE_PREPARES] = false;//important sur les configs récentes
    	$pdo_options[PDO::ATTR_DEFAULT_FETCH_MODE] = PDO::FETCH_OBJ;//pour le mode objet
    	$pdo_options[PDO::MYSQL_ATTR_INIT_COMMAND] = "SET NAMES utf8";//pour l'utf-8
     
    	$this->DB_NAME = $db_name;
    	parent::__construct('mysql:host=' . $this->HOST . ';dbname=' . $this->DB_NAME,$this->USER,$this->PASS,$pdo_options);
     
    	}
     
    }
    ?>

    html1-debut.php :
    Code php : 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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    <html>
    <head>
       <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
       <meta http-equiv="X-UA-Compatible" content="IE=9" />
       <title> EIS System Support Site</title>
        <link rel="stylesheet" href="http://fontawesome.io/assets/font-awesome/css/font-awesome.css"> 
       <link href="<?php echo SITE_URL_HTTP; ?>/css/style.css" rel="stylesheet"/>
       <link href="<?php echo SITE_URL_HTTP; ?>/css/style-menu2.css" rel="stylesheet"/>
       <link href="<?php echo SITE_URL_HTTP; ?>/css/style-menu_images.css" rel="stylesheet"/>  
     
     <!--- line for the planning -->
       <link rel="stylesheet" type="text/css" href="<?php echo SITE_URL_HTTP; ?>/calendar-pdo/stylesheets/calendar.css" media="screen" />
       <?php if (isset($_GET['eff'])) { ?>
    <style type="text/css">.cacher { display: none; }
    </style>
     <?php 
    $_SESSION['eff']=1;
    }?>
     
    <!-- partie pour add_event.php -->
    	<link rel="stylesheet" href="http://code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
    	<script src="http://code.jquery.com/jquery-1.10.2.js"></script>
    	<script src="http://code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
    	<link rel="stylesheet" href="/resources/demos/style.css">
    	<script>
    $(function() {
    	$('#datepickerd').datepicker({ 
    		dateFormat: 'dd-mm-yy', firstDay:1, minDate: new Date(),
    		onSelect: function() {
    			if( $("#datepickerf").val() == '' )
    			{
    				$('#datepickerf').val( $(this).val() );
    			}
    		},
     
          changeMonth: true,
     
          changeYear: true		
    	});
     
    	$('#datepickerf').datepicker({ 
    		dateFormat: 'dd-mm-yy', firstDay:1, minDate: new Date(),
     
          changeMonth: true,
     
          changeYear: true
    	});
     
    	$('#datepickeros').datepicker({ 
    		dateFormat: 'dd-mm-yy', firstDay:1, minDate: new Date(),
     
          changeMonth: true,
     
          changeYear: true
    	});
    });
    	</script>

    html2-milieu.php :
    Code php : 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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    </head>
    <body>
    <!-- debut body html2-milieu 3 -->
    <?php
    //echo "template 4 sessionauth=".$_SESSION["auth"]."<br/>";
    if ( ! $_SESSION["auth"]) 
    	{
    		$_SESSION['eff']=0; //this initialization is placed here because it has to be done only at the beginning
    		?>
     
     
    		<main>
    		  <section>
    			<form id="authform" action="<?php echo SITE_URL_HTTP;?>/page/authenticate.php" method="post">
    			<p>
    			<a href="http://www.schneider-electric.com/b2b/en/campaign/life-is-on/life-is-on.jsp" target="_blank">
    			<img src="<?php echo SITE_URL_HTTP; ?>/images/logo/LifeIsOn1x30_transparent.jpg" alt=''/></a><span class="dblock"></span>
    			<?php echo $str[323]; ?>  <h2><i class="fa fa-user-o" aria-hidden="true"></i>
    		 LOGIN</h2>
    			  <p>
    				<label for="login2">Username</label>
    				<input id="login2" type="text" size="30" value="" name="login2" />
    			  </p>
    			  <p>
    				<label for="pwd2">Password</label>
    				<input class="btsubmit" id="pwd2" type="password" size="30" value="" name="pwd2" />
    			  </p>
    			  <p>
    				<input type="submit" value="Submit" name="goAuth" />
    			  </p>
    			</form>
    		  </section>
     
    		  <br />
     
    		</main>
     
     
    	<?php	
    	}
     
    else { /* if $_SESSION["auth"] is true --*/
     
    	include dirname(__DIR__)."\\language.".$lang.".inc.php"; 
    	include dirname(__DIR__)."\\header.inc.php";
    	include dirname(__DIR__)."\\menupage.php";
     ?>
    <?php }	// ICI, ON MET LE CONTENU SPECIFIQUE A LA PAGE (HTML, PHP,...) ?>

    html3-fin.php :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    if (  $_SESSION["auth"])
    	include dirname(__DIR__)."\\footer.inc.php";
    if ((isset($_SERVER['SERVER_NAME'])) && ($_SERVER['SERVER_NAME'] == 'localhost' ))
    	{
    ?>
    	<br/><br/><a href="<?php echo SITE_URL_HTTP;?>/annul_auth.php"><?php echo $str[118];?></a>
    <?php } ?>	
    </body></html>
    Evidemment, ça fait beaucoup de code...Est-ce que tu vois le problème ?
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  11. #31
    Invité
    Invité(e)
    Par défaut
    Quoi qu'il en soit, tu ne peux pas mettre un header() après html1-debut.php, puisqu'il contient du HTML.
    Le traitement doit donc se faire avant cet include.


    Tu fais les choses contre tout bon sens et logique.
    Normal que tu n'aies pas les résultats espérés.


    Autre problème : il est où, le résultat de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var_dump($_POST);var_dump($_SESSION);
    ?

  12. #32
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 385
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut
    OK, j'ai déplacé le header avant le html mais le problème reste

    authenticate.php :
    Code php : 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 // en tout début de fichier (RIEN AVANT)session_start();
     
     	require_once(dirname(__DIR__).'\_includes\html0-topPHP.php'); // INIT + FONCTIONS et autres config en PHP
     
    	global $bdd;
     
    	$auth=false;
     
    	$sql = 'select COUNT(*) AS compte from `users` where (user="'.$_POST['login2'].'" AND password="'.$_POST['pwd2'].'")';
    	$qid = $bdd->query($sql);
    	$row=$qid->fetch(PDO::FETCH_OBJ);
    	$nrows=$row->compte;
    	if ($nrows) {
    		$auth=true;
    		$_SESSION['user']=$_POST['login2'];
    		$_SESSION['pass']=$_POST['pwd2'];
    	}
     
     
    	echo "auth=".$auth."debug_authenticate l.20<br/>";
    	$_SESSION['auth']=$auth;$_SESSION['auth']=true;
    	echo "22 authenticate _SERVER[HTTP_REFERER]=".$_SERVER[HTTP_REFERER]."<br/>";
    	var_dump($_POST);var_dump($_SESSION);
    	header ("Location: $_SERVER[HTTP_REFERER]" );	 //header so before html code inside html1-debut.php
     
     	require_once(dirname(__DIR__).'/_includes/html1-debut.php'); // contient le DEBUT du code HTML, le contenu de <head> SANS la balise </head>
     
    	require_once(dirname(__DIR__).'/_includes/html2-milieu.php'); // contient la balise </head>et le DEBUT du <body>, A PARTIR DE la balise </head>
     
     
     
     
     require_once(dirname(__DIR__).'/_includes/html3-fin.php'); // contient la FIN du code HTML, jusqu'au </body></html> 
     session_write_close();
     
     exit();
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  13. #33
    Invité
    Invité(e)
    Par défaut
    Force est de constater que tu ne fais AUCUN effort pour le résoudre...

    Citation Envoyé par jreaux62 Voir le message
    il est où, le résultat de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var_dump($_POST);var_dump($_SESSION);
    ?

  14. #34
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 385
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut
    Je ne crois pas ce soit un manque d'effort : ta question (fin du post 31), je viens de la découvrir !

    Voici la réponse (et aussi les 2 echo placés avant) :

    auth=1debug_authenticate l.33
    35 authenticate _SERVER[HTTP_REFERER]=http://10.234.40.34/eis2/page/authenticate.php

    array (size=3)
    'login2' => string 'SESA27384' (length=9)
    'pwd2' => string 'SESA27384' (length=9)
    'goAuth' => string 'Submit' (length=6)

    array (size=6)
    'lang' => string 'fr' (length=2)
    'str' => string 'a:320:{i:1;s:12:"INTRANET P&A";i:2;s:7:"Accueil";i:3;s:14:"Administration";i:4;s:10:"Envoi mail";i:5;s:9:"Français";i:6;s:7:"English";i:340;s:14:"Nous contacter";i:7;s:35:"Impossible d'exécuter la requête.";i:8;s:37:"Aucun élément trouvé dans la base.";i:10;s:41:"Connexion Impossible sur le Serveur MySQL";i:11;s:36:"Sélection de la Base SQL Impossible";i:12;s:46:"Impossible d'effectuer la requete d'Effacement";i:13;s:40:"Impossible d'obtenir le nombre de lignes";i:14;s:36:"Aucune machine n'a été tr'... (length=11261)
    'auth' => boolean true
    'user' => string 'SESA27384' (length=9)
    'eff' => int 0
    'pass' => string 'SESA27384' (length=9)
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  15. #35
    Invité
    Invité(e)
    Par défaut
    Bon. OK.
    Donc ??

    Tu en conclus quoi ?
    Ça correspond ou pas aux données attendues ??

    Sinon, mets des écho, var_dump à d'autres endroits de ton code pour savoir où ça foire...

    C'est ça, le débogage de base !

  16. #36
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 385
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut
    Je viens de faire un nouveau test, et c'est vraiment très curieux :
    j'ai modifié authenticate.php pour faire une redirection vers le fichier test.php que j'ai créé :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?php 
    session_start();
    var_dump($_SESSION);
    ?>

    et le résultat de ce var_dump est :
    array (size=6)
    'lang' => string 'fr' (length=2)
    'str' => string 'a:320:{i:1;s:12:"INTRANET P&A";i:2;s:7:"Accueil";i:3;s:14:"Administration";i:4;s:10:"Envoi mail";i:5;s:9:"Français";i:6;s:7:"English";i:340;s:14:"Nous contacter";i:7;s:35:"Impossible d'exécuter la requête.";i:8;s:37:"Aucun élément trouvé dans la base.";i:10;s:41:"Connexion Impossible sur le Serveur MySQL";i:11;s:36:"Sélection de la Base SQL Impossible";i:12;s:46:"Impossible d'effectuer la requete d'Effacement";i:13;s:40:"Impossible d'obtenir le nombre de lignes";i:14;s:36:"Aucune machine n'a été tr'... (length=11261)
    'auth' => boolean false
    'user' => boolean false
    'eff' => int 0
    'pass' => string 'SESA27384' (length=9)
    donc auth et user sont faux (et user est donné comme un booléen alors que c'est une string...)
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  17. #37
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    mets des écho, var_dump à d'autres endroits de ton code pour savoir où ça foire...
    A TOI D'EN TIRER LES CONCLUSIONS.
    On ne peut pas le faire à ta place.

  18. #38
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 385
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut
    Bonsoir,
    j'y ai passé la journée, mais j'ai fini par trouver : avant, dans html2-milieu.php, je faisais l'authentification systématiquement, et maintenant seulement si elle n'a pas déjà été faite :

    Code php : 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
    include "fct_SESA.php";
    if (!empty($_SESSION['user'])) {
    	$SESA=$_SESSION['user'];
    	$_SESSION["auth"]=true;
    }
    else {
    	$_SESSION["auth"]=false;
    	$_SESSION['user']=$SESA=connexionWindows(); 
    	if (!(empty($SESA))) {
    			$_SESSION["auth"]=true; 
    			}
    	}
    }
    if ( ! $_SESSION["auth"]) 
    	{
    		// formulaire d'authentification	
    	}
     
    else { /* if $_SESSION["auth"] is true --*/
     
    	include dirname(__DIR__)."\\language.".$lang.".inc.php"; 
    	include dirname(__DIR__)."\\header.inc.php";
    	include dirname(__DIR__)."\\menupage.php";
     }
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. File.exists() est false, alors que je m'attends à ce qu'elle soit true
    Par domxaline dans le forum Débuter avec Java
    Réponses: 5
    Dernier message: 19/01/2014, 13h20
  2. [Débutant]Test lancé alors que je ne veux pas
    Par youkoun dans le forum Maven
    Réponses: 2
    Dernier message: 20/12/2010, 11h55
  3. Réponses: 4
    Dernier message: 29/05/2010, 00h22
  4. Réponses: 4
    Dernier message: 17/09/2008, 13h05
  5. Réponses: 7
    Dernier message: 30/03/2007, 14h58

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