-1
我是java腳本編碼的新手。我有一個需要用戶名,密碼和電子郵件的表單。它驗證其中三個,並不會進入下一個「logout.php」頁面,甚至不提醒,如果該ID已被採取。它只驗證文本框的條目。我想首先驗證這三個表單條目,然後如果它們是有效的,並且id是唯一的,那麼點擊提交「logout.php」應該被打開。 下面是我的代碼:使用javascript進行表單驗證後註冊失敗
登錄up.php
<form method="post" name='registration' onSubmit="return formValidation();">
<input type="text" placeholder="Id*" required=" " name="uid">
<input type="password" placeholder="Password*" required=" " name="passid">
<input type="text" placeholder="Emailaddress*" required=" " name="uemail">
<input type="submit" value="Submit" style="font-face: 'Comic Sans MS'; font-size: larger; color: white; background-color: #FFA500; border: 3pt ridge lightgrey">
</form>
進行驗證的Java腳本代碼:
的JavaScript
<script type="text/javascript">
function formValidation()
{
var uid = document.registration.uid;
var passid = document.registration.passid;
var uemail = document.registration.uemail;
if(userid_validation(uid,5,12))
{
if(passid_validation(passid,7,12))
{
if(ValidateEmail(uemail))
{
}
}
}
return false;
}
function userid_validation(uid,mx,my)
{
var uid_len = uid.value.length;
if (uid_len == 0 || uid_len >= my || uid_len < mx)
{
alert("User Id should not be empty/length be between "+mx+" to "+my);
uid.focus();
return false;
}
return true;
}
function passid_validation(passid,mx,my)
{
var passid_len = passid.value.length;
if (passid_len == 0 ||passid_len >= my || passid_len < mx)
{
alert("Password should not be empty/length be between "+mx+" to "+my);
passid.focus();
return false;
}
return true;
}
function ValidateEmail(uemail)
{
var mailformat = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
if(uemail.value.match(mailformat))
{
//alert("You have entered a valid email address!");
return true;
}
else
{
alert("You have entered an invalid email address!");
uemail.focus();
return false;
}
}
PHP的一部分將檢查身份證已被拿走或沒有。點擊提交按鈕後,這部分代碼不會被執行。這部分代碼中沒有顯示任何消息。
PHP
<?php
session_start();
if(!empty($_POST)) {
class MyDB extends SQLite3
{
function __construct()
{
$this->open('trip.db');
}
}
$db = new MyDB();
if(!$db){
echo $db->lastErrorMsg();
} else {
}
$id=null;
$pass=null;
$email=null;
$id_exists=false;
if (isset($_POST['uid'])) {
$id = $_POST['uid'];
}
if (isset($_POST['passid'])) {
$pass = $_POST['passid'];
}
if (isset($_POST['uemail'])) {
$email = $_POST['uemail'];
}
$result= "SELECT COUNT(*) FROM Users WHERE ID = '".$id. "';" ;
$count= $db->querySingle($result);
if ($count > 0)
{
$id_exists = true;
echo "This id is not available. Please enter a valid id. ";
}
else
{
$sql= " INSERT INTO Users (ID, PASSWORD, EMAIL)
VALUES ('$id','$pass','$email'); " ;
$ret = $db->query($sql);
$_SESSION['Id'] = $id;
header("location:logout.php");
}
$db->close();
}
?>
我不想檢查,如果文本框爲空,因爲已經被我的JavaScript代碼來處理。現在的問題是,驗證後,PHP部分未運行 – user399
我認爲你不要在代碼中寫** action **。 **
我試着用動作做它,但它沒有幫助:( – user399