Fais un dump() du tableau de session, le problème est surement en amont...
Sans code difficile à dire, surtout s'il y a des inclusions, un simple BOM ou caractère HTML peut-être source de problème, en locale ça fonctionne car le serveur est configurer différemment par défaut, mais pas en ligne...
La valeur du $_POST['ophtalmo'] arrive normalement (j'ai vérifié).
La variable de session est créée puisque après la requête, on entre dans le 'else' et non dans le 'if' et la deuxieme requete alimente convenablement la variable $ophta que je retrouve à l'affichage dans ma page.
Mais quand je clique sur le submit en dessous de la ligne "renouvellement adapté", dans ma page "017-ophta_courrier_ra.php", plus rien.
<?php
session_start();
echo $_POST['ophtalmo'];
include('000-MAP-fonconnect.php');
if(isset($_POST['ophtalmo']))
{
$opht=explode(' ', $_POST['ophtalmo']);
$ophtid=$opht[count($opht)-1];
$_SESSION['ophtalmologiste']=$ophtid;
}
$req=$bdd->prepare('SELECT COUNT(id) AS nb FROM ophta WHERE id = :markid');
$req->execute(array('markid'=>$_SESSION['ophtalmologiste']));
$donnee=$req->fetch();
$req->closeCursor();
$nb=$donnee['nb'];
if($nb==0)
{
header('location:001-MAP-info.php?action=010-index_shop.php&message=Cet ophtalmologiste est inconnu dans notre base, n\'hésitez pas à demander sa création.&bouton=Retour');
}
else
{
$req2=$bdd->prepare('SELECT name, firstname FROM ophta WHERE id = :oph');
$req2->execute(array('oph'=>$_SESSION['ophtalmologiste']));
$donnee=$req2->fetch();
$req2->closeCursor();
$ophta= $donnee['name'].' '.$donnee['firstname'];
?>
<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8'/>
<link rel='shortcut icon' type='image/x-icon' href='images/symbols/icone.png'/>
<title>M@P - Ophtalmologistes</title>
<link rel='stylesheet' href='000-MAP-style.css'/>
<script type='text/javascript' src='000-MAP-function.js'></script>
</head>
<body>
<div class='pagew600'>
<header>
<div><img class='logo100'src='images/symbols/logo.png' alt='Logo'/></div>
<div>
<form action='010-index_shop.php'>
<input type='submit' class='backsubmit' value='' title="Retour vers l'accueil"/>
</form>
</div>
</header>
<section class='contenu'>
<div class='sepline500'></div>
<div class='intertitle'><b>Courriers</b></div>
<div><b>pour le Dr. <?php echo $ophta;?></b></div>
</section>
<div class='sepline500'></div>
<section class='contenu'>
<div class='doctitle'>Adaptation Lentilles</b></div>
<p>
<form method='POST' action='017-ophta_courrier_ldc.php'>
<input type='submit' value='' title='Remplir le formulaire' class='nextsubmit'>
</form>
</p>
</section>
<div class='sepline500'></div>
<section class='contenu'>
<div class='doctitle'>Renouvellement Adapté</b></div>
<p>
<form method='POST' action='017-ophta_courrier_ra.php'>
<input type='submit' value='' title='Remplir le formulaire' class='nextsubmit'>
</form>
</p>
</section>
<div class='sepline500'></div>
<section class='contenu'>
<div class='doctitle'>Modification des Corrections</div>
<p>
<form method='POST' action='017-ophta_courrier_mdc.php'>
<input type='submit' value='' title='Remplir le formulaire' class='nextsubmit'>
</form>
</p>
</section>
<section>
<div class='sepline500'></div>
</section>
</div>
</body>
</html>
<?php
}
?>
EDIT : Suite au var_dump($_SESSION); cette variable n'apparait pas dans la liste...
Non j'ai fais le dump sur ma page suivante "017-ophta_courrier_ra.php", là où ma session manque.
Je vais tester après la ligne 10.
Je vais verifier ma $ophtid mais comme le reste de la page fonctionne, j'imagine que c'est bon.
(Et merci pour les conseils)
EDIT : le var_dump me retourne bien la valeur de la session, jusque là ça fonctionne.
RE-EDIT : c'est un sketch ce truc sans dec... j'ai recréé une page test.php pour remplacer ma page "017-ophta_courrier_ra.php (dès fois que par magie ), mais toujours rien, j'ai loupé quelque chose?
Après test, la $nb retourne le résultat attendu : 1
<?php
session_start();
include('000-MAP-fonconnect.php');
/*if(isset($_POST['ophtalmo']))
{
$opht=explode(' ', $_POST['ophtalmo']);
$ophtid=$opht[count($opht)-1];
$_SESSION['ophtalmologiste']=$ophtid;
}*/
$_SESSION['ophtalmologiste']=2;
$req=$bdd->prepare('SELECT COUNT(id) AS nb FROM ophta WHERE id = :markid');
$req->execute(array('markid'=>$_SESSION['ophtalmologiste']));
$donnee=$req->fetch();
$req->closeCursor();
$nb=$donnee['nb'];
echo $nb;
?>
Merci pour ton aide déja et bonne nuit .
Départ pour la présentation demain matin à 8h, je croise les doigts pour qu'un "insomniaque" repère le problème d'ici là...
- Edité par Scueto 24 mai 2018 à 0:16:15
$_SESSION ne fonctionne pas sur le serveur
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Activer les erreurs PDO / (julp) htmlspecialchars / FAQ PHP / Pas d'aide par MP
Activer les erreurs PDO / (julp) htmlspecialchars / FAQ PHP / Pas d'aide par MP