Probléme sur les sessions en PHP
idrichoue
Messages postés
161
Statut
Membre
-
idrichoue Messages postés 161 Statut Membre -
idrichoue Messages postés 161 Statut Membre -
Bonjour tout le monde, je suis nouveau en PHP et j'ai des probléme pour la connection à ma session. Au fait je veux créer un formulaire qui permet d'identifier un groupe d'utilisateur bien determiné à savoir identite qui est une table sur la base de données qui se nomme personnel mais à chaque fois que je me logue il n'ya pas de verification sur l'utilisateur et meme si on remplit pas les champs et que je click sur connexion j'ai automatiquement la page login.php qui est sensé géré la session. Les champs de la table identite sont nom, prenom, pseudo et motpasse. Mais je crois aussi que c'est la facon dont j'ai crée la BD qui pose probléme car j'ai essayé avec dreamweaver et il m'indique que la BD ne contient pas de table. Voila le script php de la session :
<?php
$login=$_POST['login'];
$pass=$_POST['password'];
$con = mysql_connect('localhost','root','');
mysql_select_db('personnel', $con);
$sql = "SELECT * FROM identite WHERE pseudo=$login and motpasse=$pass";
$res = mysql_query($sql);
$exist = ($res);
if(!$exist)
{
echo "<center>Veuillez vérifier vos données</center>";
}
else {
session_start();
session_register("login");
echo "<center>Bienvenue sur votre espace membre : $login</center>";
$sess_nom = session_name();
$sess_id = session_id();
echo "Le nom de la session est :<br> ";
echo $sess_nom." et l'Id est : ".$sess_id."";
}
?>
<html>
<body>
<p><STRONG><H1><U><font face="comic sans ms"><center>INNOVA</center></font></U></H1></STRONG><br></p>
<table width="1000" bgcolor="#0a0f0b" CELLSPACING="0" BORDER="1">
<TR>
<TD><a href="equipement.html"><STRONG><CENTER>Mise à jour équipements</CENTER></STRONG></a></td>
<TD><a href="logiciels.html"><STRONG><CENTER>::Mise à jour Logiciels::</CENTER></STRONG></a></td>
<TD><a href="personnels.html"><STRONG><CENTER>::Consultations/Editions::</CENTER></STRONG></a></td>
</TR>
</TABLE>
</TABLE>
</body>
</html>
<?php
$login=$_POST['login'];
$pass=$_POST['password'];
$con = mysql_connect('localhost','root','');
mysql_select_db('personnel', $con);
$sql = "SELECT * FROM identite WHERE pseudo=$login and motpasse=$pass";
$res = mysql_query($sql);
$exist = ($res);
if(!$exist)
{
echo "<center>Veuillez vérifier vos données</center>";
}
else {
session_start();
session_register("login");
echo "<center>Bienvenue sur votre espace membre : $login</center>";
$sess_nom = session_name();
$sess_id = session_id();
echo "Le nom de la session est :<br> ";
echo $sess_nom." et l'Id est : ".$sess_id."";
}
?>
<html>
<body>
<p><STRONG><H1><U><font face="comic sans ms"><center>INNOVA</center></font></U></H1></STRONG><br></p>
<table width="1000" bgcolor="#0a0f0b" CELLSPACING="0" BORDER="1">
<TR>
<TD><a href="equipement.html"><STRONG><CENTER>Mise à jour équipements</CENTER></STRONG></a></td>
<TD><a href="logiciels.html"><STRONG><CENTER>::Mise à jour Logiciels::</CENTER></STRONG></a></td>
<TD><a href="personnels.html"><STRONG><CENTER>::Consultations/Editions::</CENTER></STRONG></a></td>
</TR>
</TABLE>
</TABLE>
</body>
</html>
A voir également:
- Probléme sur les sessions en PHP
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Php alert ✓ - Forum PHP
- Alert PHP - Forum PHP
- Retour a la ligne php - Forum Webmastering
17 réponses
^^
J'ai regardé ton code te y' a beaucoup de fonction php que je connais pas.
Mais, le session_start() doit être mis en tout début de page, avant tout autre code php... Sinon, ça marche pas.
J'ai regardé ton code te y' a beaucoup de fonction php que je connais pas.
Mais, le session_start() doit être mis en tout début de page, avant tout autre code php... Sinon, ça marche pas.
ok donc je dois mettre la session start ou effectivement avant
$con = mysql_connect('localhost','root','');
mysql_select_db('personnel', $con);
ou bien c'est aprés et pour les fonctions que tu connais pas c'est lesquelles merci d'avance
$con = mysql_connect('localhost','root','');
mysql_select_db('personnel', $con);
ou bien c'est aprés et pour les fonctions que tu connais pas c'est lesquelles merci d'avance
bonsoir , essaye comme ça
voila j'ai pas testé mais ça devrais le faire.
session start doit toujours etre placé au debut du code avant tout autre chose
pense a crypter tes mot de passe en md5 pour plus de securité
et pour les bases de données n'utilise pas dreamweaver,mais phpmyadmin par exemple
en esperant t'avoir eclairé un pezu
@+
<?php
session_start();
if(isset($_POST['login']) && isset($_POST['password'])) // on verifie qu'il existe bien des valeur post
{
$login=$_POST['login'];
$pass=$_POST['password'];
$con = mysql_connect('localhost','root','');
mysql_select_db('personnel', $con);
$sql = "SELECT pseudo,motpasse FROM identite WHERE pseudo=$login and motpasse=$pass"; //je selectionne uniquement le champ pseudo et motde passe
$res = mysql_query($sql);
list($pseudo, $psw)=mysql_fetch_array($res); //je place le resultat de la requete dans un tableau,comme tu faisais c'etait toujours obligatoirement bon quelquesoit les valeurs
if($pseudo==$login && $psw==$pass) // si le resultat est strictement egale au valeurs pos c'est ok
{
echo "<center>Bienvenue sur votre espace membre : $login</center>";
//.......
//...
//tu continue l'affichage de ta page
}
}
else
{
echo "<center>Veuillez vérifier vos données</center>";
le resultat de if($pseudo==$login && $psw==$pass) est pas bon donc echec d'authentification
}
?>
voila j'ai pas testé mais ça devrais le faire.
session start doit toujours etre placé au debut du code avant tout autre chose
pense a crypter tes mot de passe en md5 pour plus de securité
et pour les bases de données n'utilise pas dreamweaver,mais phpmyadmin par exemple
en esperant t'avoir eclairé un pezu
@+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
J'ai essayé avec ton code mais j'ai une erreur à la ligne 13 :
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\wamp\www\AGL\ccm.php on line 13
Encore merci Lewis34
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\wamp\www\AGL\ccm.php on line 13
Encore merci Lewis34
ok alors essie de remplacer list($pseudo, $psw)=mysql_fetch_array($res); par
$row=mysql_fetch_array($res);
$pseudo=$row['pseudo'];
$pasw=$row['motpasse'];
modifie egalament ta requete en remettant *
$sql = "SELECT * FROM identite WHERE pseudo='".$login."' and motpasse='".$pass."' ";
$row=mysql_fetch_array($res);
$pseudo=$row['pseudo'];
$pasw=$row['motpasse'];
modifie egalament ta requete en remettant *
$sql = "SELECT * FROM identite WHERE pseudo='".$login."' and motpasse='".$pass."' ";
Ca marche mais le seul probléme maintenant est que meme si je remplit pas les champs et que je click sur connexion j'accéde à la page de session. Je crois que j'ai un probléme de base de données avec mon wamp serveur.
Excusez moi du retard voila le nouveau code :
<?php
session_start();
if(isset($_POST['login']) && isset($_POST['password'])) // on verifie qu'il existe bien des valeur post
{
$login=$_POST['login'];
$pass=$_POST['password'];
$con = mysql_connect('localhost','root','');
mysql_select_db('personnel', $con);
$sql = "SELECT * FROM identite WHERE pseudo='".$login."' and motpasse='".$pass."' "; //je selectionne uniquement le champ pseudo et motde passe
$res = mysql_query($sql);
$row=mysql_fetch_array($res);
$pseudo=$row['pseudo'];
$pasw=$row['motpasse'];
if($pseudo==$login && $psw==$pass) // si le resultat est strictement egale au valeurs pos c'est ok
{
echo "<center>Bienvenue sur votre espace membre : $login</center>";
//.......
//...
//tu continue l'affichage de ta page
}
}
else
{
echo "<center>Veuillez vérifier vos données</center>";
}
?>
<?php
session_start();
if(isset($_POST['login']) && isset($_POST['password'])) // on verifie qu'il existe bien des valeur post
{
$login=$_POST['login'];
$pass=$_POST['password'];
$con = mysql_connect('localhost','root','');
mysql_select_db('personnel', $con);
$sql = "SELECT * FROM identite WHERE pseudo='".$login."' and motpasse='".$pass."' "; //je selectionne uniquement le champ pseudo et motde passe
$res = mysql_query($sql);
$row=mysql_fetch_array($res);
$pseudo=$row['pseudo'];
$pasw=$row['motpasse'];
if($pseudo==$login && $psw==$pass) // si le resultat est strictement egale au valeurs pos c'est ok
{
echo "<center>Bienvenue sur votre espace membre : $login</center>";
//.......
//...
//tu continue l'affichage de ta page
}
}
else
{
echo "<center>Veuillez vérifier vos données</center>";
}
?>
je te file un code que j'ai fait et qui fonctionne tu 'aura plus qu'a l'adapter à ton cas
voila avec ça ca devrais marcher ce code est fonctionnel
@+
session_start();
$origine=$_SERVER['HTTP_REFERER']; // l'adresse d'ou on vient
//******************** recherche dans la table utilisateur
if (empty ($_POST['pseudo']) OR empty($_POST['password']))
{
//si c'est le pseudo
if (empty($_POST['pseudo']))
{
?>
<script language="javascript" type="text/javascript">
alert('Vous n\avez pas saisi votre pseudo');
window.location.replace('la page ou que tu veut qu'il soit redirigé');
</script>
<?PHP
//echo 'Le champ pseudo est vide';
//exit();
}
//si c'est le psw
if (empty($_POST['password']))
{
?>
<script language="javascript" type="text/javascript">
alert('Vous n\avez pas entré de mot de passe');
window.location.replace('la page ou que tu veut qu'il soit redirigé');
</script>
<?PHP
}
}
// attention c'est du mysqli,la syntaxe est legerement # de mysql
$connexion=mysqli_connect('tes param de connexion') or die('connexion impossible au serveur verif php' .mysqli_error());
//les champs sont remplis
$client = htmlspecialchars(addslashes($_POST['pseudo'] ));
//recup de ladresse d'origine
$crypt=md5($_POST['password']); // je crypte le pasw si toi tu ne la pas stocké crypté c'est pas la peine
//je lance la recherche dans la table
$sql = "SELECT Login FROM ita_table WHERE Login='$client' AND Mot_passe='$crypt'" ;
$req = mysqli_query($connexion,$sql) or die('Erreur !<br/>'.$sql.'<br/>'.mysqli_error());
$infomembres = mysqli_fetch_array($req);
$utilisateur=$infomembres['Login'];
//affichage des resultats
if (($utilisateur==$client))
{
// si on obtient une réponse, alors l'utilisateur est un membre
//creation d'un cookie php duree de vie 1 heure accesible depuis partout
setcookie('login', $utilisateur,time()+3600,'/');
$_SESSION['visiteur'] = $utilisateur;
//print_r($_SESSION);
//msg d'erreur
echo 'urlorigine'.$urlorigine.'<br/>';
//redirection vers la page d'origine
//header ('Location:'.$origine);
}
else
{
?>
<style type="text/css">
body {
background-color: #330000;
}
</style>
<table border="0" align="center" bgcolor="#FF6666">
<th> <h4>Désolé ,le pseudo ou le mot de passe sont inconnus.</h4></th>
<tr>
<td><input type="button" id="new_essai" value="Refaire un essai ! " onClick="javascript:history.back()">
<input type="button" id="accueil" value="Retourner à l'accueil..." onClick="javascript:window.location.href='/index.php'" />
</td></tr>
</table>
</div>
<?PHP
}
?>
</body>
</html>
voila avec ça ca devrais marcher ce code est fonctionnel
@+
Ok c'est le code en javascript qui me pose probléme car je l'ai jamais fait, donc je m'y retrouve pas en java.