Forum Programmation.php problème de connexion

Posté par . Licence CC by-sa
Tags : aucun
0
22
nov.
2016

bonjour à tous,

j'ai un problème avec un message d'erreur et ça fait plus de 1 jour que je suis à la recherche.

ci joint mon message

PHP Notice: Undefined index: logout in /var/www/html/xxxxxxx…./index.php on line 10, referer: http://xxxxxx......./index.php/caracteristique?menuItem=menuItem1&currentRootItem=menuItem1

et mon code

<?php
//@ini_set('include_path', '.:/home/fxlacroix/public_html/:' . ini_get('include_path'));
require_once('OleaneBuilder/core/OleaneBuilder.php');
require_once('OleaneBuilder/core/Auth.php');
require_once( '../phplib/Soap/nusoap.php' );
include_once('Net/Ouaf.php');

session_start();

if($_REQUEST['logout']==true){

        session_destroy();

}

$OleaneBuilder = new OleaneBuilder();
$OleaneBuilder->run($_REQUEST);


?>
  • # port salut

    Posté par . Évalué à 4.

    c'est marqué dessus :D

    PHP Notice: Undefined index: logout in /var/www/html/xxxxxxx…./index.php on line 10

    alors ce n'est pas bloquant, c'est une 'notice'

    la ligne 10 de ton code dit :

    if($_REQUEST['logout']==true){

    et le message d'erreur dit qu'il ne trouve pas l'index 'logout' dans ton tableau $_REQUEST

    • [^] # Re: port salut

      Posté par . Évalué à 2.

      Donc pour faire « propre » :

      if(isset($_REQUEST['logout']) AND $_REQUEST['logout']==true){
          session_destroy();
      }
      • [^] # Re: port salut

        Posté par . Évalué à 2.

        Et vu la façon dont PHP transforme les types de données, le ==true est en trop.
        Et vu que la valeur de logout est quant même convertie en booléen, on pourrait aussi bien utiliser

        if(!empty($_REQUEST['logout']))
        • [^] # Re: port salut

          Posté par . Évalué à 2.

          sauf qu'avec cette syntaxe, cela va aussi fonctionner si
          $_REQUEST['logout']=toto :D

          • [^] # Re: port salut

            Posté par . Évalué à 3.

            avec la mienne aussi :-D
            En PHP tout ce qui n'est pas vide ou zéro renvoie true lors d'une conversion en booléen. Même $_REQUEST['logout']='false' renverra true . Sinon on peu aussi utiliser l'opérateur de comparaison ===

        • [^] # Re: port salut

          Posté par . Évalué à 1.

          Bonjour,

          merci pour l'intervention. je vais tester cela.

          La j'ai récupéré une application d'un client, et c'est une usine à gaz sans doc et on ne sait pas si ça déjà fonctionné

      • [^] # Re: port salut

        Posté par . Évalué à 1.

        Perso le '== true' je trouve ça horrible. C'est pas mieux ça :

        if(isset($_REQUEST['logout']) AND $_REQUEST['logout']){
            session_destroy();
        }

        Enfin si ça fonctionne, parce que j'en suis pas sûr n'ayant pas fait de php depuis quelques années.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.