Fatal error: Call to undefined function session_is_registered()

Résolu
freebike Messages postés 107 Statut Membre -  
freebike Messages postés 107 Statut Membre -
Bonjour à tous,

Sur un script pour un calendrier en ligne j'ai ce message d'erreur lorsqu'on veux ajouter un événement. Voici le lien :
http://www.freebiker.net/php/xlagenda403/index.php

Je me doute bien que c'est depuis le passage a PHP 5.4 sur mon serveur, mais je ne sais trop quoi faire.

Quelqu'un peut il m'aider?

Merci

2 réponses

  1. freebike Messages postés 107 Statut Membre 5
     
    voila le code

    <?php
    session_start();
    include("../include/data.php");
    include("../include/connexion.php");
    include("../include/functions.php");
    //INITIALISATION DES VARIABLES
    $authorised=0;
    $erreur=0;
    $select=0;
    $texte=Null;
    $test_serveur=0;
    //RECUPERATION DES DONNEES
    $server=(isset($_SERVER["SERVER_NAME"])) ? $_SERVER["SERVER_NAME"] : Null;
    $the_user=(isset($_SESSION['the_user'])) ? $_SESSION['the_user'] : Null;
    $the_id=(isset($_SESSION['the_id'])) ? $_SESSION['the_id'] : Null;
    $envoye=(isset($_POST['envoye'])) ? $_POST['envoye'] : Null;
    $nom=(isset($_POST['nom'])) ? $_POST['nom'] : Null;
    $description=(isset($_POST['description'])) ? $_POST['description'] : Null;
    $categorie=(isset($_POST['categorie'])) ? $_POST['categorie'] : Null;
    $lieu=(isset($_POST['lieu'])) ? $_POST['lieu'] : Null;
    $contact=(isset($_POST['contact'])) ? $_POST['contact'] : Null;
    $adresse=(isset($_POST['adresse'])) ? $_POST['adresse'] : Null;
    $email=(isset($_POST['email'])) ? $_POST['email'] : Null;
    $telephone=(isset($_POST['telephone'])) ? $_POST['telephone'] : Null;
    $fax=(isset($_POST['fax'])) ? $_POST['fax'] : Null;
    $lien=(isset($_POST['lien'])) ? $_POST['lien'] : Null;
    $url=(isset($_POST['url'])) ? $_POST['url'] : Null;
    $date_debut=(isset($_POST['date_debut'])) ? $_POST['date_debut'] : "jj/mm/aaaa";
    $date_fin=(isset($_POST['date_fin'])) ? $_POST['date_fin'] : "jj/mm/aaaa";
    $heure_debut=(isset($_POST['heure_debut'])) ? $_POST['heure_debut'] : "hh:mm";
    $heure_fin=(isset($_POST['heure_fin'])) ? $_POST['heure_fin'] : "hh:mm";
    //SUPPRESSION DES SLASHES SI NECESSAIRE
    if (get_magic_quotes_gpc())
    {
    $date_debut=stripslashes($date_debut);
    $date_fin=stripslashes($date_fin);
    $heure_debut=stripslashes($heure_debut);
    $heure_fin=stripslashes($heure_fin);
    $nom=stripslashes($nom);
    $description=stripslashes($description);
    $lieu=stripslashes($lieu);
    $contact=stripslashes($contact);
    $adresse=stripslashes($adresse);
    $email=stripslashes($email);
    $telephone=stripslashes($telephone);
    $fax=stripslashes($fax);
    $lien=stripslashes($lien);
    $url=stripslashes($url);
    }
    //PROTECTION POUR EVITER LES INJECTIONS SQL
    $date_debut=mysql_real_escape_string($date_debut);
    $date_fin=mysql_real_escape_string($date_fin);
    $heure_debut=mysql_real_escape_string($heure_debut);
    $heure_fin=mysql_real_escape_string($heure_fin);
    $nom=mysql_real_escape_string($nom);
    $description=mysql_real_escape_string($description);
    $lieu=mysql_real_escape_string($lieu);
    $contact=mysql_real_escape_string($contact);
    $adresse=mysql_real_escape_string($adresse);
    $email=mysql_real_escape_string($email);
    $telephone=mysql_real_escape_string($telephone);
    $fax=mysql_real_escape_string($fax);
    $lien=mysql_real_escape_string($lien);
    $url=mysql_real_escape_string($url);
    //CONTROLE DE LA VALIDITE DES ID
    if (isset($categorie) AND (!is_numeric($categorie)))
    {
    die();
    }
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "[http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd]">
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html lang="fr">
    <head>
    <title><?php echo $titre_page ?> | Administration</title>
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
    <meta name="author" content="XLAgenda <?php echo $version ?>"/>
    <meta name="author-url" content="[http://xavier.lequere.net/xlagenda]"/>
    <link rel="stylesheet" href="style.css" type="text/css"/>
    <link rel="stylesheet" href="../include/datepicker/datepicker.css" type="text/css"/>
    <meta name="robots" content="noindex, nofollow"/>
    <meta http-equiv="pragma" content="no_cache"/>
    <script type="text/javascript" src="../include/jquery.js"></script>
    <script type="text/javascript" src="../include/datepicker/datepicker.js"></script>
    <script type="text/javascript" src="../include/date.js"></script>
    <script type="text/javascript" src="../include/tiny_mce/tiny_mce.js"></script>
    <?php
    if ($editeur_html)
    {
    ?>
    <script type="text/javascript">
    <!--
     tinyMCE.init({
      mode: "exact",
      elements : "description",
      theme : "simple",
      language : "fr"
     });
    -->
    </script>
    <?php
    }
    ?>
    <script type="text/javascript">
    <!--
    function verifierFormulaire()
    {
     var date_debut=document.getElementById("date_debut").value;
     var heure_debut=document.getElementById("heure_debut").value;
     var date_fin=document.getElementById("date_fin").value;
     var heure_fin=document.getElementById("heure_fin").value;
     var nom=document.getElementById("nom").value;
     var categorie=document.getElementById("categorie").value;
     var description=document.getElementById("description").value;
     if ('function' == typeof(getContent))
     {
     var editeur=tinyMCE.activeEditor.getContent();
     }
     var email=document.getElementById("email").value;
     var regDate=new RegExp ("^[0-9]{2}[/]{1}[0-9]{2}[/]{1}[0-9]{4}$");
     var regHeure=new RegExp ("^[0-9]{2}[:]{1}[0-9]{2}$");
     var regEmail=new RegExp ("^[0-9a-z._-]+@{1}[0-9a-z._-]{2,}[.]{1}[a-z]{2,5}$");
     var regSeparateur=new RegExp("[/]+", "g");
     var erreur = 0;
     var message = "";
     if (date_debut == "" || date_debut == "jj/mm/aaaa" || nom == "" || categorie == 0 || (description == "" && editeur == ""))
     {
      var message="Veuillez remplir tous les champs obligatoires.\n";
      var erreur = 1;
     }
     if (date_debut != "" && date_debut != "jj/mm/aaaa" && (!regDate.test(date_debut)))
     {
      var message=message+"Le format de la date de début est incorrect.\n";
      var erreur = 1;
     }
     if (heure_debut != "" && heure_debut != "hh:mm" && (!regHeure.test(heure_debut)))
     {
      var message=message+"Le format de l\'heure de début est incorrect.\n";
      var erreur = 1;
     }
     if (date_fin != "" && date_fin != "jj/mm/aaaa" && (!regDate.test(date_fin)))
     {
      var message=message+"Le format de la date de fin est incorrect.\n";
      var erreur = 1;
     }
     if (heure_fin != "" && heure_fin != "hh:mm" && (!regHeure.test(heure_fin)))
     {
      var message=message+"Le format de l\'heure de fin est incorrect.\n";
      var erreur = 1;
     }
     if (email != "" && (!regEmail.test(email)))
     {
      var message=message+"L\'adresse e-mail est incorrecte.\n";
      var erreur = 1;
     }
     if (date_debut != "" && date_debut != "jj/mm/aaaa" && date_fin != "" && date_fin != "jj/mm/aaaa")
     {
      var elementDate_debut=date_debut.split(regSeparateur);
      var elementDate_fin=date_fin.split(regSeparateur);
      if ((elementDate_fin[2] < elementDate_debut[2]) || ((elementDate_fin[2] == elementDate_debut[2]) && (elementDate_fin[1] < elementDate_debut[1])) || ((elementDate_fin[2] == elementDate_debut[2]) && (elementDate_fin[1] == elementDate_debut[1]) && (elementDate_fin[0] < elementDate_debut[0])))
      {
       var message=message+"La date de fin est antérieure à la date de début.\n";
       var erreur = 1;
      }
     }
     if (erreur)
     {
      alert(message);
      return false;
     }
    }
    
    $(function()
    {
     $('.date-pick').datePicker();
    });
    -->
    </script>
    <style type="text/css">
    </style>
    <div id="centre">
    <img alt="fffffffffffff" height="94" src="../../../img/ban-mecanique-moto.jpg" width="990"/>
    <h2>Ajouter un événement</h2>
    <?php
    include("header.php");
    //ON TESTE SI L'UTILISATEUR EST CONNECTE
    if (!session_is_registered("the_user"))
    {
    //SI l'UTILISATEUR N'EST PAS CONNECTE
    echo "<p>Votre session a expiré, merci de <a  href=\"index.php\">vous reconnecter</a>.</p>\n";
    }
    else
    {
    //SI L'UTILISATEUR EST CONNECTE
    //CONTROLE DE L'AUTORISATION D'ACCEDER A LA PAGE
    $query="SELECT ajouter,actif FROM $table_users WHERE user='$the_user'";
    $result=mysql_query($query);
    if ($result)
    {
    while($ligne=mysql_fetch_array($result))
    {
    $auth_ajout=$ligne['ajouter'];
    $auth_actif=$ligne['actif'];
    if (!$auth_ajout)
    {
    echo "<p>Vous n'êtes pas autorisé à accéder à cette page.<br>\n";
    echo "Pour revenir au menu principal, <a href=\"index.php\">cliquez ici</a>.</p>\n";
    }
    else
    {
    $authorised=1;
    }
    }
    }
    }
    //SI l'UTILISATEUR EST AUTORISE A ACCEDER A LA PAGE
    if ($authorised == 1)
    {
    include ("menu.php");
    ?>
    
    
    <?php
    //SI LE FORMULAIRE VIENT D'ETRE ENVOYE
    if ($envoye)
    {
    if (!$nom OR !$description OR !$categorie OR !$date_debut OR $date_debut == "jj/mm/aaaa")
    {
    echo "<p class=\"erreur\">Erreur : merci de compléter tous les champs obligatoires.</p>\n";
    $erreur="1";
    }
    elseif (!testDate($date_debut))
    {
    echo "<p class=\"erreur\">Erreur : la date de début est invalide.</p>\n";
    $erreur="1";
    }
    elseif ($date_fin AND $date_fin != "jj/mm/aaaa" AND !testDate($date_fin))
    {
    echo "<p class=\"erreur\">Erreur : la date de fin est invalide.</p>\n";
    $erreur="1";
    }
    elseif ($heure_debut AND $heure_debut != "hh:mm" AND !testHeure($heure_debut))
    {
    echo "<p class=\"erreur\">Erreur : l'heure de début est invalide.</p>\n";
    $erreur="1";
    }
    elseif ($heure_fin AND $heure_fin != "hh:mm" AND !testHeure($heure_fin))
    {
    echo "<p class=\"erreur\">Erreur : l'heure de fin est invalide.</p>\n";
    $erreur="1";
    }
    else
    {
    $tab=explode("/",$date_debut);
    $date_debut=array("$tab[2]","$tab[1]","$tab[0]");
    $date_debut=implode("-",$date_debut);
    if ($date_fin AND $date_fin != "jj/mm/aaaa")
    {
    $tab=explode("/",$date_fin);
    $date_fin=array("$tab[2]","$tab[1]","$tab[0]");
    $date_fin=implode("-",$date_fin);
    }
    else
    {
    $date_fin=$date_debut;
    }
    if ($heure_debut == "hh:mm")
    {
    $heure_debut="00:00";
    }
    if ($heure_fin == "hh:mm")
    {
    $heure_fin="00:00";
    }
    if ($url == "[http://]")
    {
    $url="";
    }
    if (!$lien AND $url)
    {
    $lien=$url;
    }
    //SUPPRESION DU CODE HTML
    $nom=strip_tags($nom);
    $lieu=strip_tags($lieu);
    $contact=strip_tags($contact);
    $adresse=strip_tags($adresse);
    $description=cleanHtml($description);
    //AJOUT DES SAUTS DE LIGNE
    if (!$editeur_html)
    {
    $description=nl2br($description);
    }
    $query="INSERT INTO $table_agenda (date_debut,date_fin,heure_debut,heure_fin,nom,description,categorie,lieu,contact,adresse,email,telephone,fax,lien,url,id_user,actif) VALUES ('$date_debut','$date_fin','$heure_debut','$heure_fin','$nom','$description','$categorie','$lieu','$contact','$adresse','$email','$telephone','$fax','$lien','$url','$the_id','$auth_actif')";
    $result=mysql_query($query);
    //ENVOI D'UN EMAIL A L'ADMINISTRATEUR
    if ($auth_actif == "0")
    {
    //ON VERIFIE SI AU MOINS UNE ADRESSE EMAIL EST DANS LA BASE DE DONNEES
    $query="SELECT email FROM $table_users WHERE email LIKE '%@%' AND gerer = '1'";
    $result=mysql_query($query);
    if($result)
    {
    $total=mysql_num_rows($result);
    if ($total)
    {
    //ON ENVOIE LE MAIL
    $nom=stripslashes($nom);
    $texte .="$nom\n\n";
    $texte .="[http://]$server/$path_agenda/admin";
    $tab=explode(".",$server);
    if (isset($tab[1]) AND isset($tab[2]))
    {
    $server=array("$tab[1]","$tab[2]");
    $server=implode(".",$server);
    $test_serveur=1;
    }
    $query="SELECT email FROM $table_users WHERE email LIKE '%@%' AND gerer = '1'";
    $result=mysql_query($query);
    while($ligne=mysql_fetch_array($result))
    {
    $adresse=$ligne['email'];
    if ($email_exp)
    {
    $headers = "From: $email_exp\n";
    $headers .= "MIME-Version: 1.0\n";
    $headers .= "Content-type: text/plain; charset=iso-8859-1\n";
    }
    elseif ($test_serveur AND ($server != "free.fr"))
    {
    $headers = "From: webmaster@{$server}\n";
    $headers .= "MIME-Version: 1.0\n";
    $headers .= "Content-type: text/plain; charset=iso-8859-1\n";
    }
    else
    {
    $headers .= "MIME-Version: 1.0\n";
    $headers .= "Content-type: text/plain; charset=iso-8859-1\n";
    }
    @mail("$adresse", "XLAgenda - Evénement en attente", $texte, $headers);
    }
    }
    }
    }
    $nom = stripslashes($nom);
    echo "<p class=\"confirmation\">L'événement <b>$nom</b> a été ajouté.</p>\n";
    $date_debut="jj/mm/aaaa";
    $date_fin="jj/mm/aaaa";
    $heure_debut="hh:mm";
    $heure_fin="hh:mm";
    }
    }
    if (!$auth_actif)
    {
    echo "<p class=\"centrertexte\"><b>Votre événement sera ajouté à l'agenda après validation par un administrateur.</b></p>\n";
    }
    //echo "<p>Les champs suivis d'un * sont obligatoires.</p>\n";
    if ($erreur)
    {
    $nom=stripslashes($nom);
    $description=stripslashes($description);
    $lieu=stripslashes($lieu);
    $contact=stripslashes($contact);
    $adresse=stripslashes($adresse);
    $telephone=stripslashes($telephone);
    $fax=stripslashes($fax);
    $lien=stripslashes($lien);
    }
    ?>
    <form name="chooseDateForm" id="chooseDateForm" action="ajouter.php" method="post" onSubmit="return verifierFormulaire(this)">
     <table style="width: 74%" align="center">
      <tr>
       <td style="width: 300px"><h3 style="width: 300px">Dates de début et de fin :</h3> (clic sur le carré)
        </td>
        <td style="width: 200px">
    <input type="text" name="date_debut" id="date_debut" value="<?php echo $date_debut ?>" class="date-pick"/></td>
        <td>
    <input type="text" name="date_fin" id="date_fin" value="<?php echo $date_fin ?>" class="date-pick"/></td>
        </tr>
       </table>
     <table style="width: 74%" align="center">
       <tr>
       
           <td>
    
     
     <p>
      <label for="adresse">Ville :</label><br/>
      <input name="adresse" type="text" id="adresse" value="<?php if ($erreur) echo $adresse ?>" size="1" style="width: 99px"/>
      <label for="adresse"></label>
     </p>
     
     
        </td>
    
    
    
        <td style="width: 200px">
     <p>
      <label for="nom">Nom de l'événement :</label><br/>
      <input name="nom" type="text" id="nom" value="<?php if ($erreur) echo $nom ?>" size="25"/>
     </p>
        </td>
        
        
        <td style="width: 180px">
     <p>
      <label for="categorie">Catégorie:</label><br/>
      <select name="categorie" id="categorie">
       <option value="0" selected>-- Sélectionner --</option>
       <?php
       //CONSTRUCTION DU MENU CATEGORIES
       $query="SELECT * FROM $table_categories WHERE actif = '1' ORDER BY nom ASC";
       $result=mysql_query($query);
       if($result)
       {
       while($ligne=mysql_fetch_array($result))
       {
       $id=$ligne['id'];
       $nom=$ligne['nom'];
       if (($erreur) AND ($categorie == $id))
       {
       echo "<option value=\"$id\" selected>$nom</option>\n";
       }
       else
       {
       echo "<option value=\"$id\">$nom</option>\n";
       }
       }
       }
       ?>
      </select>
     </p>
        </td>
        <td style="width: 180px">
     
     <p>
      <label for="lieu">Département :</label><br/>
      <input name="lieu" type="text" id="lieu" value="<?php if ($erreur) echo $lieu ?>" size="1"/><strong>
      </strong>
      <label for="lieu"><strong>(2 chiffres) </strong> </label>
     </p>
     
         </td>
        </tr>
       </table>
     <p class="centrertexte">
      <label for="description">Description de  l'événement :</label><br/>
      <textarea name="description" cols="120" rows="5" id="description"><?php if ($erreur) echo $description ?></textarea>
     </p>
     
     <table style="width: 74%" align="center">
      <tr>
       <td style="width: 231px">
     <p>
      <label for="email">Adresse email :</label><br/>
      <input name="email" type="text" id="email" value="<?php if ($erreur) echo $email ?>" size="30"/>
     </p>
          </td>
       <td style="width: 233px">
       <p><label for="telephone">Téléphone :</label><br/>
      <input name="telephone" type="text" id="telephone" value="<?php if ($erreur) echo $telephone  ?>" size="30"/>
       </p>
       </td>
       <td>
     <p>
      <label for="url">Site Web :</label><br/>
      <?php
      if ((!$url) OR (!$erreur))
      {
      $url="[http://]";
      }
      ?>
      <input name="url" type="text" id="url" value="<?php echo $url ?>" size="30"/>
     </p></td></tr></table>
     <p class="centrertexte"> 
      <input type="submit" name="Submit2" value="Ajouter"/>
      <input name="envoye" type="hidden" id="envoye" value="1"/>
     </p>
    </form>
    
    <p class="centrertexte"></p>
    
    <p class="centrertexte">
    Merci de votre participation. Votre évènement doit être validé par l'administrateur, généralement dans un délai de 24 heures.</a>
    </p>
    
    
    <p class="centrertexte"></p>
    
    <p class="centrertexte">
      <a href="index.php">Menu principal</a> | <a href="close.php">Déconnexion</a>
    </p></div>
    <?php
    }
    include("footer.php");
    ?>
    

    EDIT : Ajout du LANGAGE dans les balises de code (la coloration syntaxique).
    Explications disponibles ici :
    https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

    Merci d'y penser dans tes prochains messages.
    0
    1. freebike Messages postés 107 Statut Membre 5
       
      est ce bien dans ce fichier qu'il y a une erreur?
      0
  2. Firoxyd Messages postés 107 Statut Membre 47
     
    Bonjour,

    Effectivement c'est le passage en 5.4 qui créer ce problème.
    Pour plus d'infos il suffit de regarder dans la doc:
    https://www.php.net/manual/fr/function.session-is-registered.php

    session_is_registered n'existe plus à partir de cette version, je pense qu'il faut utiliser quelque chose comme isset($_SESSION["test"]).
    0
    1. freebike Messages postés 107 Statut Membre 5
       
      merci pour l'info!

      cela concerne donc la ligne 202...


      J'ai remplacé
      if (!session_is_registered("the_user"))
      par
      isset ($_SESSION["the_user"])

      j'ai un syntax error, unexpected

      http://www.freebiker.net/php/xlagenda403/admin/ajouter.php
      0
    2. freebike Messages postés 107 Statut Membre 5
       
      avec
      if isset($_SESSION["the_user"])
      j'ai
      syntax error, unexpected 'isset'
      0
    3. freebike Messages postés 107 Statut Membre 5
       
      avec
      if isset($_SESSION['the_user'])
      aussi
      0
    4. Firoxyd Messages postés 107 Statut Membre 47
       
      N'oublie pas les parenthèses autour de la condition:
      if( isset($_SESSION['the_user']) ) {}
      
      0
    5. freebike Messages postés 107 Statut Membre 5
       
      oupsss!

      plus de message d'erreur, mais cela me déconnecte :
      Votre session a expiré, merci de vous reconnecter.!
      0