chardeneamour

  • Signature
    jedasy lova
  • Nombre de sujets
    5
  • Nombre de messages
    31
  • Nombre de commentaires
    Aucun
  • Nombre de news
    Aucune
  • Niveau en PHP
    Débutant

Ses derniers messages sur les forums

chardeneamour
le 13/06/2005 à 18:48
Pb avec les sessions : variable de session inaccessible
Je viens de faire une echo du login et de l'id avant d'afficher les information qui ont été enregistré et je remarque slmt que juste le login est présent et l'iduser que j'ai eu à utiliser n'existe pas. Donc si je comprends bien, elle ne s'est surement pas enregsitrer comme le login, pourtant ils st tt 2 dans la bd .

Voici le bot de code que j'i utiliser pour pouvoir vois mon login et mon mot de passe :
if(!isset($_SESSION['login'])) {
echo 'Vous n\'êtes pas autoriser à acceder à cette zone';
}
else { echo 'le login est:' .$_SESSION['login'] ;
echo "<br>";
echo 'ID est :' .$_SESSION['IDUser'];
}


Mnt s'il y'a une personne qui peut m'epliquer comment c'est possible, merci à elle ! smiley
jedasy lova
chardeneamour
le 13/06/2005 à 18:27
Pb avec les sessions : variable de session inaccessible
Cette variable disparait après que je l'ai fait affiché ! et que je fais appel au formulaire info_personne.html afin de commencer à enregsitrer les informations sur la personne.
Voic le code de login3.php
<? session_start();
include ("connexion_eurocall.php");
$id = MYSQL_CONNECT($host,$user,$pass);
mysql_select_db("$bdd");

if(isset($_POST) && !empty($_POST['login']) && !empty($_POST['pass'])) {
extract($_POST);
// on recupère le password de la table qui correspond au login du visiteur
$sql = "select pass from user where login='".$login."'";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

$data = mysql_fetch_assoc($req);

if($data['pass'] != $pass) {
echo '<p>Mauvais login / password. Merci de recommencer</p>';
include('sinscrire.html'); // On inclus le formulaire d'identification
exit(); }
else {
$data =mysql_fetch_array(mysql_query("SELECT IDUser FROM user WHERE login='$login'"));
$_SESSION['IDUser']=$data['IDUser'];
$_SESSION['login'] = $_POST['login'];
$_SESSION['pass']=$_POST['pass'];
echo 'Vous etes bien logué';
echo 'Votre login est '.$_SESSION['login'].'; et votre mot de pass est '.$_SESSION['pass'].'; et IDUser est '.$_SESSION['IDUser'].'.';

echo '<body onload="alert(\'Membre logué avec succès\')">';
// puis on le redirige vers la page d'accueil
echo '<meta http-equiv="refresh" content="0;URL=info_personne.html">';

}
}
else {
echo '<p>Vous avez oublié de remplir un champ.</p>';
include('Authentification.html'); // On inclut le formulaire d'identification
exit;
}
?>


Après avoir affiché les infomations de la personne en faisant ceci :
echo 'Votre login est '.$_SESSION['login'].'; votre mot de pass est '.$_SESSION['pass'].'; et IDUser est  '.$_SESSION['IDUser'].'.';

ensuite je fais appel au formulaire info_personne.html en faisant ceci :
echo '<meta http-equiv="refresh" content="0;URL=info_personne.html">';

Bien, je présume que c'est à ce niveau là que le contenut de la variable session disparait ? smiley
smiley je ne sais plus quoi faire sincèrement
jedasy lova
chardeneamour
le 13/06/2005 à 17:59
Pb avec les sessions : variable de session inaccessible
Oui il dit qu'il n'existe pas, ms lorsque j'affche les coordonnées de la personne authentifier lors de sa connexion, elle existe vraiment.

Voici le code de la page login3.php qui fait le traitement de la page Authentification.html

<? session_start();
include ("connexion_eurocall.php");
$id = MYSQL_CONNECT($host,$user,$pass);
mysql_select_db("$bdd");

if(isset($_POST) && !empty($_POST['login']) && !empty($_POST['pass'])) {
extract($_POST);
// on recupère le password de la table qui correspond au login du visiteur
$sql = "select pass from user where login='".$login."'";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

$data = mysql_fetch_assoc($req);

if($data['pass'] != $pass) {
echo '<p>Mauvais login / password. Merci de recommencer</p>';
include('sinscrire.html'); // On inclus le formulaire d'identification
exit(); }
else {
$data =mysql_fetch_array(mysql_query("SELECT IDUser FROM user WHERE login='$login'"));
$_SESSION['IDUser']=$data['IDUser'];
$_SESSION['login'] = $_POST['login'];
$_SESSION['pass']=$_POST['pass'];
echo 'Vous etes bien logué';
echo 'Votre login est '.$_SESSION['login'].'; et votre mot de pass est '.$_SESSION['pass'].'; et IDUser est '.$_SESSION['IDUser'].'.';

echo '<body onload="alert(\'Membre logué avec succès\')">';
// puis on le redirige vers la page d'accueil
echo '<meta http-equiv="refresh" content="0;URL=info_personne.html">';

}
}
else {
echo '<p>Vous avez oublié de remplir un champ.</p>';
include('Authentification.html'); // On inclut le formulaire d'identification
exit;
}
?>


Tout y est alors je ne comprends pas pourquoiil n'arrive pas à le retrouver !

Aidez-moi , sinon je vaois tombé malade smiley smiley
jedasy lova
chardeneamour
le 13/06/2005 à 17:29
Pb avec les sessions : variable de session inaccessible
Oui j'ai mis session_start() sur tte les pages qui doivent utiliser les variables sessions et je ne comprends rien de rien.

Voici le code de la page ajout_personne.php
<? 
session_start();
//Création de la variable de session id_utilisateur
$_SESSION['IDUser'] = $IDUser;
/*
si la variable de session login n'existe pas cela siginifie que le visiteur
n'a pas de session ouverte, il n'est donc pas logué ni autorisé à
acceder à l'espace membres
*/
if(!isset($_SESSION['login'])) {
echo 'Vous n\'êtes pas autoriser à acceder à cette zone';
include('login.htm');
exit;
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Document sans titre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<?php
// On commence par récupérer les champs
if(isset($_POST['prenom'])) $prenom=$_POST['prenom'];
else $prenom="";

if(isset($_POST['nom'])) $nom=$_POST['nom'];
else $nom="";

if(isset($_POST['code_sexe'])) $code_sexe=$_POST['code_sexe'];
else $code_sexe="";

if(isset($_POST['nom_JF'])) $nom_JF=$_POST['nom_JF'];
else $nom_JF="";

if(isset($_POST['date_naiss'])) $date_naiss=$_POST['date_naiss'];
else $date_naiss="";

if(isset($_POST['lieu_naiss'])) $lieu_naiss=$_POST['lieu_naiss'];
else $lieu_naiss="";

if(isset($_POST['adr'])) $adr=$_POST['adr'];
else $adr="";

if(isset($_POST['code_pays'])) $code_pays=$_POST['code_pays'];
else $code_pays="";

if(isset($_POST['gsm'])) $gsm=$_POST['gsm'];
else $gsm="";

if(isset($_POST['tel'])) $tel=$_POST['tel'];
else $tel="";

if(isset($_POST['email'])) $email=$_POST['email'];
else $email="" ;

if(isset($_POST['sit_fam'])) $sit_fam=$_POST['sit_fam'];
else $sit_fam="";

if ($_POST['code_sexe'] == "Masculin")
{ $code_sexe= 1; }
else if ($_POST['code_sexe']== "Feminin")
{$code_sexe= 2; }

if ($_POST['code_pays'] == "Congo")
{ $code_pays=242;}
else if
($_POST['code_pays']=="France"){ $code_pays=33; }
else if
($_POST['code_pays']=="Maroc") { $code_pays==212; }

//AFFICHAGE DES DONNEES POUR VOIR SI ELLES EXISTENT

echo "<br> prenom = $prenom <br>nom = $nom <br> nom_JF = $nom_JF <br> code_sexe = $code_sexe<br>
code_pays=$code_pays<br> date_naiss= $date_naiss<br> lieu_naiss = $lieu_naiss<br>
adr = $adr<br> gsm = $gsm<br> tel = $tel<br> email = $email<br> sit_fam = $sit_fam<br>";

// On vérifie si les champs sont vides
if(empty($prenom) OR empty($nom) OR empty($nom_JF) OR empty($code_sexe) OR empty($code_pays) OR empty($date_naiss) OR empty($lieu_naiss) OR empty($adr) OR empty($gsm) OR empty($tel) OR empty($email) OR empty($sit_fam))
{
echo"empty ok";
echo '<font color="red">Attention, seul les champs <b> Nom de Jeune fille </b> et <b>Téléphone</b> peuvent rester vide !</font>';
}
// Aucun champ n'est vide, on peut enregistrer dans la table
else
{
// connexion à la base
include ("connexion_eurocall.php");
$id = MYSQL_CONNECT($host,$user,$pass);
mysql_select_db("$bdd");

// on teste si le bouton submit à été pressé par l'utilisateur puis
// on écrit la requête sql pour inséré les données dans la table personne
if (isset($_POST['Submit']))
{
$sql ="INSERT INTO personne(nom, prenom,code_sexe,code_pays, nom_JF, date_naiss, lieu_naiss, adr,gsm, tel, email, sit_fam)
VALUES ('$nom', '$prenom', '$code_sexe', '$code_pays','$nom_JF', '$date_naiss','$lieu_naiss', '$adr', '$gsm','$tel', '$email', '$sit_fam')";
$n_pers = mysql_insert_id();

// on insère les informations du formulaire dans la table
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

// on affiche le résultat pour le visiteur
echo 'Vos infos ont été bel et bien ajoutées.';
// echo '<meta http-equiv="refresh" content="0;URL=formation.html">';
}
// déconnexion à la base
mysql_close();
}
?>
</body>
</html>


Le comble c'est que j'ai mon enregsitrement qui se passe ms, j'ai ceci comme message :
Notice: Undefined variable: IDUser in c:\program files\easyphp1-8\www\site_recrutemnt\ajout_personne.php on line 4

prenom = eshana
nom = niolaud
nom_JF = niolaud
code_sexe = 2
code_pays=242
date_naiss= 07/04/1982
lieu_naiss = Brazzaville
adr = 904 rue moulenda
gsm = 6658987
tel = 6647889
email = darelleducoeur@yahoo.fr
sit_fam = célibataire
Vos infos ont été bel et bien ajoutées.


La ligne 4 c'est celle-ci :
$_SESSION['IDUser'] = $IDUser;

Bien, alors je ne comprends plus rien à moisn ce qu'il faudrait que je fasse des modification sous easyphp ou je ne sais trop quoi ! smiley

Je présume que je vais m'affoler dans peu de tps avec cette histoire !
jedasy lova
chardeneamour
le 13/06/2005 à 17:16
Pb avec les sessions : variable de session inaccessible
L'id_utilisateur que je vais écrire là c'et le IDUser qui a été crée lors d e sa connexion à la bd ou c'est le numéro de la personne que j'ai attribuer dans ma table et qui est auto incrémental.
Voici la structure de la table user :
Structure de la table `user`
--

CREATE TABLE `user` (
`IDUser` int(11) NOT NULL auto_increment,
`nom` varchar(255) NOT NULL default '',
`prenom` varchar(255) NOT NULL default '',
`login` varchar(20) NOT NULL default '',
`pass` varchar(20) NOT NULL default '',
PRIMARY KEY (`IDUser`),
KEY `IDUser` (`IDUser`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='Table d''authentification des utilisateurs' AUTO_INCREMENT=3 ;

--
-- Contenu de la table `user`
--

INSERT INTO `user` VALUES (1, 'Ngami', 'Chardène Jedasy', 'dasy', 'jess');
INSERT INTO `user` VALUES (2, 'Loukouamou', 'Jeanne Esther', 'jeanne', 'chardene');

Et la structure de la table personne ets :
Structure de la table `personne`
--

CREATE TABLE `personne` (
`n_pers` tinyint(11) NOT NULL auto_increment,
`code_pays` int(11) NOT NULL default '0',
`code_sexe` int(11) NOT NULL default '0',
`nom` varchar(255) NOT NULL default '',
`prenom` varchar(255) NOT NULL default '',
`nom_JF` varchar(255) NOT NULL default '',
`date_naiss` varchar(255) NOT NULL default '',
`lieu_naiss` varchar(255) NOT NULL default '',
`adr` varchar(255) NOT NULL default '',
`gsm` int(15) NOT NULL default '0',
`tel` int(15) NOT NULL default '0',
`email` varchar(255) NOT NULL default '',
`sit_fam` varchar(255) NOT NULL default '',
PRIMARY KEY (`n_pers`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 PACK_KEYS=0 COMMENT='Table personne' AUTO_INCREMENT=4 ;


Merci de me préciser, pcq j'ai déjà eu à faire les 2 cas et il me mettait trjs le même message comme quoi il ne reconnaissait pas la variable en dessous de session_start();

Ame charitable merci de m'aider smiley
jedasy lova
chardeneamour
le 13/06/2005 à 13:43
Pb avec les sessions : variable de session inaccessible
Oui j'ai mis la requete entre "" et il m'a affiché un message comme quoi j'étais connecté.

J'aurais de ce pas besoin d' lid de l'utilisateur pour pouvoir circuler dans ttes les pages. Comment je fais alors?
Et merci pour votre aide ! j'ai une partie de mon poids qui est partie
jedasy lova
chardeneamour
le 13/06/2005 à 12:29
Pb avec les sessions : variable de session inaccessible
Je viens de faire une petite modification et j'ai ce message à la ligne 21:
Voici le code
<? session_start();
include ("connexion_eurocall.php");
$id = MYSQL_CONNECT($host,$user,$pass);
mysql_select_db("$bdd");

if(isset($_POST) && !empty($_POST['login']) && !empty($_POST['pass'])) {
extract($_POST);
// on recupère le password de la table qui correspond au login du visiteur
$sql = "select pass from user where login='".$login."'";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

$data = mysql_fetch_assoc($req);

if($data['pass'] != $pass) {
echo '<p>Mauvais login / password. Merci de recommencer</p>';
include('sinscrire.html'); // On inclus le formulaire d'identification
exit; }
else {
session_start();
$data=mysql_fetch_array(mysql_query(SELECT IDUser FROM user WHERE login='$login'));
$_SESSION['IDUser']=$data['IDuser'];
$_SESSION['login'] = $login;

echo 'Vous etes bien logué';
// echo '<body onload="alert(\'Membre logué avec succès\')">';
// puis on le redirige vers la page d'accueil
// echo '<meta http-equiv="refresh" content="0;URL=info_personne.html">';
// ici vous pouvez afficher un lien pour renvoyer
// vers la page d'accueil de votre espace membres
}
}
else {
echo '<p>Vous avez oublié de remplir un champ.</p>';
include('Authentification.html'); // On inclut le formulaire d'identification
exit;
}
?>


Voici la ligne 21
$data=mysql_fetch_array(mysql_query(SELECT IDUser FROM user WHERE login='$login'));


Merci de m'aidersmiley
jedasy lova
LoadingChargement en cours