Fatal error: Call to undefined function session_is_registered() [Résolu/Fermé]

Signaler
Messages postés
104
Date d'inscription
jeudi 2 juillet 2009
Statut
Membre
Dernière intervention
16 juillet 2019
-
Messages postés
104
Date d'inscription
jeudi 2 juillet 2009
Statut
Membre
Dernière intervention
16 juillet 2019
-
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

Messages postés
104
Date d'inscription
jeudi 2 juillet 2009
Statut
Membre
Dernière intervention
16 juillet 2019
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.
Messages postés
104
Date d'inscription
jeudi 2 juillet 2009
Statut
Membre
Dernière intervention
16 juillet 2019
5
est ce bien dans ce fichier qu'il y a une erreur?
Messages postés
97
Date d'inscription
mardi 23 juin 2015
Statut
Membre
Dernière intervention
28 juin 2017
39
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"]).
Messages postés
104
Date d'inscription
jeudi 2 juillet 2009
Statut
Membre
Dernière intervention
16 juillet 2019
5
avec
if isset($_SESSION['the_user'])
aussi
Messages postés
97
Date d'inscription
mardi 23 juin 2015
Statut
Membre
Dernière intervention
28 juin 2017
39
N'oublie pas les parenthèses autour de la condition:
if( isset($_SESSION['the_user']) ) {}
Messages postés
104
Date d'inscription
jeudi 2 juillet 2009
Statut
Membre
Dernière intervention
16 juillet 2019
5
oupsss!

plus de message d'erreur, mais cela me déconnecte :
Votre session a expiré, merci de vous reconnecter.!
Messages postés
97
Date d'inscription
mardi 23 juin 2015
Statut
Membre
Dernière intervention
28 juin 2017
39
Si tu avais
if (!session_is_registered("the_user")) 

Il doit falloir de la même façon;
if( !isset($_SESSION['the_user']) ) {}
Messages postés
104
Date d'inscription
jeudi 2 juillet 2009
Statut
Membre
Dernière intervention
16 juillet 2019
5
effectivement, il manquait le !
c'est cool, super merci
bonne journée et bon WE
Pascal