Identification php

Répondre
Corbu
le 29/02/2004 à 23:05
Corbu
Bonjour,

je cherche de l'aide partout sur le web, j'espere qu'ici je trouverait mon bonheur...

J'ai fait un systeme d'enregistrement sur mon site.
Ceci avec les champs : PSEUDO / PASSWORD / EMAIL
J'ai crée une table qui reprends ces infos via phpmyadmin.

Voici ma table :
CREATE TABLE photo2 (
userid INT(10) NOT NULL AUTO_INCREMENT,
pseudo VARCHAR(20) NOT NULL,
mdp VARCHAR(20) NOT NULL,
email VARCHAR(40) NOT NULL,
PRIMARY KEY (userid)
);

En clair,
page1.php est le formulaire d'inscription qui lance vers page2.php
page2.php il y a le script qui insere les données dans la table et qui redirige en javascript vers une troisieme page.
Tout marche donc nickel de ce coté

Mon probleme maintenant est que les gens, chaque jour, se réinscrivent pour entrer dans la partie privée.
J'aimerais donc faire un systeme d'identification avec les champs : PSEUDO / PASSWORD
Si ces champs correspondent à ce qu'ils ont mis quand ils se sont enregistrés, alors ok passe en partie privée sinon recommence.

J'arrive pas à faire ca...

Voici mon formulaire d'identification :
<form name="form1" method="post" action="identification.php">
<table width="40%" border="0" align="left">
<tr>
<td><strong><font size="2" face="Arial, Helvetica, sans-serif">Nom</font></strong></td>
<td><input type="text" name="pseudo"></td>
</tr>
<tr>
<td><strong><font size="2" face="Arial, Helvetica, sans-serif">Mot de passe</font></strong></td>
<td><input type="text" name="password"></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input type="submit" name="Submit" value="Valider"></td>
</tr>
</table>
</form>

et la page identification.php .. qui a mon avis commence par :

require("_connexion.php");

function identification($login,$pass)
{

$db = @mysql_connect("$dbhost", "$dbuser", "$dbpass") OR DIE("Erreur : la base de donnees n'existe pas.");
@mysql_select_db("$dbbase",$db) OR DIE("Erreur : la base de donnÈes n'est pas accessible.")

mais la suite ???

Merci de votre aide
Corbu
le 29/02/2004 à 23:20
Corbu
super ton exemple !
Sauf que dans cette partie :

<?
// On définit un login et un mot de passe de base pour tester notre exemple. Cependant, vous pouvez très bien interroger votre base de données afin de savoir si le visiteur qui se connecte est bien membre de votre site
$login_valide = "moi";
$pwd_valide = "lemien";

// on teste si nos variables sont définies
if (isset($_POST['login']) && isset($_POST['pwd'])) {

// on vérifie les informations du formulaire, à savoir si le pseudo saisi est bien un pseudo autorisé, de même pour le mot de passe
if ($login == $_POST['login'] && $pwd == $_POST['pwd']) {
// dans ce cas, tout est ok, on peut démarrer notre session

// on la démarre :)
session_start ();
// on enregistre les paramètres de notre visiteur comme variables de session ($login et $pwd) (notez bien que l'on utilise pas le $ pour enregistrer ces variables)
$_SESSION['login'] = $_POST['login'];
$_SESSION['pwd'] = $_POST['pwd'];

// on redirige notre visiteur vers une page de notre section membre
header ('location: page_membre.php');
}
else {
// Le visiteur n'a pas été reconnu comme étant membre de notre site. On utilise alors un petit javascript lui signalant ce fait
echo '<body onLoad="alert(\'Membre non reconnu...\')">';
// puis on le redirige vers la page d'accueil
echo '<meta http-equiv="refresh" content="0;URL=index.htm">';
}
else {
echo 'Les variables du formulaire ne sont pas déclarées.';
}
?>

et bien... il ne va pas rechercher dans une base de donnée le nom et le mot de passe... et c'est ça qui m'interesse !!

Merci de ton aide
Meeper
le 29/02/2004 à 23:28
Meeper
oui c'est vrai pour l'exemple mais a la place du morceau ou le pass et le login est defini la tu lance une requete qui scanne dans ta table les pass et login et tu fais un test pour voir si le pass et login entre sont ok et si oui tu redirige genre cecimais que tu dois ameliorer
Corbu
le 29/02/2004 à 23:53
Corbu
meeper , merci beaucoup !
Je ne connaissait pas les "wall"

Plus serieusement... je suis plus nul que tu ne le croit en php
Je comprends pas ce fichier là.

Peut-tu m'expliquer plus ou sinon plus le parfaire ?

Deja je comprends pas l'include, n'était-ce pas : requiere _connexion.php ?

...

Merci d'avance
Meeper
le 01/03/2004 à 00:05
Meeper
ben dans le fichier include je met cela
$dbname ='le nom de ta base';
$hostname='localhost';// moi je suis en local
$username='root';
$password='*****';
$id_link =mysql_connect($hostname,$username,$password);
mysql_select_db ('le nom de ta base', $id_link);

[code]
tu peux aussi utiliser requiere
moi je fais ainsi mais c'est pas un obligation
quand je dis que le script est à ameliorer c'est parceque moi je suis pas une bete non plus en php j'apprend aussi
Meeper
le 01/03/2004 à 00:06
Meeper
oupssss
$dbname ='le nom de ta base';
$hostname='localhost';// moi je suis en local
$username='root';
$password='*****';
$id_link =mysql_connect($hostname,$username,$password);
mysql_select_db ('le nom de ta base', $id_link);

voila c'set mieux ainsi
Corbu
le 01/03/2004 à 10:20
Corbu
bon j'avances j'avances...
Vraiment merci pour ton aide qui me permet de ne pas bloquer sur le 1er point

Donc j'ai un probleme :
Voici mon formulaire (page4.php)

<form name="form1" method="post" action="page5.php">
<table width="40%" border="0" align="left">
<tr>
<td><strong><font size="2" face="Arial, Helvetica, sans-serif">Nom</font></strong></td>
<td><input type="text" name="pseudo"></td>
</tr>
<tr>
<td><strong><font size="2" face="Arial, Helvetica, sans-serif">Mot de passe</font></strong></td>
<td><input type="text" name="mdp"></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input type="submit" name="Submit" value="Valider"></td>
</tr>
</table>
</form>
Corbu
le 01/03/2004 à 10:21
Corbu
bon j'avances j'avances...
Vraiment merci pour ton aide qui me permet de ne pas bloquer sur le 1er point

Donc j'ai un probleme :
voici mon script (qui vient de toi et que j'ai modifié)

<?
require("_connexion.php");

$db = @mysql_connect("$dbhost", "$dbuser", "$dbpass") OR DIE("Erreur : la base de données n'existe pas.");
@mysql_select_db("$dbbase",$db) OR DIE("Erreur : la base de données n'est pas accessible.");
$sql = 'SELECT pseudo,mdp from session WHERE pseudo="'.$pseudo.'" AND mdp="'.$mdp.'"';
$req=mysql_query($sql)or die('erreur sql!<br>'.$sql.'<br>'.mysql_error());

$data = mysql_fetch_array($req);

$log_valid =$data['pseudo'];
$pwd_valid =$data['mdp'];

if($pseudo == $log_valid && $mdp == $pwd_valid)
{

session_start();
session_register("pseudo");
session_register("mdp");
header('location:page4.php');
}
if($pseudo == "" || $mdp == "")

{ session_start ();
// On détruit les variables de notre session
session_unset ();
// On détruit notre session
session_destroy ();
header ('location: "page4.php");
}

else
{
echo'<body onLoad ="alert(\'Mauvais login ou mot depasse!\')">';
echo'<script language="javascript">parent.location.href="page4.php";</script>';
}
mysql_free_result($req);
mysql_close();
?>

Voila, j'ai quand je valide le formulaire j'ai un probleme à la ligne 11 qui est celle-là :
$log_valid =$data['pseudo'];

Comment cela ce fait-il ?

2eme truc, j'ai mis "pseudo" et 'mdp' à chaque fois. C'est ce qui est dans ma table, et c'est ce qui est dans mon formulaire page4.php.

J'attends ta réponse avec impatience...

MErci
Répondre
LoadingChargement en cours