Version complète: sur le forum Webmaster Hub : SESSION qui ne se créer pas et messagerie qui enregistre 0
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
schats
bonjour

j'ai des gros problème avec mes script il ne veule pas réagir comme je veut
le code
CODE
<?php
session_start();
mysql_connect("localhost","*****","******");
mysql_select_db("schats");
if(!empty($_SESSION['logged']) || $_SESSION['logged'] == false)
{

if(!empty($_POST) ) // le form a été soumis
{
// servira à enregistrer les messages pour les erreurs rencontrées
$_POST = array_map('trim', $_POST);

$erreur = array();

$pseudo = mysql_real_escape_string($_POST['pseudo']);
$mdp = mysql_real_escape_string($_POST['mdp']);

if(empty($pseudo))
{
$erreur[] = 'veillez mettre un pseudo';

$sql = mysql_query("SELECT COUNT(*) AS nb_pseudo FROM membre WHERE pseudo = '".$pseudo."'")or die (mysql_error());

} //Si le pseudo existe.
elseif ($sql['nb_pseudo'] == 1)
{
$erreur[] = ' aucun pseudo n\'existe ';

$pod = mysql_query("SELECT id, pseudo, mdp, confirmation FROM membre where pseudo = '".$pseudo."'")or die (mysql_error());
}
elseif(empty($mdp))
{
$erreur[] = ' aucun mot de passe';


$mdphap = md5(sha1($mdp));
}
elseif($mdphap = $pod['mdp'])
{
$erreur[] = ' mot de passe non valide';
}
elseif($pod['confirmation'] == 1)
{
$erreur[] = 'ce pseudo n\'est pas confirmer';
}
if(empty($erreur))
{
mysql_query("UPDATE membre SET statue ='1' WHERE id = '".$pod['id']."'") OR die(mysql_error());
$_SESSION['logged'] = true ;
$_SESSION['pseudo'] = $pseudo;
$_SESSION['id'] = $pod['id'];

header("location: http://spouts.goldzoneweb.info/espace_memb...bre.php");
}
}











?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>index --> connection</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" media="screen" title="Simple" href="toutetrien.css" />
</head>
<body>









<?php include("menu.php"); ?>




<div id="corps">
<p>bonjour<br /></p>
<p> pour vous connecter veullez renplir le formulaire pour vous connecter</p>
<form method="post" action="connection.php">
pseudo<input type="text" name="pseudo">
mot de passe<input type="password" name="mdp">

<input type="submit" value="entrez"></form>
<?php
if( !empty($erreur) ) // Donc le formulaire a été envoyé et au moins une erreur a été rencontrée
{
// on affiche les erreurs
foreach( $erreur as $valeur )
echo $valeur . '<br>';
}

?>



</div>




<div id="pied_de_page">

<?php
include('pied.php');
?>



</div>


</body>
</html>
<?php
}
else
{
echo '<meta http-equiv="Refresh" content="0;URL=/espace_membres/index_membre.php">';
}
?>

ici en fait la sessions $_SESSION['id'] ne veut pas prendre la valeur du pseudo

le second problème est un peu près pareil smile.gif
CODE
<?php
session_start();


if( !isset($_SESSION['logged']) || $_SESSION['logged'] === false )
{
exit(header('location: ../index.php'));
}
$pseudo = $_GET['pseudo'];
$id_envoyeur = $_SESSION['id'];
include("config.inc.php");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>espace membre --> messagerie perso </title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" type="text/css" media="screen" title="Simple" href="toutetrien.css" />
</head>


<body>

<?php include("menu.php");
?>
<div id="corps">

<form method="post">
<p>Pseudo : <input type="text" name="pseudo_recepteur" value=<?php echo $pseudo;?>></p>
<p>titre du message : <input type="text" name="titre"></p>
<p>Message : <br /><textarea name="commentaire" rows="4" cols="30"></textarea></p>
<p><input type="submit" value="valider"></p>
</form>
<?php
mysql_connect("localhost","*****","***************");
mysql_select_db("schats");

if(!empty($_POST) ) // le form a été soumis
{
// servira à enregistrer les messages pour les erreurs rencontrées
$_POST = array_map('trim', $_POST);

$erreur = array();
$pseudo_recepteur = mysql_real_escape_string($_POST['pseudo_recepteur']);
$titre = mysql_real_escape_string($_POST['titre']);
$message = mysql_real_escape_string($_POST['commentaire']);

if(empty($_POST['pseudo_recepteur'])) {
$erreur[] = 'veullez mettre un pseudo';
}
else
{
$sdz = mysql_query("SELECT * FROM membre WHERE pseudo ='".$pseudo_recepteur."'")or die (mysql_error());//ligne 49
}
if(mysql_num_rows($sdz) <= 0)
{
$erreur[] = ' ben le pseudo demander n\'existe pas';
}
elseif(empty($titre))//ligne 55
{
$erreur[] = ' merci de mettre un titre';
}
elseif(empty($message))
{
$erreur[] = 'merci de mettez un texte';
}
if(empty($erreur))
{
$id_recepteur = $sdz['id'];

mysql_query("INSERT INTO mp VALUES('','".$titre."','".$message."','".$id_recepteur."','".$id_envoyeur."')")or die (mysql_error());

}
}
if( !empty($erreur) ) // Donc le formulaire a été envoyé et au moins une erreur a été rencontrée
{
// on affiche les erreurs
foreach( $erreur as $valeur )
echo $valeur . '<br>';
}

{
echo ' l\'id envoyeur '.$id_envoyeur;
echo 'l\'id recepteur'.$id_recepteur;
}
?>

<a href="index.php">page d'acceuil</a>
</div>





<div id="pied_de_page">
<?php
include("pied.php");
?>
</div>

</body>
</html>


ici id_envoyeur et id_recepteur = 0 je ne comprend pas pourquoi ???

merci de me répondre

schats
Harry_20
Ca ressemble à un problème classique des sessions blush.gif

Je vois 2 possibilités :

- soit la page doit être rechargée après le session_start() pour que la session soit effective
- ou alors pour qu'une variable de session soit créée, il faut utiliser session_register()

Ca peut encore être différent aussi selon que tu sois en local ou sur serveur APACHE whistling.gif

J'espère que ça pourra te venir en aide smile.gif
schats
alors
Je ne crois pas que la page soit recharger car les deux premières sessions marche. :s il y a juste celle la qui ne veut pas se créer :s. euh c'est quoi session_register() . je vais regarder sur la doc .

Je suis sur appache et pas en local :s.
Harry_20
session_register() est une fonction qui permet de créer une variable de session si ça ne fonctionne pas par la méthode classique.

Essaie avec cette méthode-là, sinon à mon avis le problème vient d'ailleurs unsure.gif
schats
euh ouai en faite ce que je pence surtout c'est a cause de la requette
CODE
$pod = mysql_query("SELECT  id, pseudo, mdp, confirmation FROM membre where pseudo = '".$pseudo."'")or die (mysql_error());


puisque même ici ca ne marche pas
CODE
mysql_query("UPDATE membre SET statue ='1' WHERE id = '".$id."'") OR die(mysql_error());


mais aucunne erreur n'est afficher
schats
bonjour

j'ai tester la première requette elle marche smile.gif ( avec phpadmin ). le reste j'i arrive pas smile.gif je suis maudit smile.gif
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.