Gros problême sur les sessions (chez ovh)

sly_prod Messages postés 31 Statut Membre -  
Alain_42 Messages postés 5413 Statut Membre -
Bonjour,
j 'ai fait deux page test (en ligne)
dans la première j y ai un formulaire avec 1 input pour la saisie d'un nom (avec test sur la saisie puis session)
sur la seconde je réaffiche ma session. Bref le code est tout bidon.... Ah, avant qu'on me le demande, j y ai mis un phpinfo().
code pour test.php visible (http://ambre-et-lumiere.fr/test.php)
<?php
session_start();
$nom = ($_POST["nom"])?$_POST["nom"]	: "";
$test=0;
echo "
<h1>Test sur les sessions</h1>

<form name='formulaire_de_contact' action='test.php' method='post'>
<input class='enregistr' size='15' maxlength='50' type='text' name='nom' value='$nom'/>";
/************************NOM*******************************/
	if (isset($_POST["nom"]))
	{
		if(ereg("^[^0-9]",$nom))
		{
			echo "<span>OK</span>";
			$_SESSION['nom']=$nom;
			$nomnom=$_SESSION['nom'];
		}
		else
		{
			echo "<span>le nom  $nom n'est pas valide</span>";
			$test = 1;
		}
	}
/*********************************************************/
if(($nom!=""))
{switch($test)
  {
	case 0:
	echo "</form>";
	echo "<a href='test2.php'>changer de page pour voir ce que devien la session</a>";
	echo "<p>la session est: $nomnom</p>";
	break;
	
							
				
	case 1:						
	echo "<p><input type='submit' name='valide' value='Tester vos saisies'/></p>";
	echo "</form>";
	break;		
  }
}	
else
{
echo "<input type='submit' name='valide' value='Tester vos saisies'/></p></form>";
}
phpinfo();
?>


code de test2.php

<?php
session_start();
$nomnom=$_SESSION['nom'];
echo "<p>la valeur de la session est: $nomnom</p>";
?>

12 réponses

Alain_42 Messages postés 5413 Statut Membre 894
 
Moi chez OVH les sessions fonctionnent parfaitement, il me semble qu'il faut par contre creer le dossier tmp a la racine de ton site (vas voir pour confirmation) ensuite qqs remarques:

if (isset($_POST["nom"]))//ce test n'est pas valable, isset veut dire est ce que la variable existe, hors tu la cree en ligne 2 donc ça va passer la a chaque coup
	{
		if(ereg("^[^0-9]",$nom))
		{
		//le premier ^ veut dire commence par et celui entre [] veut dire pas avec les caracteres 0-9 hors plus bas tu testes sur 0 et 1 ?
1
Alain_42 Messages postés 5413 Statut Membre 894
 
je ne juge pas ton code je t'ai mis seulement des remarques et je pense maitriser suffisamment le PHP .

alors libre a toi de ne pas en tenir compte
1
Alain_42 Messages postés 5413 Statut Membre 894
 
Ok d'accord pour le test du switch j'avais zappé que c'était sur une autre variable mais sur le isset je ne suis toujours pas d'accord alors qui rit bien rira le dernier
1
Alain_42 Messages postés 5413 Statut Membre 894
 
apprend et à lire un programme et à codé!

MERCI !

cliques sur mon pseudo et jette un œil sur tous les topics pour lesquels j'ai apporté une aide et les réponses des demandeurs

Effectivement dans ton cas j'ai du avoir une petite fatigue en ce début d'après midi,j'ai lu un peu vite, alors excuses moi

Mais je ne pense pas avoir de leçons à recevoir de toi, surtout sur ce ton !!!

Ce forum est un forum d'entraide, il me semble ?

BYE !!
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Alain_42 Messages postés 5413 Statut Membre 894
 
Allez je suis beau joueur:

lecon 1:
$nom = ($_POST["nom"])?$_POST["nom"] : "";
ceci n'est pas la variable $_POST["nom"]
ceci est la variable $nom qui prend la valeur de $_POST["nom"] (si $_POST["nom"] il y a ) sinon prend la valeur de "".


je connais c'est la méthode ternaire:

variable=(condition)? valeur si true : valeur si false OK

$nom = ($_POST["nom"])?$_POST["nom"] : "";

$_POST["nom"] renvoie rien si vide et une valeur si saisie dans le formulaire donc pas le booléen true ou false

essayes avec:

$nom = isset($_POST["nom"])? $_POST["nom"] : "";
1
Alain_42 Messages postés 5413 Statut Membre 894
 
Je viens de faire le test en local ET CHEZ OVH ça marche avec ce code

je suis en 60GP mutualisé
1
sly_prod Messages postés 31 Statut Membre
 
heu merci pour ta réponse.... mais stp ne juge pas mon code stp (car tu n'a apparement pas tout saisi)
-1
sly_prod Messages postés 31 Statut Membre
 
la, je suis mort de rire.... l expréssion régulière dit en gros: accepte tout sauf un chiffre, et remémore toi l'utilisation d'un switch (je suis assez callé en php pour te dire cela) et d ailleur je fais un switch sur $test et non sur $nom...
-1
sly_prod Messages postés 31 Statut Membre
 
pfff si tu veux! je sais pourquoi il est la mais le post n est pas a ce sujet
-1
sly_prod Messages postés 31 Statut Membre
 
pour ton information, je suis ici pour un problême de session chez ovh, pour mon isset, apprend et à lire un programme et à codé!

lecon 1:
$nom = ($_POST["nom"])?$_POST["nom"] : "";
ceci n'est pas la variable $_POST["nom"]
ceci est la variable $nom qui prend la valeur de $_POST["nom"] (si $_POST["nom"] il y a ) sinon prend la valeur de "".

lecon2:
if (isset($_POST["nom"]))
{
if(ereg("^[^0-9]",$nom))
{
echo "<span>OK</span>";
$_SESSION['nom']=$nom;
$nomnom=$_SESSION['nom'];
}
else
{
echo "<span>le nom $nom n'est pas valide</span>";
$test = 1;
}
}
si $_POST["nom"] existe (et oui il n existe que si t appui sur le bouton...) donc si t appui, il se créé, et sa valeur peu maintenant être testé...

lecon 3: TP

copie/colle mon code et amuse toi a enlevé mon if isset....

A bon entendeur...
-1
sly_prod Messages postés 31 Statut Membre
 
heu c'est toi qui prend les gens de haut!!
-1
sly_prod Messages postés 31 Statut Membre
 
si seulement ca fonctionnais je dis pas mais ce n est pas le cas!
mon formulaire se charge et se test sur une meme page, si j applique t a métode au charement de la page, ca va directement dans le else... car un post n existe QUE S IL Y A UN POST...
-1