Mysql+php login

Résolu
rlkompress Messages postés 4 Statut Membre -  
rlkompress Messages postés 4 Statut Membre -
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!!!!



3 réponses

masterchris Messages postés 90 Statut Membre 5
 
Sois plus clair: quel message d'erreur est affiché lorsque t'exécute?
0
Stouffi
 
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 https://www.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
0
rlkompress
 
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
0
Stouffi Messages postés 67 Statut Membre 40
 
"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.
0
rlkompress Messages postés 4 Statut Membre
 
merci bocu stouffi c"est vraiment gentil de ta part
0