Mysql+php login [Résolu/Fermé]

Signaler
Messages postés
3
Date d'inscription
mardi 7 septembre 2010
Statut
Membre
Dernière intervention
14 septembre 2010
-
rlkompress
Messages postés
3
Date d'inscription
mardi 7 septembre 2010
Statut
Membre
Dernière intervention
14 septembre 2010
-
Bonjour, j'ai des petits souci avec mon code php+mysql quelqun peut maidé la.
bon voila le problem je dois normalement cree un code ou l'utilisateur aura l'ocasion d'entre son nom et son mot de pass
bah voila comment le l fais
index.php

<?php
switch($_GET['error'])
{
case 1:
print "<div style='padding:5px 3px; border:1px solid red; text-align:center; width:300px'>Please specify the username</div>";
break;

case 2:
print "<div style='padding:5px 3px; border:1px solid red; text-align:center; width:300px'>Please specify the password</div>";
break;


case 3:
print "<div style='padding:5px 3px; border:1px solid green; text-align:center; width:300px'>Thank you your account is now created.</div>";
break;


}

?>




<html>
<head>
<title>welcome to chrishna company of electricity</title>
</head>
<body>

<form method="post" action="script/login.php">
<table cellpadding="3" cellspacing="0" align="center">
<tr>
<td>Username:</td>
<td><input type="text" name="UserName" value="<?php print $_GET['userName']?>">
</td>
</tr>
<tr>
<td>Password:</td>
<td><input type="text" name="UserName">
</td>
</tr>
<tr>
<td><input type="submit" value="Login">
</td>
</tr>
</table>
</form>

</body>


</html>
et j'ai donc cree un dossier au nom de script ou l'on retruve
login.php
<?php
$username = $_POST['username'];
if(empty($_POST['username']))
{
header('location:../index.php?error=1');
}
elseif(empty($_POST['password']) && !empty($_POST['username']))
{
header("location:../index.php?error=2&username=$username");
}
else{
require_once "dbConnection.php";
$username = $_POST['username'];
$pass = md5($_POST['password']);

$dbh = new PDO($dsn, $user, $password);

try
{
//query
$sql = "INSERT INTO users(username, password) VALUES('$username', '$pass')";

$stmt = $dbh -> prepare($sql);

if($stmt -> execute())
{
header('location:../index.php?error=3');
}
}
catch(PDOException $e)
{
print 'error caught '. $e-> getMessage();
print 'At the line '. $e-> getLine();
}
}
?>

et
dbconnection.php
<?php
$dsn = 'mysql:host=localhost; dbname=login';
$user = 'root';
$password = 'jesus';
?>

voila quelqun peut maidé à comprendre pour quoi sa roule pas svp!!!!



6 réponses

Messages postés
82
Date d'inscription
jeudi 20 septembre 2007
Statut
Membre
Dernière intervention
8 juillet 2011
5
Sois plus clair: quel message d'erreur est affiché lorsque t'exécute?
Bonjour,

Le code que tu as fourni n'est pas correct dans la mesure où les instructions header(...); doivent être placées de préférence en début de script (les premières lignes de codes de la page). L'explication est qu'on ne peut pas modifier l'entête HTTP une fois du contenu envoyé (ici, l'inclusion, à l'aide de require_once, du fichier dbConnection.php interdit la modification de l'entête HTTP pour le code qui suit).

Plus de détails sur http://fr.php.net/manual/fr/function.header.php

Plusieurs solutions :
- Retirer la ligne avec le require_once et placer le code de dbConnection.php à sa place.
- Utiliser une autre méthode de redirection (utilisant une balise meta ou le JavaScript)

D'autre part il y a d'autres petites erreurs dans ton code, tu écris
//index.php
<input type="text" name="UserName" ... />

et
//login.php
if(empty($_POST['username']))
'UserName' != 'username' => c'est sensible à la casse !

Les autres erreurs sont moins importantes pour le fonctionnement, c'est plusieurs non-respect des standards HTML ^^

Je pense avoir fait le tour de la question.

Bye
enfet le probleme est que apres avoir ecrir le code rien se passe les donné ne sont pas ecrit dns la base de donne mysql. ce qui m"enerve se qu'il nafiche meme pas d'ereur
Stouffi
Messages postés
62
Date d'inscription
mercredi 8 septembre 2010
Statut
Membre
Dernière intervention
8 janvier 2011
36
"ce qui m"enerve se qu'il nafiche meme pas d'ereur"

=> Le PHP que tu utilises n'affiche peut-être pas le Warning généré par l'utilisation de header(); ce qui donnerait comme résultat une page toute blanche.
rlkompress
Messages postés
3
Date d'inscription
mardi 7 septembre 2010
Statut
Membre
Dernière intervention
14 septembre 2010

merci bocu stouffi c"est vraiment gentil de ta part