Partage
  • Partager sur Facebook
  • Partager sur Twitter

$_SESSION ne fonctionne pas sur le serveur

    23 mai 2018 à 21:59:45

    Bonsoir à tous,

    Je suis un peu en stress car je présente mon projet demain et j'ai une variable de session qui ne fonctionne pas sur le serveur o_O

    C'est possible ça?

    Le même code en local fonctionne très bien mais une fois sur le serveur : rien dans la variable >_<

    Help!!!

    • Partager sur Facebook
    • Partager sur Twitter
      23 mai 2018 à 22:02:26

      Bonsoir,

      Sur quel serveur ?

      Que dises les log du serveur ?

      • Partager sur Facebook
      • Partager sur Twitter
        23 mai 2018 à 22:16:11

        Salut,

        Serveur 1&1, mais ce qui m'étonne c'est que d'autre session fonctionne. 

        En faite cette session me permet de faire une requete et d'afficher une donnée dans un courrier du genre "cher docteur $docteur"

        et donc là rien ne s'affiche à part "cher docteur".

        J'ai donc couper court au script de la page en essayant d'afficher simplement la variable de session et là page blanche.

        Je refais le test et te dis pour les logs :(

        • Partager sur Facebook
        • Partager sur Twitter
          23 mai 2018 à 22:19:55

          Donc cela ne viens probablement pas de la sessions mais du code
          • Partager sur Facebook
          • Partager sur Twitter
            23 mai 2018 à 22:30:13

            J'ai rien dans les logs je pense :

            83.195.240.0 - - [23/May/2018:22:24:39 +0200] "POST /017-ophta_courrier_ra.php HTTP/1.1" 200 - www.monsite.com "https://www.monsite.com/017-ophta.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36" "-"



            • Partager sur Facebook
            • Partager sur Twitter
              23 mai 2018 à 22:33:32

              Hello,

              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...

              • Partager sur Facebook
              • Partager sur Twitter
                23 mai 2018 à 22:46:57

                Voici le code qui visiblement bloque : 

                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...

                -
                Edité par Scueto 23 mai 2018 à 22:58:28

                • Partager sur Facebook
                • Partager sur Twitter
                  23 mai 2018 à 23:15:09

                  Ok,

                  Tu inclus le fichier de connexion.

                  Ligne 6 préfère !empty() , bon rien à voir mais c'est mieux comme teste.

                  Mette un exit() après une redirection.

                  La variable $ophtidest elle cohérente à tes attentes ?

                  Le dump tu l'a fait juste après la ligne 10 pour voir ? d'ailleurs ta requête pour récupérer "nb" pourrait se trouver dans le IF.

                  ps: je dois m'absenter un moment...

                  -
                  Edité par Lucky13 23 mai 2018 à 23:16:56

                  • Partager sur Facebook
                  • Partager sur Twitter
                    23 mai 2018 à 23:22:26

                    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 :lol:), mais toujours rien, j'ai loupé quelque chose?

                    test.php :

                    <?php
                    session_start();
                    echo $_SESSION['ophtalmologiste'];
                    ?>



                    -
                    Edité par Scueto 23 mai 2018 à 23:47:41

                    • Partager sur Facebook
                    • Partager sur Twitter
                      23 mai 2018 à 23:54:08

                      Ta session n'existe pas ou est vide ? dans ton IF les lignes 8 et 9 ne posent pas de soucis ?

                      Supprimes les et donne une valeur à ta session pour voir si la suite du code fonctionne (requête SQL pour obtenir le "nb" )

                      Va falloir y aller petit à petit...

                      ps: en tout cas jamais eu de soucis avec les sessions chez 1&1, logique.... 

                      je vais devoir aller faire dodo, désolé, peut-être à demain à tête reposée si d'ici la personne ne trouve la coquille...

                      -
                      Edité par Lucky13 23 mai 2018 à 23:55:16

                      • Partager sur Facebook
                      • Partager sur Twitter
                        24 mai 2018 à 0:04:28

                        <?php
                        session_start();
                        var_dump($_SESSION);
                        echo $_SESSION['ophtalmologiste'];
                        ?>

                        resultat : array(0) { }

                        ---------------------------------------------------------

                        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

                        • Partager sur Facebook
                        • Partager sur Twitter

                        $_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.
                        • Editeur
                        • Markdown