PDA

Voir la version complète : Identification php


Coldfusion
01/03/2004, 11h43
Bonjour,

Suite à ce thread (http://forum.vbulletin-fr.org/showthread.php?t=5227) , j'avances j'avances mais j'ai encore besoin d'un petit peu d'aide

Je veut, via ce formulaire, interroger la base et si c ok, alors ca retournes sur espaceprive.php. Si c pas ok, alors il retournes sur la page4.php pour s'identifier.

Voici mon form présent dans page4.php (un formulaire tout simple)
<form name="form1" method="post" action="page6.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>

et voici le plus important : page6.php qui verifie si le pseudo mis dans le form correspond à celui dans la DB, et idem pour le pass.

<?php

$pseudo=$_POST['pseudo'];
$mdp=$_POST['mdp'];

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=mysql_query("SELECT count(userid) as compte FROM $table WHERE pseudo='$pseudo' AND mdp='$mdp' ") or die (mysql_error());

$res=mysql_fetch_array($sql);
$compte=$res['compte'];

if($compte == 0)
{
?>
<script language="Javascript">
alert('Les mots de passe et login ne correspondent pas, recommencez.');
history.back();
</script>
<?
}
else if($compte == 1)
{
?>
<script language="Javascript">
alert('L'identification s'est réalisé avec succès !');
window.location='espaceprive.php';
</script>
<?
}
?>



mais j'ai un probleme, quand je lance tout ça... je tombe sur une page blanche (page6.php)
La connexion à la DB marche puisque avant j'ai eut des messages d'erreur que j'ai réparé.
Alors que quand je met un login et un pass qui n'est pas présent dans la DB là il me met le message d'erreur.
En clair, pourquoi ma redirection marche pas ? Est-ce un probleme avant dans mon code ?

Merci de m'eclairer

Pitchoune
01/03/2004, 12h12
Je vois pas l'intérêt de l'utilisation d'un COUNT dans la requête :)

Coldfusion
01/03/2004, 12h15
je pourrais pas te dire... on m'a conseillé ce code
Tout à l'air de marche puisque je tombe sur une page blanche non ? On m'a conseillé de faire un header au lieu du javascript en bas pour rediriger

ça donne

{
header("location: http://www.xxx.com/espaceprive.php");
exit();
}

Coldfusion
01/03/2004, 12h16
mais maintenant j'ai un message d'erreur à la ligne exit()

c'est dur ce php quand meme

Pitchoune
01/03/2004, 12h18
window.location ou header, ça a la même utilisation :)

Pour la requête, SELECT * FROM $table WHERE pseudo ='$pseudo' AND mdp='$mdp'

Pitchoune
01/03/2004, 12h48
Essaye de voir ça pour ta page6 :

<?php

$pseudo=$_POST['pseudo'];
$mdp=$_POST['mdp'];

if((empty($_POST['pseudo'])) || (empty($_POST['mdp'])))
{
?>
<script language="Javascript">
alert('Un des champs est vide, Veuillez revenir au formulaire d\'identification.');
history.back();
</script>
<?php
}
else
{

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=mysql_query("SELECT count(userid) as compte FROM $table WHERE pseudo='$pseudo' AND mdp='$mdp'") OR DIE(mysql_error());
$res=mysql_fetch_array($sql);
$compte=$res['compte'];
if($compte == 0)
{
?>
<script language="Javascript">
alert('Les mots de passe et login ne correspondent pas, recommencez.');
history.back();
</script>
<?php
}
else if($compte == 1)
{
?>
<script language="Javascript">
alert('L\'identification s\'est réalisé avec succès !');
window.location='espaceprive.php';
</script>
<?php
}
}
?>

:)

Coldfusion
01/03/2004, 13h14
erreur ici maintenant : ligne 18 >> je le redit...le php n'est pas une science exacte ! Grrr

require('_connexion.php');

Pitchoune
01/03/2004, 13h15
Prends la page directement, doit y avoir une erreur quand tu copies le texte :)

Coldfusion
01/03/2004, 18h27
merci pitchoune !

Heuu j'ai une page blanche
Donc ca doit marcher mais la redir marche pas par contre... je comprends pas pourquoi

Mais..merci encore pour ton aide