Inscrire/se Connecter Formulaire PHP MySQL
Bonne journée!
J'ai été à la recherche de différentes solutions sur le web mais je n'ai pas passé par un seul de résoudre mon problème
Fondamentalement, j'ai été faire un système de connexion avec une fonction d'enregistrement, et tout fonctionne bien sauf que quand j'ai essayer de vous inscrire, cela ne veut pas entrer dans la base de données que j'ai fait. Ensuite, j'ai essayé d'insérer des valeurs dans mon tableau, et j'ai essayé la connexion, mais il n'était connecter, même si je n'ai le mot de passe erroné.
Voici la base de données:
+----------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+----------------+
| studID | int(11) | NO | PRI | NULL | auto_increment |
| fname | varchar(30) | NO | | NULL | |
| lname | varchar(30) | NO | | NULL | |
| address | varchar(80) | NO | | NULL | |
| username | varchar(20) | NO | | NULL | |
| password | varchar(20) | NO | | NULL | |
+----------+-------------+------+-----+---------+----------------+
index.html
<html>
<head>
<title>Welcome!</title>
<style>
</head>
<body>
<form name="form1" method="post" action="login.php">
<div align="center">
<p><img src="images/welcome.jpg" /></p>
<table id="title">
<tr>
<td>Username:</td>
<td><input type="text" name="username" /></td>
</tr>
<tr>
<td>Password:</td>
<td><input type="password" name="password" /></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="submit" value="Log In" /></td>
</tr>
</table>
<p>New here? <a href="signup.php">Register!</a></p>
</div>
</form>
</body>
</html>
login.php
<?php
include("db.php");
session_start();
$username=($_POST['username']);
$password=($_POST['password']);
$result=mysql_query("SELECT count(*) FROM student WHERE username='$username' and password='$password'");
$count=mysql_fetch_array($result);
if($count==0){
session_register("username");
session_register("password");
header("location:success.php");
} else {
echo 'Wrong Username or Password! Return to <a href="index.html">login</a>';
}
?>
et db.php
<?php
$conn = mysql_connect('localhost', 'root', 'ella');
if (!$conn)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("studrecord", $conn);
?>
signup.php (c'est assez long, couper quelques parties inutiles)
<html>
<head>
<title>Register</title>
</head>
<body>
<form action="index.html">
<table id="title">
<tr>
<td>First Name:</td>
<td><input type="text" name="fname" /></td>
</tr>
<tr>
<td>Last Name:</td>
<td><input type="text" name="lname" /></td>
</tr>
<tr>
<td>Address:</td>
<td><input type="text" name="address" /></td>
</tr>
<tr>
<td>Username:</td>
<td><input type="text" name="username" /></td>
</tr>
<tr>
<td>Password:</td>
<td><input type="password" name="password" /></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="submit" value="Sign Up" /></td>
</tr>
</table>
</div>
</form>
<?php
if (isset($_POST['submit']))
{
include 'db.php';
$fname=$_POST['fname'];
$lname=$_POST['lname'];
$address=$_POST['address'];
$username=$_POST['username'];
$password=$_POST['password'];
mysql_query("INSERT INTO student(fname,lname,address,username,password)
VALUES ('$fname','$lname','$address','$username','$password')");
}
?>
</...
Vous en remercie d'avance!
- si le système de connexion est bien le travail et ne pas s'inscrire alors pourquoi vous montrez votre login.php et pas signup.php ?
- oh, droit-- totalement négligée. merci pour le rappel!
- mysql est obsolète, essayez de mysqli ou pdo
- session_register("nom d'utilisateur") est déconseillé d'utiliser $_SESSION["pseudo"]
- TOUT dans votre script est mauvais, mauvais, très obsolète et totalement sécurisés. Vraiment, je ne veux pas vous offenser, mais vous ne devriez pas utiliser ce script! Pleeease un professionnel de script.
- Bonjour injection SQL!
Vous devez vous connecter pour publier un commentaire.
Regardant votre
signup.php
document, il ressemble à la forme de l'action vous ramène à laindex.php
page. Cela signifie que la logique du code PHP suivant jamais réellement lieu. Utilisez ceci:au lieu de
<form action="index.html">
.Essayez de changer l'action du formulaire de la page elle-même et voyez si vous obtenez des données insérées dans votre table.
Quelques remarques:
'SELECT count(*) FROM student WHERE username='$username' and password='$password'
, il pourrait être préférable de demander le résultat lignes elles-mêmes par le remplacement deCOUNT(*)
avec simplement*
. Vous pouvez ensuite utilisermysqli_num_rows
pour compter les lignes.J'espère que je ne suis pas manque quelque chose, mais je suis un peu confus par la logique de votre
index.php
page. Vous ditesoù je pense que tu veux dire
if($count > 0)
, parce que vous voulez une ligne d'exister avec ce nom d'utilisateur/mot de passe.Bonne chance dans vos démarches!
Essayez de changer le comte de requête à la ce. Aussi bien rester à l'écart de mysql_* fonctions comme ils sont amortis.
Pas un awnser à votre question, mais le changement
à
vous connecter avec un mot de passe erroné parce que vous n'êtes pas vérifier s'il existe dans la base de données , modifiez votre code pour cela.
modifier cette
à
dans votre registre yfile vous êtes à vérifier avec le même nom de connexion et d'inscription
changer le nom du registre d'entrée .
à ce
et la mettre dans votre formulaire.
et de changer votre forme
à
signup.php
parce que vous avez été en utilisant index.html dans l'action, et comme ça devrait fonctionner tout :). souhaite que je pourrais vous aider.désolé je n'étais pas là