Variables de session, problème sur site distant

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Variables de session, problème sur site distant

par Cyrano » 01 avr. 2006, 15:00

C'est alors peut-être un problème d'url qui pointe vers cette page sans le "www." en début d'adresse ou quelque chose du genre : je vois pas trop :-k

par Gico » 01 avr. 2006, 13:45

ok, j'ai modifié, mais ça ne resout pas le probleme...

par Cyrano » 01 avr. 2006, 13:40

Ok, première chose, session_start() doit être positionné avant toute autre chose, modifie comme ceci:
<?php
session_start();
require_once('Connections/maelly.php');
//...
Et refais un test.

par Gico » 01 avr. 2006, 13:23

Voila le code php
<?php require_once('Connections/maelly.php'); 

session_start();

if(!isset($_POST['ajoutPanier'])) $ajoutPanier="";//init de ajoutPanier si non déclaré
else  $ajoutPanier=$_POST['ajoutPanier']; 
if ((!isset($_SESSION['liste']))&&($ajoutPanier=="")) $liste[]=array("VIDE",1,0,0);//init de liste si VIDE
if (isset($_SESSION['liste'])) $liste=$_SESSION['liste'];//recup de la liste de la session
if(!isset($_GET['suppPanier'])) $suppPanier="";//init de suppPanier si non déclaré
else $suppPanier=$_GET['suppPanier'];

$maxRows_Art = 10;
$pageNum_Art = 0;
if (isset($_GET['pageNum_Art'])) {
  $pageNum_Art = $_GET['pageNum_Art'];
}
$startRow_Art = $pageNum_Art * $maxRows_Art;

$colartircle_Art = "0";
if (isset($_POST['VARarticle'])) {
  $colartircle_Art = (get_magic_quotes_gpc()) ? $_POST['VARarticle'] : addslashes($_POST['VARarticle']);
}
mysql_select_db($database_maelly, $maelly);
$query_Art = sprintf("SELECT * FROM articles WHERE articles.articleID=%s", $colartircle_Art);
$query_limit_Art = sprintf("%s LIMIT %d, %d", $query_Art, $startRow_Art, $maxRows_Art);
$Art = mysql_query($query_limit_Art, $maelly) or die(mysql_error());
$row_Art = mysql_fetch_assoc($Art);

if (isset($_GET['totalRows_Art'])) {
  $totalRows_Art = $_GET['totalRows_Art'];
} else {
  $all_Art = mysql_query($query_Art);
  $totalRows_Art = mysql_num_rows($all_Art);
}
$totalPages_Art = ceil($totalRows_Art/$maxRows_Art)-1;

// verifie la présence d'un atricle dans le panier
$reference=$_POST['VARarticle'];

function verif_panier($ref_article)
{
    $present = false;
    if(is_array($_SESSION['liste'][0]))
    {
        if(array_search($ref_article,$_SESSION['liste'][0]) != false)
        {
            $present = true;
        }
    }
    return $present;
}

//----------------------------------------------------AJOUT PANIER cree liste et verfie presence
if ($ajoutPanier=="AJOUTER" && $present == false)
{ 
$reference=$_POST['VARarticle'];

//questions
$question1=$_POST['question1'];
$question2=$_POST['question2'];
$voyance=$_POST['questionVoyance'];

//	
$nb="1";
$prixUnit= $row_Art['prixTTC'];
$prixHT=$row_Art['prixHT'];
$totalarticle=$nb*$prixUnit;
$type=$row_Art['type'];
$liste[]=array($reference,$nb,$prixUnit,$totalarticle,$prixHT,$question1,$question2,$voyance,$type);
$_SESSION['liste'] = array();
$_SESSION['liste']=$liste;

}
//----------------------------------------------------SUPP PANIER
if ($suppPanier=="SUPPRIMER")
{
	$article=$_GET['SupArticle'];
	for ($i=0;$i<count($liste);$i++)
		{
		if($article==$i)
			array_splice($liste,$i,1);
		//suppression de l'article
		}
	$_SESSION['liste']=$liste;//mAj de la liste
}
//------------ LIVRAISON =OK et au moins un produits a envoyer

if ($_POST['livraison']=="ok" && $_POST['VARproduits']>0)
{
	//if(!isset($_POST['action'])) 
	//$_SESSION['action']="ENREGISTRER";//mémorise l'action necessaire pour la page commande.
	$VARtotal= $_POST['total'];
	$VARtva= $_POST['tva'];
	$commande[]=array($VARtotal,$VARtva);
	$_SESSION['commande']=array();
	$_SESSION['commande']=$commande;
	header("Location:livraison_caddie.php");
}
//------------ LIVRAISON =OK et 0 produit a envoyer

if ($_POST['livraison']=="ok" && $_POST['VARproduits']==0)
{
	//if(!isset($_POST['action'])) 
	//$_SESSION['action']="ENREGISTRER";//mémorise l'action necessaire pour la page commande.
	$VARtotal= $_POST['total'];
	$VARtva= $_POST['tva'];
	$commande[]=array($VARtotal,$VARtva);
	$_SESSION['commande']=array();
	$_SESSION['commande']=$commande;
	header("Location:commande.php?livraison=ok");
}

?>

par Cyrano » 01 avr. 2006, 13:19

il manquerait pas un session_start() sur la page en question ou une fonction de session non conforme ?

par Gico » 01 avr. 2006, 13:16

je gère pas...je touche à rien, sur OVh j'ai jamais eu de probleme, d'ailleurs les variables de session fonctionnent jusqu'au passage sur cette page, ou plutot jusqu'au moment ou j'en sort, ce qui comme je l'ai dit, semble les desactiver. Je doit reconnaitre que je maitrise mal ce qui se passe du coté des paramètres d'autant que ce problème ne m'est jamais arrivé. Je ne vois rien dans mon code qui puisse ne serais-ce que rajouter ces variables a l'url

par Cyrano » 01 avr. 2006, 13:06

En principe, l'identifiant de session s'ajoute à l'URL lorsque les coockies sont refusés coté client et à condition que le php.ini soit configuré pour ça. Si tu as un lien vers le php.ini de ton site, ça aiderait à détecter les paramètres à ajuster... à condition que tu sois sur un dédié où tu peux configurer le php.ini selon tes propres paramètres. Si tu es sur un mutualisé, tu peux oublier ça.

Ce qui n'est pas normal en revanche, c'est de ne plus pouvoir créer de variables de session: l'identifiant indique que la session existe et par conséquent, tu ne devrais pas avoir cette difficulté... alors je vois pas trop. Comment gères-tu les sessions ?

par Gico » 01 avr. 2006, 12:53

Désolé pour le mauvais positionnement de ma demande, une erreur de precipitation ...
Sinon j'ai identifié le problème sinon que d'avoir reussi à l'expliquer. Lorsque j'arrive sur une certaine page, celle de mon panier , et que j'en sort ensuite, l'url se complete d'un truc du genre PHPSESSID=ae8e67b90f7596357f33557e0ed5bf2b, je ne sais pas d'ou ça vient, et aprés plus possible de recuperer ou d'ecrire des variables de session.

par Cyrano » 01 avr. 2006, 11:10

Modération : Gico, ce n'est pourtant pas ton premier message ici, tu devrais savoir que le forum FAQ est réservé à des sujets sur des questions fréquemment posées auquelles on apporte une réponse : on y pose pas de question.

Sujet déplacé.


Maintenant, pour ce qui est de ta question : doit-on comprendre que ça fonctionnait normalement jusqu'à recemment ? As-tu dans ce cas modifié quelque chose dans ton code susceptible de modifier la gestion de session ? Sinon, OVH a peut-être mis à jour sa version de PHP et certains paramètres de configuration auraient été modifiés : il faudrait regarder dans le phpinfo() ce qui concerne les sessions et voir s'il n'y aurait pas une incompatibilité avec ton application...

Variables de session, problème sur site distant

par Gico » 01 avr. 2006, 09:37

Bonjour, quelqun pourrait-il m'expliquer pourquoi mes variables de session ne fonctionnent plus sur mon site distant (hebergement OVH)?