簡體   English   中英

數據不會以登錄/注冊表格的形式插入MySQL數據庫進行注冊

[英]Data wont insert into MySQL database for registration in login / registration form

當我嘗試注冊新帳戶時,我特別遇到了一個自定義錯誤-“由於技術錯誤,我們目前無法創建新帳戶。”

如果信息未發布到我的MySQL數據庫中,我將設置此錯誤為回顯。 我不知道為什么不發布

所以錯誤出在注冊部分(或會話部分)上,但是我在這里發布了所有相關代碼。

所有這些都包含在工作正常的html中。

這是非常開始的php代碼(在DOCTYPE html之上),這開始了我的會議。

<?php
session_start();
if(isset($_SESSION['sess_user'])){

header("Location: profile.php");
exit();
}
?> 

這是登錄表單的代碼:

            <ul>
                <li>
<input type="text" name="username" id="uname_log"         value="" placeholder="Username" class="required requiredField Email fg-input text fg-fw" />
                </li>
                <li>
<input type="password" name="password" id="password_log" value="" placeholder="Password" class="required requiredField  fg-input text fg-fw" />
                </li>
                <li>
               <div class="chkbox"> <input type="checkbox" id="remember" name="remember" value="true"/> Remember me</div>
                </li>
                <li>
                    <div class="clear"></div>                       
                    <input class="submit signin_btn fg-btn blue large inline fg-fw bold" type="submit" name="submit2" value="Sign In"/>
                    <input type="hidden" name="submitted" id="submitted" value="" />
                </li>
            </ul>
        </form> 
<?php

        if (isset($_POST["submit2"])) {
            $username =$_POST['username'];
            $password =$_POST['password'];

            $connect=mysqli_connect('localhost', 'root', 'U7wQkQ**') or die(mysqli_error());
            mysqli_select_db($connect, 'test6') or die("Cannot select database");

            $query=mysqli_query($connect, "SELECT * FROM test WHERE username ='".$username."' AND password='".$password."'");
            $numrows=mysqli_num_rows($query);

            if ($numrows!=0){
                while ($row=mysqli_fetch_assoc($query)) {
                    $dbusername=$row['username'];
                    $dbpassword=$row['password'];
                }
            if ($username == $dbusername && $password == $dbpassword){



            $_SESSION['sess_user'] = $username;



            }
            } else {
                echo "Invalid username or password";
            }
        }
        ?>

這是注冊表格的代碼:

<form action="" id="freesigninForm" class="freesigninForm" method="post">
                 <ul>

                <li>
                    <input type="text" name="username" id="reg_email" value="" placeholder="Username" class="required requiredField Email fg-input text fg-fw" />
                </li>
                <li>
                    <input type="password" name="password" id="reg_password" value="" placeholder="Password" class="required requiredField Password fg-input text fg-fw" />
                </li>
                <li>
                    <input type="password" name="password2" id="reg_password2" onkeyup="checkPasswordMatch();" value="" placeholder="Repeat Password" class="required requiredField Password fg-input text fg-fw" />
                </li>

                <div class="clear"></div>
                <li>
                    <input style="display: none;" id="reg_check3" type="checkbox" name="check" value="YES" checked/>  
                    <span style="display: none;"><a href='http://www.formget.com/terms-conditions/' target='_blank'>I agree with terms and conditions</a></span>
                    <button id="buttonActivate" class="submit fg-btn blue large inline fg-fw bold" type="submit" name="submit" >Create Account</button>

                </li>
            </ul>
        </form>
<?php

if (isset($_POST["submit"])) {
$username = $_POST['username'];  
$password = $_POST['password'];

$connect=mysqli_connect('localhost', 'root', 'U7wQkQ**') or die(mysqli_error());
mysqli_select_db($connect, 'test6') or die("Cannot select database");

$query=mysqli_query($connect, "SELECT * FROM test WHERE username='".$username."'");
$numrows = mysqli_num_rows($query);

if($numrows== 0){

    $sql ="INSERT INTO test (username, password) VALUES ('$username', '$password')";


    $result=mysqli_query($connect, $sql);

    if ($result) {
        echo "Account successfully created";

    } else { 
        echo "We are unable to create a new account at this time due to technical errors.";
    }

    } else {
        echo "Username already exists. Please try again with a unique username!";

    }
}

?>

是的,我在chris85的幫助下找到了答案。

基本上,一旦我使用echo mysqli_error($ connect)克服了mysqli錯誤; 在我的代碼中,我得到一個錯誤,提示鍵“ PRIMARY”的條目為“ 0”。

因此,基本上我的數據庫每次都嘗試覆蓋主鍵數據(我沒有提到它,但是該代碼昨天有效,但今天卻不起作用,我不明白為什么)

一旦我將主鍵(ID)設置為A_I或自動遞增,表就會更新:D

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM