Member 14038244 Ответов: 0

Php вставка данных в таблицу не работает но не показывает никаких ошибок


Извините, мой английский не очень хорош, но мне нужна ваша помощь, чтобы найти то, что не так в файле php ниже.
Я только изучаю PHP и пытаюсь захватить информацию из формы и вставить ее в таблицу в базе данных mySQL.Прежде чем сделать это,я хочу проверить наличие дубликатов имени пользователя или электронной почты, поэтому я добавил оператор if, но никакие данные не были вставлены в таблицу и не было показано никакой ошибки.
Не мог бы кто-нибудь сказать мне, что я делаю не так?

Прежде чем добавить оператор if, он работал.
<?php
include('config.php');

    $name = $_POST['name'];
    $user = $_POST['id'];
    $password = $_POST['password'];
    $mail = $_POST['email'];
    $phone = $_POST['phone'];
    $sex = $_POST['sex'];
    $nationality = $_POST['nationality'];
    $dob=$_POST['year'] . '-' . $_POST['month'] . '-' . $_POST['days'];
    $question = $_POST['mistery_question'];
    $reply = $_POST['reply'];

    date_default_timezone_set("Asia/Calcutta");
    $insertdate = date("Y-m-d H:i:s");
    $sql = "INSERT INTO regist (Name, Username, Password, Mail, PhoneNumber, Sex, Religion, DateOfBirth, Question, Answer,date_time) 
            VALUES ('$name', '$user','$password','$email', '$phone', '$sex', '$nationality', '$dob', '$question', '$reply', '$insertdate')";

            mysqli_close($conn);

?>


Что я уже пробовал:

После добавления оператора if. Это не работает
<?php
include('config.php');

    $name = $_POST['name'];
    $user = $_POST['id'];
    $password = $_POST['password'];
    $mail = $_POST['email'];
    $phone = $_POST['phone'];
    $sex = $_POST['sex'];
    $nationality = $_POST['nationality'];
    $dob=$_POST['year'] . '-' . $_POST['month'] . '-' . $_POST['days'];
    $question = $_POST['mistery_question'];
    $reply = $_POST['reply'];

    date_default_timezone_set("Asia/Calcutta");
    $insertdate = date("Y-m-d H:i:s");
        
        $query = mysqli_query($conn,"SELECT * FROM regist WHERE Username='$user' OR Mail='$mail'");
        if(mysqli_num_rows($query) > 0 ) {
          
          echo "<script type='text/javascript'>alert('User name or Email id already exists.');
               window.location='regist.html';history.back();
               </script>";
          }else{

          $sql = "INSERT INTO regist (Name, Username, Password, Mail, PhoneNumber, Sex, Religion, DateOfBirth, Question, Answer,date_time) 
            VALUES ('$name', '$user','$password','$email', '$phone', '$sex', '$nationality', '$dob', '$question', '$reply', '$insertdate')";

           }   
        

            mysqli_close($conn);

?>

Richard Deeming

Вы храните пароли в виде обычного текста. Не делай этого!
Безопасная Аутентификация Паролем Объясняется Просто[^]
Соленое хэширование паролей - делаем это правильно[^]

PHP даже включает в себя функции, которые помогут вам делать правильные вещи:
PHP: password_hash[^]
РНР: функцию password_verify[^]

Richard MacCutchan

Вы никогда не выполняете инструкцию INSERT (и не делали этого в первом примере), ничего общего с if.

0 Ответов