
Forum de support de ClanFree.net
Vous n'êtes pas identifié.
Bonjour a tous
Cela fait longtemps que je n'ai pas poster car je n'avait plus de problèmes .
Mais aujourd'hui n'est pas un jour comme les autres ....
Bon je vous expose mon problème :
Je suis en train de développer un site principalement en PHP .
Le seul problème que je connaisse c'est que quand j'ouvre une session avec ce code :
<?php
if(isset($_POST['pseudo']) AND isset ($_POST['mot_de_passe']))
{
$pseudo=$_POST['pseudo'];
$mot_de_passe=$_POST['mot_de_passe'];
$timestamp_expire = time() + 365*24*3600; // Le cookie expirera dans un an
setcookie('pseudo', $pseudo, $timestamp_expire); // On écrit les cookies
setcookie('mot_de_passe', $mot_de_passe, $timestamp_expire);
}
session_start();
function ouvrir_session($pseudo)
{
$_SESSION['connecte'] = 1 ;
$_SESSION['pseudo'] = $pseudo;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">Quand je veut aller sur une autre page et que j'ai besoin de la session je fait
<?php session_start(); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
He ben la variable $_SESSION['pseudo'] ne vaut rien ... alors que j'en ai besoin.
Mais je plus bizard c'est qu'en local (Avec WAMP ) Le script fonctionne tres bien ....
Si quelqu'un est capable de m'aider il est le bienvenue ... 
PS: si quelqu'un va sur mon site qu'il ne fasse pas attention a la laideur de ce dernier ... je n'ai pas fait le style
Dernière modification par K!LM@N (26-05-2008 22:18:39)
Hors ligne
bonjour
j'ai testé (sur clanfree) ton morceau de code (en bidouillant deux trois trucs néammoins), et a priori c'est bon.
par contre, deux choses :
tu n'appelles jamais ton "ouvrir_session" ?
et sinon, je crois que la norme veut que si session_start est utilisé, il faut que ce soit la première instruction de la page (ou en tout cas, la première chose envoyée au browser), mais là je me fourvoie peut être

Hors ligne
pour la fonction "ouvrir_session" elle est apellé plus loin et je n'ai pas jugé utile de le mètre mais si tu y tien je te le donne volontiers
Le voila
<?php
session_start();
if(isset($_POST['pseudo']) AND isset ($_POST['mot_de_passe']))
{
$pseudo=$_POST['pseudo'];
$mot_de_passe=$_POST['mot_de_passe'];
$timestamp_expire = time() + 365*24*3600; // Le cookie expirera dans un an
setcookie('pseudo', $pseudo, $timestamp_expire); // On écrit les cookies
setcookie('mot_de_passe', $mot_de_passe, $timestamp_expire);
}
function ouvrir_session($pseudo)
{
$_SESSION['connecte'] = 1 ;
$_SESSION['pseudo'] = $pseudo;
$_SESSION['connecte'] = 1 ;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Créativ' Host : Mon compte !</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<p>
Mon compte :
</p>
<?php
if (isset($_POST['visite']) AND $_POST['visite'] == 1 OR $_SESSION['connecte'] == 1)
{
include ('../connect_db.php');
$retour = mysql_query('SELECT COUNT(*) AS nbr FROM utilisateurs WHERE pseudo = \''.$_POST['pseudo'].'\'')or die (mysql_error ()); //si il y a une entrée qui contient $_POST['pseudo']
$donnees = mysql_fetch_assoc($retour);
if ($donnees['nbr'] != 0 OR $_SESSION['connecte'] == 1)
{
if ( $_SESSION['connecte'] == 1)
{
$_POST['pseudo'] = $_SESSION['pseudo'] ;
}
$retour = mysql_query('SELECT * FROM utilisateurs WHERE pseudo = \''.$_POST['pseudo'].'\'')or die (mysql_error ()); //alors on recupère ces informations
while ($donnees = mysql_fetch_array($retour))
{
if ( md5($_POST['mot_de_passe']) == $donnees['mot_de_passe'] AND $donnees['pseudo'] == $_POST['pseudo'] OR $_SESSION['connecte'] == 1 ) //comparaison du mot de passe crypté
{
$pseudo = $_POST['pseudo'] ;
ouvrir_session("$pseudo");
echo '<p>Bienvenue sur votre page d\'administration <strong>'.$_SESSION['pseudo'].'</strong></p> <br/>';
echo "<div align = 'right'><a href = '../index.php?deco=1'>Se deconnecter</a></div>";
if ($donnees['hebergement'] == 1 )
{
echo"<br/><a href='hebergement.php'>Mon hebergement</a>";
}
else
{
echo "<br/><a href ='demande.php'>Demander un hebergement</a>";
}
if ($donnees['TS'] == 1)
{
echo "<br/><br/><a href ='TS.php'>Mon TeamSpeak</a>";
}
else
{
echo "<br/><br/><a href ='demande_TS.php'>Demander un TeamSpeak</a>";
}
}
else
{
echo '<strong> Ereurre mauvais nom d\'utilisateur ou mauvais mot de passe ! Veuillez rééssayer ! Merci </strong>'
?>
<p>
<form action='index.php' method ='post'>
Votre pseudo : <input type ='text' name='pseudo' value ="<?php echo $_COOKIE['pseudo']?>"><br/>
Votre mot de passe : <input type ='password' name='mot_de_passe' value ="<?php echo $_COOKIE['mot_de_passe']?>"></br>
<input type ='hidden' name = 'visite' value='1'>
<input type ='hidden' name = 'connecte' value='1'>
<input type ='submit' value='Envoyer !'>
</form>
</p>
<?php
}
}
}
else
{
echo '<strong> Ereurre mauvais nom d\'utilisateur ou mauvais mot de passe ! Veuillez rééssayer ! Merci </strong>'
?>
<p>
<form action='index.php' method ='post'>
Votre pseudo : <input type ='text' name='pseudo' value ="<?php echo $_COOKIE['pseudo']?>"><br/>
Votre mot de passe : <input type ='password' name='mot_de_passe' value ="<?php echo $_COOKIE['mot_de_passe']?>"></br>
<input type ='hidden' name = 'visite' value='1'>
<input type ='hidden' name = 'connecte' value='1'>
<input type ='submit' value='Envoyer !'>
</form>
</p>
<?php
}
}
else //si $_POST['visite'] n'existe pas c'est la premiere fois q'on ouvre la page on met donc le formulaire
{
?>
<p>
<form action='index.php' method ='post'>
Votre pseudo : <input type ='text' name='pseudo' value ="<?php echo $_COOKIE['pseudo']?>"><br/>
Votre mot de passe : <input type ='password' name='mot_de_passe' value ="<?php echo $_COOKIE['mot_de_passe']?>"></br>
<input type ='hidden' name = 'visite' value='1'>
<input type ='hidden' name = 'connecte' value='1'>
<input type ='submit' value='Envoyer !'>
</form>
</p>
<?php
}
if ($_POST['connecte'] != 1 AND $_SESSION['connecte'] != 1) //si on est pas dans la page mon compte on indique les autres liens
{
?>
<br/>
<br/>
<p>
<form action='passe_perdu.php' method ='post'>
Mot de passe perdu ? <br>
Votre pseudo : <input type ='text' name ='pseudo'>
<input type='submit'value='Envoyer !'>
</form>
</p><br/>
<p>Pas de compte ?<br/>
Créez-en un <a href = 'inscription.php'>ici</a>.</p>
<?php
}
?>
</body>
</html>Pour le browser je vais voir si c'est sa mais cela me parait bizzar car le code marche en local
EDIT: Je viens de changer le "session_start()" et je l'ai mit en tout début de code et sa marche ... merci
Dernière modification par K!LM@N (27-05-2008 20:26:35)
Hors ligne
Hors ligne
pas exactement mais je m'en inspire !!! ^^
mais ne t'inquiète pas pour le design c'est déjà trouver (regarde sur http://creativ-host.clanfree.net )
Hors ligne