Problème PHP - Messages privés?

Répondre
ouye
le 25/01/2009 à 15:41
ouye
en remettant des $_SESSION['id'] partout, il ne le comprend pas (undefinied index)
LA GLOBULE
le 25/01/2009 à 15:50
LA GLOBULE
Ben le problème, c'est que le systeme fonctionne avec un id (un chiffre) pas une chaine de caractère.

Tu as un id dans ta table membre ? Si oui, c'est lui que tu dois mettre en session. Si non, ben soit tu ajoutes un id à ta table membre, soit tu modifies tout le comment faire pour utiliser des chaines de caractères (cela veut donc dire pas juste modifier le code, mais aussi la structure SQL de tes tables).
ouye
le 25/01/2009 à 15:56
ouye
Ba justement le pb c'est que j'ai bien un id dans la table membre qui est forcément lié à un login.
Mais justement le $_SESSION ['id'] n'est pas reconnu.

Notice: Undefined index: id in C:\Program Files\wamp\www\espace.php on line 72
LA GLOBULE
le 25/01/2009 à 17:35
LA GLOBULE
Au moment où tu logues la personne, il te suffit de mettre cet id en session.
ouye
le 25/01/2009 à 20:33
ouye
<?php
if(isset($_POST) && !empty($_POST['login']) && !empty($_POST['password'])) {
extract($_POST);
$sql = "select password from membres where login='".$login."'";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

$data = mysql_fetch_assoc($req);

if($data['password'] != $password) {
echo '<p>Mauvais login / password. Merci de recommencer</p><p>Vous allez être redirigé dans quelques instants</p>';
exit;
}
else {
session_start();
$_SESSION['login'] = $login;
echo '<p>Vous etes bien logué</p> <p>Vous allez être redirigé dans quelques instants</p>';
header('Refresh: 2; url=/espace.php');
}
?>


Voici mon code, pourrais-tu me donner le bout de code à rajouter stp? Car je ne comprends pas ce que tu as dit en fait
LA GLOBULE
le 26/01/2009 à 01:39
LA GLOBULE
Ben dans la requete SQL, selectionne l'id du membre.
Et au moment ou tu rentres le login en session, rentre aussi cet id dans $_SESSION['id'].
ouye
le 26/01/2009 à 10:24
ouye
Ok, donc j'ai bien fais cque tu m'as dis, malheureuement, toujours rien aucun message n'apparait.

Dans le lire.php?id_message=2 par exemple, voici la requète SQL qui s'affiche :
SELECT titre, date, message, membres.login as expediteur FROM messages, membres WHERE id_destinataire="" AND id_expediteur=membres.id AND messages.id="2" Vous avez aucun message.

La requète à l'air d'etre ok je ne vois pas ce qui cloche mais ca ne marche pas
ouye
le 26/01/2009 à 10:35
ouye
<?php
if(isset($_POST) && !empty($_POST['login']) && !empty($_POST['password'])) {
extract($_POST);
// on recupère le password de la table qui correspond au login du visiteur
$sql = "select password, id from membres where login='".$login."'";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

$data = mysql_fetch_assoc($req);

if($data['password'] != $password) {
echo '<p>Mauvais login / password. Merci de recommencer</p><p>Vous allez être redirigé dans quelques instants</p>';
header('Refresh: 2; url=/index.php');
exit;
}
else {
session_start();
$_SESSION['login'] = $login;
$_SESSION['id'] = $id;

echo '<p>Vous etes bien logué</p> <p>Vous allez être redirigé dans quelques instants</p>';
header('Refresh: 2; url=/espace.php');
?>


Voici mon nouveau bout de code et il dit ne pas connaitre la variable id (undefinied variable). J'ai une erreur à ce niveau : $_SESSION['id'] = $id;
LA GLOBULE
le 26/01/2009 à 11:44
LA GLOBULE
Ben regarde ton code.
$id n'existe pas : tu ne l'as défini nulle part.

Ton id, tu l'as dans $data['id'].
Répondre
LoadingChargement en cours