javascript - php中如何将注册页面数据验证后插入mysql表

标签 javascript php mysql

我已经使用 php bootsratp 制作了一个注册页面。填写注册表后,如果我按提交按钮,我会成功上传消息...但表是空白的...并且没有验证消息显示...如果有任何字段为空 下面是我的代码

表单验证代码:

function formValidation()  
{  
var uid = document.registration.userid;  
var passid = document.registration.passid;  
var uname = document.registration.username;  
var uadd = document.registration.address;  
var ucountry = document.registration.country;  
var uzip = document.registration.zip;  
var uemail = document.registration.email;  
var umsex = document.registration.msex;  
var ufsex = document.registration.fsex; if(userid_validation(uid,5,12))  
{  
if(passid_validation(passid,7,12))  
{  
if(allLetter(uname))  
{  
if(alphanumeric(uadd))  
{   
if(countryselect(ucountry))  
{  
if(allnumeric(uzip))  
{  
if(ValidateEmail(uemail))  
{  
if(validsex(umsex,ufsex))  
{  
}  
}   
}  
}   
}  
}  
}  
}  
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 allLetter(uname)  
{   
var letters = /^[A-Za-z]+$/;  
if(uname.value.match(letters))  
{  
return true;  
}  
else  
{  
alert('Username must have alphabet characters only');  
uname.focus();  
return false;  
}  
}  
function alphanumeric(uadd)  
{   
var letters = /^[0-9a-zA-Z]+$/;  
if(uadd.value.match(letters))  
{  
return true;  
}  
else  
{  
alert('User address must have alphanumeric characters only');  
uadd.focus();  
return false;  
}  
}  
function countryselect(ucountry)  
{  
if(ucountry.value == "Default")  
{  
alert('Select your country from the list');  
ucountry.focus();  
return false;  
}  
else  
{  
return true;  
}  
}  
function allnumeric(uzip)  
{   
var numbers = /^[0-9]+$/;  
if(uzip.value.match(numbers))  
{  
return true;  
}  
else  
{  
alert('ZIP code must have numeric characters only');  
uzip.focus();  
return false;  
}  
}  
function ValidateEmail(uemail)  
{  
var mailformat = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;  
if(uemail.value.match(mailformat))  
{  
return true;  
}  
else  
{  
alert("You have entered an invalid email address!");  
uemail.focus();  
return false;  
}  
} function validsex(umsex,ufsex)  
{  
x=0;  

if(umsex.checked)   
{  
x++;  
} if(ufsex.checked)  
{  
x++;   
}  
if(x==0)  
{  
alert('Select Male/Female');  
umsex.focus();  
return false;  
}  
else  
{  
alert('Form Succesfully Submitted');  
window.location.reload()  
return true;  
}  
}  

这是表单设计代码:

<?PHP
//require_once("./include/membersite_config.php");
require_once "formvalidator.php";

//if(isset($_POST['submitted']))
//{
 //  if($fgmembersite->RegisterUser())
 //  {
  //      $fgmembersite->RedirectToURL("thank-you.html");
//   }
//}

?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1"> 
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="css/style.css">
<script src="form-validation.js"></script>
<style>
  body {
    color: #000000;
    font-family:Arial, Geneva, sans-serif, Helvetica, sans-serif;
    line-height: 150%;
    font-size:12px;
    margin:auto;
    background-color:#ffffff;
  }
</style>
</head>
<title>Registration page</title></head> 
<body>
    <div class="container">
     <div><h2 style="background-color:#00CCCC" align="center" "height:50px"  >Registration page</h2></div>
      <form class="form-horizontal" name='registration' onSubmit="return formValidation()" method="POST" action="insert.php">
      <fieldset>
      <legend>Registration form</legend>
       <div class="form-group">
          <label class="control-label col-xs-4" for="userid">Fullname:</label>
             <div class="col-xs-4">
          <input type="text" class="form-control" id="userid" placeholder="Enter name">
        </div>
        </div>
         <div class="form-group">
          <label class="control-label col-xs-4" for="uid">Username:</label>
             <div class="col-xs-4">
          <input type="text" class="form-control" id="uid" placeholder="Enter username">
        </div>
        </div>

这是我的 insert.php 代码

<?php

define('DB_HOST', 'localhost');
define('DB_NAME', 'phonebook');
define('DB_USER','root');
define('DB_PASSWORD','');


// Connect to server and select database.
$con=mysql_connect(DB_HOST,DB_USER,DB_PASSWORD) or die("Failed to connect to MySQL: " . mysql_error());
$db=mysql_select_db(DB_NAME,$con) or die("Failed to connect to MySQL: " . mysql_error());

// Get values from form
$fullname=$_POST['userid'];
$username=$_POST['uid'];
$email=$_POST['uemail'];
$password=$_POST['passid'];
$birthdate=$_POST['mytextarea'];
$country=$_POST['message'];

// Insert data into mysql
$sql="INSERT INTO tbl_registration(fullname,username,email,password, birthdate,country) VALUES('$fullname', '$username', '$email',  '$password', '$birthdate', '$country')";
$result=mysql_query($sql);

我会做什么...

最佳答案

您不应该在变量周围放置引号,您必须在查询字符串中使用变量(或简单地在任何其他字符串中使用变量),例如 '{$fullname}' 来告诉这些是字符串变量你必须这样做

   $sql="INSERT INTO tbl_registration(`fullname`,`username`,`email`,`password`, `birthdate`,`country`) VALUES('{$fullname}', '{$username}', '{$email}',  '{$password}', '{$birthdate}', '{$country}')";
$result=mysqli_query($con,$sql);

另外你必须使用mysqli而不是mysql,因为PHP手册说mysql已经过时了并且容易受到攻击,您应该将其替换为 Mysqli

此外,您的代码容易受到 SQL 注入(inject)的攻击,例如在您的代码中使用方法传递变量以防止注入(inject) 替换

$fullname=$_POST['userid'];

$fullname= Mysqli_real_escape_string($_POST['userid']);

但这只是您使用准备好的查询的简单方法,准备好的查询除了查询之外还传递变量,并且它是安全的。

关于javascript - php中如何将注册页面数据验证后插入mysql表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27584293/

相关文章:

PHP SQL 驱动性能

php - 不带 limit() 传递数据库表的所有值

Mysql2::Error 无法初始化字符集utf8mb4 (路径:/usr/share/mysql/charsets/)

javascript - 使用 .map() 方法,如何缩写字符串以保留数组中的前 3 个字母?

javascript onmouseover 改变背景图片

php - 如何查看 Linux 服务器中所有命令的控制台历史记录?

php - 使用 PHP 格式化表格

javascript - 使用纯javascript跨浏览器从父级按类查找子元素

javascript - 为什么我应该创建 $scope.$apply() ?

php - fatal error : Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: no parameters were bound