problème avec session_start, je n'arrive pas à récupérer les variables de sesion

Rechercher

problème avec session_start, je n'arrive pas à récupérer...

Par lau13  -  3 reponses  -  Le 18/06/2012 17:09  -  Editer  - 

Bonjour!

Je débute en php. J'ai créé une variable de session sur mon formulaire et sur le traitement du formulaire.Les informations trasitent bien d'une page à l'autre.

J'aimerai maintenant en me servant de ces variables de session, écrire bonjour 'pseudo' dans le header mais je n'y arrive pas, je dois avoir un problème de syntaxe ou j'ai dû faire une grosse boulette !!!

pouvez vous m'aider svp?

<?php
session_start();
?>
<?php $titre_onglet = 'inscription';?>
<?php include ("../principale/header.php");?>
<?php include ("../principale/nav.php"); ?>
  <aside>
  <?php
  include ("aside_sommaire.php");
  include ("aside_bas.php");
  ?>
</aside>
<section>
<h2 id="nouveau">Nouveau ?</h2>
<form id="inscription" method="post" action="inscription_traitement.php">
<fieldset id="form1">
  <legend>Inscription :</legend>
      <label for="pseudo">Nom d'utilisateur : <img src="../seqIMG/icone_interrogation.png" alt="pseudo" title="compris entre 3 et 15 caractères"/></label>
      <input type="text" name="pseudo" id="pseudo" maxlength="15" size="25" value="<?php if (isset($_SESSION['form']['pseudo']) AND !empty($_SESSION['form']['pseudo'])) echo $_SESSION['form']['pseudo'];?>"/>
      <br />
          <?php
              if (isset($_SESSION['erreur']['pseudo']) AND !empty($_SESSION['erreur']['pseudo']))
              echo $_SESSION['erreur']['pseudo'];
          ?>

voici le code de la page du traitement du formulaire:

<?php
session_start();
$_SESSION['erreur']='';
$_SESSION['form']='';
?>
<?php $titre_onglet = 'vérification inscription'; ?>
<?php  //si pseudo mauvais
    if (empty($_POST['pseudo']) or strlen($_POST['pseudo'])>15 or strlen($_POST['pseudo'])<3)
      {
      $_SESSION['erreur']['pseudo']='<p class="erreur">Votre pseudo doit comporter entre 3 et 15 caractères.</p>';
      }
    else
      {
      $_SESSION['form']['pseudo']=htmlspecialchars($_POST['pseudo']);
      }

mon header

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title><?php echo $titre_onglet;?></title>
    <link rel="icon" type="image/png" href="../favicon.jpg" />
    <link rel="stylesheet" href="../css/header.css" type="text/css"/>
    <link rel="stylesheet" href="../css/nav.css" type="text/css"/>
    <link rel="stylesheet" href="../css/aside.css" type="text/css"/><!--aside-->
    <link rel="stylesheet" href="../css/section.css" type="text/css"/><!--corps-->
    <link rel="stylesheet" href="../css/footer.css" type="text/css"/>
    <link rel="stylesheet" href="../css/menu_liste.css" type="text/css"/>
    <link rel="stylesheet" href="../css/inscription.css" type="text/css"/>
    </head>
 <body>
<!--<div id="bloc_page">utile si dimension fixe-->
<header>
  <h1 id="en_tete"><!--pour les boutons retour-->
  Ma classe de Petite Section de Maternelle
  </h1>
  <h2>
      <?php
      $heure=date('H');
      $jour= date('d');
      $mois= date('m');
      $annee= date('Y');
      if ($heure<=18)
      {
      echo 'Bonjour '.$_POST['pseudo'].' ! Nous sommes le ' .$jour. '/' .$mois. '/' .$annee;
      }
      else
      {
      echo 'Bonsoir '.$_POST['pseudo'].' ! Nous sommes le ' .$jour. '/' .$mois. '/' .$annee;
      }
      ?>
  </h2>
</header>

etenfin une des page pour laquelle je voudrais que le pseudo apparaisse dans le header:

<?php session_start();?>
<?php $titre_onglet = 'Gymnastique'; ?>
<?php include ("../principale/header.php");?>
<?php include ("../principale/nav.php"); ?>
<?php include ("../principale/aside_AGIR_act_gym.php"); ?>
<!--le corps: avec id ce sera # mettre ici la séquence quelle qu'elle soit-->
<section>
<?php
$h1='';
include ("titre_seq.php");
?>
<h2 id="s1">Spécificités de l'activité: (guide de l'enseignant T2)</h2>
<?php include("remonter.php");?>

Merci d'avance pour vos lumières!

je précise aussi que je n'ai pas encore appris à me servir de la bdd.

 

 

 

 

 

Réponses apportées à cette discussion

Par Cyrano  -  Le 18/06/2012 19:14  -  Haut de page  - 

Salut,

il est surprenant que ça n'affiche rien sans message d'erreur.

Il faudrait vérifier dans le php.ini la configuration de PHP en vérifiant si les directives display_errors est bien à « ON « et error_reporting » au moins à « E_ALL » ou mieux « E_ALL | E_STRICT »

Partant de là, on sera fixé si le code affiche ou non des emssages d'erreurs. À première vue en regardant rapidement, je n'ai pas relevé d'erreur, mais à cette heure de la journée, je commence à saturer un peu, j'ai pu rater un truc.

Sinon pour l'utilisationd'une base de données, il y a une bonne collection de tutos sur phpdebutant.org

 

 
Par lau13  -  Le 18/06/2012 19:39  -  Haut de page  - 

Moi aussi je sature à cetteheure ci!

voici mon php ini:

; display_errors ; Default Value: On ; Development Value: On ; Production Value: Off ; display_startup_errors ; Default Value: Off ; Development Value: On ; Production Value: Off ; error_reporting ; Default Value: E_ALL & ~E_NOTICE ; Development Value: E_ALL | E_STRICT ; Production Value: E_ALL & ~E_DEPRECATED

 

Je crois donc que tout va bien du côté de php.ini

Quand je reçois une erreur il m'est indiqué undefine value pseudo etc, ma variable n'est donc pas définie...mais comme je n'y comprends rien...pour la bdd, je jetterai un oeil quand j'aurai résolu ce problème. ça ne sert à rien d'aller plus loin tant que je n'ai pas dépassé cet obstacle.

a bientôt!

 
Par Chucky2401  -  Le 19/06/2012 14:24  -  Haut de page  - 

Bonjour,

pourquoi dans ton header.php tu fais :

if ($heure<=18)
{
echo 'Bonjour '.$_POST['pseudo'].' ! Nous sommes le ' .$jour. '/' .$mois. '/' .$annee;
}
else
{
echo 'Bonsoir '.$_POST['pseudo'].' ! Nous sommes le ' .$jour. '/' .$mois. '/' .$annee;
}

Et non pas un :

if ($heure<=18)
{
echo 'Bonjour '.$_SESSION['form']['pseudo'].' ! Nous sommes le ' .$jour. '/' .$mois. '/' .$annee;
}
else
{
echo 'Bonsoir '.$_SESSION['form']['pseudo'].' ! Nous sommes le ' .$jour. '/' .$mois. '/' .$annee;
}

Car dans ton header.php tes $_POST n'existe plus.

Après, je ne suis qu'un programmeur à temps partiel.

 

Cordialement

 

Ajouter une réponse à la discussion

Seuls les membres connectés sont autorisés à poster dans les forums !

Identifiez-vous
Join |  ID/MDP? |