#php #mysql #login
#php #mysql #аутентификация
Вопрос:
У меня есть система регистрации пользователей, но она пуста. Это скрипт, который я использую в forum.modxpertz.tk . Сначала это сработало, но сейчас ничего не показывает. Вот код.
<?php
$servername = "localhost";
$username = "root";
$password = "";
// Create connection
$conn = mysqli_connect($servername, $username, $password);
mysqli_select_db($conn,'login');
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$sql = "SELECT userid FROM login";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
// output data of each row
while($row = mysqli_fetch_assoc($result)) {
$reguserid=$row["userid"];
}
$userid = mysqli_real_escape_string($conn, $_POST['userid']);
$pswrd = mysqli_real_escape_string($conn, $_POST['pswrd']);
$fname = mysqli_real_escape_string($conn, $_POST['fname']);
$lname = mysqli_real_escape_string($conn, $_POST['lname']);
$gender = mysqli_real_escape_string($conn, $_POST['gender']);
$token = rand('122332344','922332344');
$url = array('forum.modzexpertz.tk/verify.php#',$token);
$post= join($url);
if($userid!=$reguserid){
$sql = "INSERT INTO login(fname, lname, userid, pswrd, gender)VALUES('$fname', '$lname', '$userid', '$pswrd', '$gender')";
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
}else {
echo "Failed to Register.";
}} else {
echo "A user with the email youve provided has already been registered.";
}}
$conn->close();
?>
Я мало что знаю о PHP и jQuery.
Комментарии:
1. Просто у меня мигрень от чтения вашего кода. Используйте правильный отступ кода.
2. Пока проблема 1
$userid!=$reguserid
. Вы перезаписываете это на каждой итерации,$reguserid=$row["userid"]
и это очень неэффективно. Как у вас вообще есть$_POST['userid']
, если у пользователя нет учетной записи? Пароли также должны быть хэшированы.3. @Irvin : мигрень лучше.. Я почувствовал, что получил удар головой .. 🙁
4. Как пользователь будет идентифицировать свой идентификатор пользователя после регистрации …. ?? может быть его слепота..
Ответ №1:
Пожалуйста, попробуйте приведенный ниже код :
<?php
$servername = "localhost";
$username = "root";
$pswrd = "";
$db = "login";
$conn = mysqli_connect($servername,$username,$pswrd, $db);
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$table = 'login';
if(@mysqli_num_rows(mysqli_query($conn, "SELECT NULL FROM `$table` WHERE userid='".$_POST['userid']."'")) > 0){
$error = "1";
echo "user with same userid is already exist";
}
if(isset($_POST['fname']) amp;amp; isset($_POST['lname']) amp;amp; isset($_POST['gender']) amp;amp; isset($_POST['userid']) amp;amp; isset($_POST['pswrd']) amp;amp; $_POST['fname']!="" amp;amp; $_POST['lname']!="" amp;amp; $_POST['gender']!="" amp;amp; $_POST['userid']!="" amp;amp; $_POST['pswrd']!="")
{
if($error==''){
$ins['fname'] = mysqli_real_escape_string($conn, $_POST['fname']);
$ins['lname'] = mysqli_real_escape_string($conn, $_POST['lname']);
$ins['gender'] = mysqli_real_escape_string($conn, $_POST['gender']);
$ins['userid'] = mysqli_real_escape_string($conn, $_POST['userid']);
$ins['pswrd'] = mysqli_real_escape_string($conn, $_POST['pswrd']);
$insertsql = "INSERT INTO `$table` (fname, lname, gender, userid, pswrd) VALUES ('".$ins['fname']."','".$ins['lname']."','".$ins['gender']."','".$ins['userid']."','".$ins['pswrd']."')";
@mysqli_query($conn, $insertsql);
//echo $insertsql; exit;
echo "Success";
}
}else{
echo "Please enter required parameters";
}
mysqli_close($conn);
?>