problème avec session_start, je n'arrive pas à récupérer...
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
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
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!
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