sessions systématiquement détruite chez 1and1

Eléphant du PHP | 84 Messages

22 sept. 2014, 17:36

Bonjour,

Je viens d'ouvrir un compte chez 1and1.
Mon site est uploadé et hôôô misère, toutes mes sessions sont systématiquement détruites.
Sachant que ça fonctionne parfaitement bien en local et ça fonctionnait chez un hébergeur gratuit lors de tests.
Quelqu'un a une idée? Y a t il une modification d'écriture chez eux?
Je leur ai envoyé un email mais pas de réponse encore.

ViPHP
xTG
ViPHP | 7331 Messages

22 sept. 2014, 19:36

Cela ne viendrait pas d'un souci de nommage des variables ?
Chez 1&1 à en croire le web si tu fais ceci :
<?php
session_start();
$_SESSION['test'] = "ceci est un test";
$test = "ceci est un fiasco";
echo $_SESSION['test']; // ceci est un fiasco
Du coup si tu n'as pas une offre qui te permet de modifier le php.ini ou bien d'utiliser la fonction ini_set tu dois faire attention à tes noms de variable pour ne pas qu'elles soient écrasées.

Eléphant du PHP | 84 Messages

22 sept. 2014, 19:43

en fait je viens de trouver.
Il fallait créer un dossier tmp à la racine tu site.
J'ai lu également ce dont tu parles, et j'ai parfois des noms de sessions identiques à des variables mais ça ne me pose pas de problèmes.
En tout as pour le moment :)

Eléphant du PHP | 84 Messages

24 sept. 2014, 02:37

De nouveau le problème.
J'ai une page connexion qui fonctionne une fois sur 5 ou 8.
Parfois ca fonctionne,mais la plupart du temps les sessions sont détruites.
Cela ne viendrait pas d'un souci de nommage des variables ?
Chez 1&1 à en croire le web si tu fais ceci :
<?php
session_start();
$_SESSION['test'] = "ceci est un test";
$test = "ceci est un fiasco";
echo $_SESSION['test']; // ceci est un fiasco
Du coup si tu n'as pas une offre qui te permet de modifier le php.ini ou bien d'utiliser la fonction ini_set tu dois faire attention à tes noms de variable pour ne pas qu'elles soient écrasées.
Je l'ai lu aussi, et ça ne doit plus être problématique car j'ai essayé ton code, j'ai également essayé le code ci-dessous et ça fonctionne
index.php
<?php
session_start();
?>
<!DOCTYPE html>
<HTML>
    <HEAD>
        <meta http-equiv="content-type" content="text/html; charset=utf-8" />
	</head>
<?php
$_SESSION['test'] = "session test";
$test = "variable test";
?>
<FORM action="test.php" method="POST">
<input type="text" name="test">
<input type="submit" name="tes" value="Se connecter">
</FORM>
test.php
<?php
session_start();
$test="session = variable";
$_SESSION['test'] = $test;
$post_test = $_POST['test'];

echo $_SESSION['test'];
echo "<br><br>";
echo $post_test;
echo "<br><br>";
echo $_POST['test'];
?>
De l'aide svp, je ne comprend plus rien du tout

ViPHP
xTG
ViPHP | 7331 Messages

24 sept. 2014, 07:30

On peut avoir les affichages ?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

24 sept. 2014, 11:12

salut,

quel version de php utilise tu ?

car si php5.5 (même 5.4 il me semble) le register globals n'existe plus donc plus de problème d'écrasement comme l'indique xTG.

quand au reste c'est étonnant, comment fait tu pour vérifier que la session soit présente ou non ?


@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 84 Messages

24 sept. 2014, 12:29

Bonjour,
J'ai lu que l'encodage en UTF-8 inserrait un espace null en début de page, ce qui ferait planter mon session_start().
J'ai donc encondé en UTF-8 sans BOM et maintenant ça fonctionne très bien.
Par contre, je serai pas contre que tu m'en dises plus sur les super globales, car j'ai cherché avec phpinfo() et j'ai rien trouvé

Eléphant du PHP | 151 Messages

24 sept. 2014, 12:50

Et l'affichage de

Code : Tout sélectionner

<?php session_start(); $test="session = variable"; $_SESSION['test'] = $test; $post_test = $_POST['test']; echo $_SESSION['test']; echo "<br><br>"; echo $post_test; echo "<br><br>"; echo $_POST['test']; ?>
Suis curieux aussi
Développeur d'applications pour intranets industriels (IHM), DBA Oracle, auto entrepreneur. Je fuis les frameworks car je pense comme Rasmus Lerdorf : "all PHP frameworks suck"...
Je me suis lancé dans la reprise du projet PhpMyNewsletter (GNU GPL), que je vous invite à essayer.

echo ($user=='enregistré?"je t'aide":"je t'aide pas !");

Eléphant du PHP | 84 Messages

24 sept. 2014, 12:56

Ca fonctionne aussi. et ce qui est étrange, c'est que ça fonctionne quel que soit le type d'encodage utilisé. ANSI, UTF-8, UTF-8 sans BOM
J'y comprend plus rien

Eléphant du PHP | 151 Messages

24 sept. 2014, 13:00

Ca fonctionne aussi. et ce qui est étrange, c'est que ça fonctionne quel que soit le type d'encodage utilisé. ANSI, UTF-8, UTF-8 sans BOM
J'y comprend plus rien
Super, on amène tes questions, tu amènes tes réponses.

Tu peux donner le résultat des commandes STP ?
Développeur d'applications pour intranets industriels (IHM), DBA Oracle, auto entrepreneur. Je fuis les frameworks car je pense comme Rasmus Lerdorf : "all PHP frameworks suck"...
Je me suis lancé dans la reprise du projet PhpMyNewsletter (GNU GPL), que je vous invite à essayer.

echo ($user=='enregistré?"je t'aide":"je t'aide pas !");

Eléphant du PHP | 84 Messages

24 sept. 2014, 13:05

le résultat?
Ça affiche exactement ce que ça doit afficher:
session = variable
valeur du POST
valeur du POST

Eléphant du PHP | 151 Messages

24 sept. 2014, 15:21

Alors si ça marche, cela signifie que tu as un souci dans ton code... Voilà !
En fait, c'est toi qui les détruis les sessions...
J'ai un hébergement chez 1and1, et pas de soucis
Développeur d'applications pour intranets industriels (IHM), DBA Oracle, auto entrepreneur. Je fuis les frameworks car je pense comme Rasmus Lerdorf : "all PHP frameworks suck"...
Je me suis lancé dans la reprise du projet PhpMyNewsletter (GNU GPL), que je vous invite à essayer.

echo ($user=='enregistré?"je t'aide":"je t'aide pas !");