各位大大好,小弟是剛開始接觸程式的新手然後這是我註冊畫面,我雖然有用AJAX驗證過了,但是我故意輸入錯誤的帳號跟開通碼還是會顯示註冊成功但是不會新增到後端的資料庫但是我按下送出按鈕後照樣會跳轉我做的登入頁然後會寫註冊成功,我現在想要寫一個判斷式去驗證帳號跟開通碼輸入正不正確,如果不正確會跳轉回註冊頁,我試過很多方法也去網路上找資料但還是寫不太出來,請問各位大大我該怎麼辦?
這是register.php
<script>
$(function() {
function registerChk(){
$('.registerChk').remove()
$.ajax({
url:'registerChk.php',
type:'post',
data:{'account':$('#account').val()},
error:function(){
alert('ajax err')
},
success:function(count){
if(count==0){
$('#account').parent().append('<span class="msg info registerChk">帳號可使用</span>')
}else{
$('#account').parent().append('<span class="msg err registerChk">此帳號已被申請過囉!!!</span>')
}
}
})
}
$('#account').keyup(registerChk)
function qrcodeChk(){
$('.qrcodeChk').remove()
$.ajax({
url:'qrcodeChk.php',
type:'post',
data:{'qrcode':$('#qrcode').val()},
error:function(){
alert('ajax err')
},
success:function(count){
if(count==0){
$('#qrcode').parent().append('<span class="msg info qrcodeChk">開通碼輸入錯誤!!</span>')
}else{
$('#qrcode').parent().append('<span class="msg err qrcodeChk">開通碼輸入正確</span>')
}
}
})
}
$('#qrcode').keyup(qrcodeChk)
function passwdChk(){
$('.passwdChk').remove()
var passwd=$('#passwd').val()
var passwd2=$('#passwd2').val()
if(passwd!=passwd2){
$('#passwd2').parent().append('<span class="msg err passwdChk">密碼不符</span>')
}
}
$('#passwd,#passwd2').keyup(passwdChk)
$('#register').submit(function(){
$('.err').remove()
registerChk()
passwdChk()
if($('[name="m_sex"]:checked').val()==undefined){
$('[name="m_sex"]').parent().append('<span class="msg err">請選取性別!!</span>')
}
if($('.err').length>0){
return false
}
})
})
</script>
<form id="register" name="form" class="dataForm" action="registerQ.php" method="post">
<h3>加入會員</h3>
<p>
<label for="teacher">教師姓名:</label>
<input type="text" id="teacher" name="teacher" required>
</p>
<p>
<label for="account">帳號:</label>
<input type="text" id="account" name="account" pattern="(?=^[A-Za-z0-9]{6,12}$)((?=.*[A-Z])(?=.*[a-z])(?=.*[0-9]))^.*$" title="密碼:6~12英數字組合,至少有一個大寫、小寫英文字母及數字,如 As1234" required><br>
</p>
<p>
<label for="passwd">密碼:</label>
<input type="password" id="passwd" name="passwd" pattern="(?=^[A-Za-z0-9]{6,12}$)((?=.*[A-Z])(?=.*[a-z])(?=.*[0-9]))^.*$" title="密碼:6~12英數字組合,至少有一個大寫、小寫英文字母及數字,如 As1234" required><br>
</p>
<p>
<label for="passwd2">確認密碼:</label>
<input type="password" id="passwd2" name="passwd2" pattern="(?=^[A-Za-z0-9]{6,12}$)((?=.*[A-Z])(?=.*[a-z])(?=.*[0-9]))^.*$" title="密碼:6~12英數字組合,至少有一個大寫、小寫英文字母及數字,如 As1234" required>
</p>
<p>
<label for="email">eamil:</label>
<input type="email" t="email" id="email" name="email" required><br>
<label>正確格式:123@gmail.com</label><br>
</p>
<p>
<label for="cellphone">手機:</label>
<input type="mobile" id="mobile" name="mobile" maxlength="15" required>
</p>
<p>
<label for="qrcode">開通碼:</label>
<input type="text" id="qrcode" name="qrcode" maxlength="10" required><br>
<label>請輸入10碼開通碼</label>
</p>
<p class="formBtn">
<input type="submit" id="submit" name="register" value="送出">
<input type="reset" id="reset" value="重填">
</p>
</form>
</main>
這是registerQ.php
<?php include_once("SCconnect_db.php");
$teacher=$_POST['teacher'];
$account=$_POST['account'];
$passwd=$_POST['passwd'];
$email=$_POST['email'];
$mobile=$_POST['mobile'];
$qrocde=$_POST['qrocde'];
$qry="UPDATE sc_d SET teacher='$teacher',account='$account',passwd='$passwd',email='$email',mobile='$mobile' WHERE qrcode='$qrcode'";
if(mysqli_query($dbc,$qry)){
header('location:login.php?sign=1');
}else{
header('location:login.php?signErr=1');
}
mysqli_close($dbc);
?>
這是registerChk.php
<?php
include_once('SCconnect_db.php');
$account=$_POST['account'];
$qry="SELECT COUNT* FROM sc_d WHERE account='$account'";
$userCount=mysqli_num_rows(mysqli_query($dbc,$qry));
echo $userCount;
?>
以驗證帳號做說明,registerChk.php檔案內容如下,用這方式就可以得到最基本的驗證帳號是否存在。
<?php
$account = $_POST['account'];
$sql = 'SELECT COUNT(*) FROM talbe WHERE account = ' . $account . ' LIMIT 1';
$count = $db->getOne($sql); // 請使用你的取得sql資料方式
// 帳號已存在
if ($count > 0) {
// 帳號不存在
} else {
}
echo $count;
Aka程式狗您好registerChk.php這個檔案我已經附在上面,我現在已經有AJAX幫我驗證帳號跟開通碼有沒有重複,但是我現在不管有沒有輸入錯誤都會註冊成功跳轉到下一頁,我是想要輸入錯誤不要讓他跳轉到下一頁直到使用者輸入正確,我有想過用JS的funcion函式跟PHP的if判斷式,都試過沒有成功,不知道可不可以從這句再多家一具跳轉回原頁的程式,還是表單那邊要再寫一些點擊事件if(count==0){ $('#qrcode').parent().append('<span class="msg info qrcodeChk">開通碼輸入錯誤!!</span>')
,再麻煩您指點迷津了,感恩
那個,說真的,這真的不知道要從何教起才行。
講明白一點,目前你的程式碥看起來。就像是一種組裝錯誤的玩具。
該有的都有,就是裝錯地方了。
說真的,要教你改你目前的應用方式。
我還真不知道該從何改起。
先不考量淺水員跟你說的session或cookie的問題。
一個認証發送兩次ajax。就是一個大錯誤了。(瀏覽器可是有最大並發量)
為何不要一次送進去處理就好。非得要一次的一個?
其實我明白,你因為東抄西抄,只看到一組一組送的demo方式。但並不了解其應用。
所以只會依樣劃葫蘆。再copy一個出來改。
所以,這就是我不知道該從何教起的原因。
我是強烈建議你。先全打掉,將你目前所學到的,先當成知識。
再找一篇重新來過吧。