我一直在为这个学校项目开发这个页面几天,它已经完美地工作到大约10分钟前。除了添加额外的javascript验证之外,我没有做任何改变。现在当我运行我的页面并点击"注册"按钮,它注册空字段而不是弹出相应的警报。请帮忙!
<?php
//Connect to database
include("dbconnect.php");
// SQL insertion if submit button is pressed
if (isset($_POST['Submit'])) {
$firstname = $_POST["firstname"];
$lastname = $_POST["lastname"];
$email = $_POST["email"];
$username = $_POST["username"];
$password1 = $_POST["password1"];
$class1 = $_POST["class1"];
$address = $_POST["address"];
$creditcard = $_POST["creditcard"];
$expiry = $_POST["expiry"];
$cvv = $_POST["cvv"];
$postcode = $_POST["postcode"];
$city = $_POST["city"];
$state = $_POST["state"];
$street = $_POST["street"];
$personcon = $conn;
$bbsSQL = "INSERT INTO TBLUSERS (FIRSTNAME, LASTNAME, EMAIL, USERNAME, PASSWORD, CLASS, ADDRESS, CREDITCARD, EXPIRY, CVV, POSTCODE, CITY, STATE, STREET) VALUES ('$firstname', '$lastname', '$email', '$username', '$password1', '$class1', '$address', '$creditcard', '$expiry', '$cvv', '$postcode', '$city', '$state', '$street')";
$personinfo = oci_parse($personcon, $bbsSQL);
oci_execute($personinfo);
oci_free_statement($personinfo);
oci_close($personcon);
//Send Email
$to = $email;
$subject = 'Registration Confirmation';
$message = 'Welcome, ' . $firstname . ' ' . $lastname . '.' . "\r\n" . "\r\n" . 'Username: ' . $username . "\r\n" . "\r\n" . 'Password: ' . $password1 . "\r\n" . "\r\n" . 'Class: ' . $class1 . "\r\n" . "\r\n";
$headers = 'From: fake@fake.com' . "\r\n" . 'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
//Pass the message to the login page after registration
$Message = urlencode("Thank you for your registration!");
header("Location:index.php?Message=" . $Message);
}
?>
<html>
<head>
<title>User Registration</title>
<link rel="stylesheet" type="text/css" href="style.css" />
<script type="text/javascript">
function validate()
{
//First Name
var fname = document.myForm.firstname.value;
var Vfname = /^[a-zA-Z]+$/;
if(!Vfname.test(fname)){
alert("Your last name can only contain letters.");
return false;
} else {
/* alert("Valid first name!"); */
}
//Last Name
var Lname = document.myForm.lastname.value;
var VLname = /^[a-zA-Z]+$/;
if(!VLname.test(Lname)){
alert("Your last name can only contain letters.");
return false;
} else {
/* alert("Valid last name!"); */
}
//Class
var cl = document.myForm.class1.value;
var Vcl = /^[a-zA-Z]{4}+[0-9]{3}+$/;
if (!Vcl.test(cl)){
alert("Your class must be 4 letters followed by 3 numbers.");
return false;
} else {
/* alert("Valid class!"); */
}
//Credit Card
var cc = document.myForm.creditcard.value;
var Vcc = /^[0-9]{10}+$/;
if (!Vcc.test(cc)) {
alert("Credit card number must be 10 digits.");
return false;
} else {
/* alert("Valid Credit Card!"); */
}
//Post Code
var pc = document.myForm.postcode.value;
var Vpc = /^[0-9]{4}+$/;
if (!Vpc.test(pc)) {
alert("Post code must be 4 numbers.");
return false;
} else {
/* alert("Valid Post Code!"); */
}
//Password Confirmation
var pwd1 = document.myForm.password1.value;
var pwd2 = document.myForm.password2.value;
if(pwd1!=pwd2 || pwd1=="" || pwd2==""){
alert("Password unmatched!");
return false;
}
else
alert("Password matched!");
}
}
</script>
</head>
<body>
<div class="author">
COMP344 Assignment 1 2015 <br>
Daniel Buskariol <br>
42446937
</div>
<div id="heading"> New Star Public School </div>
<br>
<form name="myForm" method="POST" onsubmit="return validate()">
<table style="width:40%" cellpadding="10" cellspacing="1" align="center">
<tr>
<th colspan="4">Enter Registration Details</th>
</tr>
<tr>
<td colspan="4"></td>
</tr>
<tr>
<td>First Name</td>
<td><input type="text" name="firstname" tabindex="1" /></td>
<td>Post Code</td>
<td><input type="text" name="postcode" tabindex="9" /></td>
</tr>
<tr>
<td>Last Name</td>
<td><input type="text" name="lastname" tabindex="2" /></td>
<td>Credit Card</td>
<td><input type="text" name="creditcard" tabindex="10" /></td>
</tr>
<tr>
<td>Email</td>
<td><input type="text" name="email" tabindex="3" /></td>
<td>Expiry</td>
<td><input type="text" name="expiry" tabindex="11" placeholder="MM/YY" /></td>
</tr>
<tr>
<td>Class</td>
<td><input type="text" name="class1" tabindex="4" /></td>
<td>CVV</td>
<td><input type="text" name="cvv" tabindex="12" /></td>
</tr>
<tr>
<td>Street Number</td>
<td><input type="text" name="address" tabindex="5" /></td>
<td>Username</td>
<td><input type="text" name="username" tabindex="13" /></td>
</tr>
<tr>
<td>Street Name</td>
<td><input type="text" name="street" tabindex="6" /></td>
<td>Password</td>
<td><input type="password" name="password1" tabindex="14" /></td>
</tr>
<tr>
<td>Suburb/City</td>
<td><input type="text" name="city" tabindex="7" /></td>
<td>Confirm</td>
<td><input type="password" name="password2" tabindex="15" /></td>
</tr>
<tr>
<td>State</td>
<td><input type="text" name="state" tabindex="8" /></td>
<td align="right"><input type="reset" name="Reset"/> </td>
<td><input type="submit" name="Submit" value="Register"/></td>
</tr>
</table>
</form>
<br>
<p> Already a member? Click <a href="index.php">here</a> to login. </p>
</body>
</html>
答案 0 :(得分:0)
打开您的开发者控制台,它会指出您的错误。
你有一个额外的{
,因为你错过了{
之后的其他人。因此,请添加{
或删除额外的}
。
正则表达式错误,因为+
之后和{4}之后有{3}
。摆脱它们。
答案 1 :(得分:0)
在一些地方,您在已提供明确计数后,在正则表达式中放置+
量词,例如var Vcl = /^[a-zA-Z]{4}+[0-9]{3}+$/;
({4}+
和{3}+
)。这在正则表达式中是不合法的。如果您检查了浏览器控制台,则在执行验证时可能会看到SyntaxError
。