Mysql+php login
Résolu
rlkompress
Messages postés
4
Statut
Membre
-
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!!!!
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!!!!
A voir également:
- Mysql+php login
- On me demande mon login - Forum Windows
- Easy php - Télécharger - Divers Web & Internet
- My.canalbox.africa/login - Forum Box et Streaming vidéo
- Portail mpsa login ✓ - Forum Réseau
- Wifipass pierre et vacances login - Forum Réseaux sociaux
3 réponses
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
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