[英]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.