cs_DjChat
Messages postés69Date d'inscriptionmercredi 12 mars 2008StatutMembreDernière intervention25 novembre 2010
-
2 juil. 2008 à 20:29
Farfadh
Messages postés68Date d'inscriptiondimanche 1 avril 2007StatutMembreDernière intervention 7 juillet 2008
-
3 juil. 2008 à 19:56
Bonjour a tous, j'ai mi mon site une fois terminer sur un serveur mutualiser de OVH et toute les partie ou il y a des variables de sesson ne fonctionne pas.
En local je faisait juste un session start a l'authentification du membre et ca me gardait ces informations en memoire, on ma dit que je devais mettre session start sur tout les pages ou il y a des variables de sesion, ce que j'ai fait, mais rien ne change...
J'ai fait des echo des variables de session pour voir si il y avait quelque chose dedans, mais il n'y a rien....
J'vous met mon script d'authentification, la ou je recupere les infos de l'utilisateur et apres les pages par ou il passe pour editer son profil.
Authentification:
case "verification" :
/*Initialise la session*/
session_start();
/*Connection a la BDD*/
require_once('connec_bdd.php');
/*Verifie si il y a quelque chose dans les variables POST*/
if(isset($_POST['nom']) and isset($_POST['motdepasse']))
{
/*Transfert les données des variables POST dans des variables*/
$pseudo=mysql_real_escape_string($_POST['nom']);
$motdepasse=md5($_POST['motdepasse']);
/*recupere toute les champs de l'utlisateur*/
$requete "SELECT * FROM utilisateur WHERE nom '$pseudo' AND pass = '$motdepasse'";
$result = mysql_query($requete) or die(mysql_error());
/*initialise la varible a false*/
$row=false;
/* si row est egale a true alors il transfert les informations dans les variables de sessions*/
if ($row = mysql_fetch_array($result)) {
$_SESSION['id_user']=$row['id_user'];
$_SESSION['nom']=$row['nom'];
$_SESSION['texte']=$row['texte'];
$_SESSION['texte2']=$row['texte2'];
$_SESSION['statut']=$row['statut'];
$_SESSION['droit']=$row['droit'];
/* si le nom de l'utilisteur est egale a celui de l'admin il est rediriger vers sa partie spécifique*/
if ($pseudo == 'Corine Keiflin')
{
/*attribution d'un nouveau numéro de session*/
session_regenerate_id();
header("Location: http://www.art-kateo.fr/pages/corine.php");
}
else
/*Sinon le redirection vers la partie membre*/
{
session_regenerate_id();
header("Location: http://www.art-kateo.fr/pages/action_membre.php");
}
}
/*si il le tableau est a FALSE (vide)*/
}
if(!$row)
{
header("Location: http://www.art-kateo.fr/pages/redirect_auth.php");
}
break;
Sa page d'admin:
<?php
session_start()
?>
<?php
include 'droit.php'
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Administration de Corine</title>
<link href="../css/page.css" rel="stylesheet" type="text/css" />
</head>
<!--Choix de l'action de l' administrateur-->
</html>
La page ou elle peux modifier son profil et la ou il n'y a rien qui s'affiche:
<?php
session_start()
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Edition de la partie membre</title>
<link href="../css/page.css" rel="stylesheet" type="text/css" />
<!--Javascript qui verifie si le nombre de caractere n'a pas ete depasser dans les textarea-->
<script type="text/javascript">
//-----------------------
// this_ = objet TEXTAREA
// nb_ = longueur maxi du texte
//-----------------------
function Test( this_, nb_){
//-- Recup. le texte de la TEXTAREA
var Texte = this_.value;
//-- SI valeur SUP au parametre nb_
if( Texte.length > nb_)
//-- Tronquage du texte
Texte= Texte.substr( 0, nb_);
//-- Reaffectation du texte
this_.value = Texte;
}
</script>
</head>
<!--formulaire d'edition du profil-->
<!--sur click renvoi sur traintment_n_membre.php-->
<!--affiche les valeur de la BDD grace au variables de session-->
<form method="post" target="contenu" action="traitement_n_membre.php" name="membre">
'/>
<select name="statut" class="bout_auth2">
<option value="Président(e)" <?php if($_SESSION['statut'] == 'Président(e)') echo 'selected="selected"'; ?>>
Président(e)</option>
<option value="Vice président(e)" <?php if($_SESSION['statut'] == 'Vice président(e)') echo 'selected="selected"'; ?>>
Vice président(e)</option>
<option value="Trésorier(e)" <?php if($_SESSION['statut'] == 'Trésorier(e)') echo 'selected="selected"'; ?>>
Trésorier(e)</option>
<option value="Trésorier(e) adjoint(e)" <?php if($_SESSION['statut'] == 'Trésorier(e) adjoint(e)')
echo 'selected="selected"'; ?>>Trésorier(e) adjoint(e)</option>
<option value="Secrétaire" <?php if($_SESSION['statut'] == 'Secrétaire') echo 'selected="selected"'; ?>>
Secrétaire</option>
<option value="Secrétaire adjoint(e)" <?php if($_SESSION['statut'] == 'Secrétaire adjoint(e)')
echo 'selected="selected"'; ?>>Secrétaire adjoint(e)</option>
<option value="Membre" <?php if($_SESSION['statut'] == 'Membre') echo 'selected="selected"'; ?>>
Membre</option>
</select>
<textarea name="texte" cols="20" rows="5" class="bout_auth2" onkeyup="Test( this, 490);">
<?php echo $_SESSION[('texte')];?></textarea>
<textarea name="texte2" cols="20" rows="5" class="bout_auth1" onkeyup="Test( this, 742);">
<?php echo $_SESSION[('texte2')];?></textarea>
</form>
</html>
PlayerMania
Messages postés95Date d'inscriptionjeudi 22 avril 2004StatutMembreDernière intervention28 avril 2009 2 juil. 2008 à 23:05
Pour concerver les var de sessions, il faut qu'un session_start(); se trouve sur toutes les page suivante de la navigation pour bien les garder en mémoire.
Le nom de la variable de session s'écrit sans parenthèse :
$_SESSION['nom'] aulieu de $_SESSION[('nom')]
éventuellement un souci avec $row=false; essaye de l'enlever.
Test voir d'afficher les var de session juste à la fin de l' authentification.
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 3 juil. 2008 à 14:25
Salut,
Soit c'est un problème de cookies non acceptés, ou mal configurés (il faut que le domaine et le chemin soient toujours les mêmes). Ou alors, la session n'est pas démarrée correctement.
Dans tous les cas, je pense que la ligne suivante peut t'aider à avancer :
error_reporting(E_ALL);
Parce que je doute que les erreurs soient affichées, et comme tu ne les traites pas correctement, tu ne sais pas où elles se trouvent...
<hr size="2" width="100%" />Neige
N'hésitez pas à lire la doc de PHP avant de poser des questions triviales...
Farfadh
Messages postés68Date d'inscriptiondimanche 1 avril 2007StatutMembreDernière intervention 7 juillet 20084 3 juil. 2008 à 19:56
Oui, il est possible que tu rencontres une erreur sans le savoir. Par exemple, il est possible que tu aies un problème en n'utilisant pas ob_start avant session_start si ton hébergeur envoie des données au client à ton insu.
Le mieux à terme, je pense, c'est quand même de s'arranger pour que toutes les erreurs soit sauvegardées dans un journal et que tu puisses en prendre connaissance sans polluer ni suspendre ton site s'il est déjà publié et utilisé.