2014-01-30 55 views
0

我有一个简单的html表单,它接受用户名和密码并将其注册到数据库中。但是,即使在提交表单之前,页面加载后,它也会立即执行以下php if语句。以下是这段代码。javascript在表单提交前执行

if (($_POST['reg_username']=="") || ($_POST['reg_password']=="")) 
{ ?> 
<script> alert("please enter both email and password"); </script> 

<? } 

完整的php代码如下。这不是最终的代码,所以我仍然没有加密密码和一切,但我只是测试它。先谢谢你们。

if (($_POST['reg_username']=="") || ($_POST['reg_password']=="")) 
{ ?> 
<script> alert("please enter both email and password"); </script> 

<? } 


$reg_username=mysql_real_escape_string($_POST['reg_username']); 
$reg_username=htmlspecialchars($reg_username); 
$reg_password=mysql_real_escape_string($_POST['reg_password']); 
$reg_password=htmlspecialchars($reg_password); 



if(!empty($reg_username) && !empty($reg_password)) 
{ 

if (isset($reg_username) && isset($reg_password)) 
{ 
mysql_select_db($db, $dbconnect); 
mysql_query("INSERT into students(username,password) VALUES  
('$reg_username','$reg_password')"); 
} 
} 

?> 
+0

的可能重复[回复ference:为什么我的Javascript中的PHP(或其他服务器端)代码无法工作?](http://stackoverflow.com/questions/13840429/reference-why-does-the-php-or-other-server-side -code-in-my-javascript-not-wor) – Quentin

回答

0

更改此:

if (($_POST['reg_username']=="") || ($_POST['reg_password']=="")) 
{ ?> 
<script> alert("please enter both email and password"); </script> 

<? } 

进入这个:

if(isset($_POST['reg_username']) || isset($_POST['reg_password'])) 
{ 
if (($_POST['reg_username']=="") || ($_POST['reg_password']=="")) 
{ ?> 
<script> alert("please enter both email and password"); </script> 

<?php } 
} 
+0

感谢Robert,它正在工作。当我用我的初始代码创建一个新的php文件并将表单值重定向到该文件时,它也起作用。再次感谢。 – user3150373

+0

我很高兴帮助,随时标记这个答案是正确的;) – Hackerman

0

为什么你必须在PHP中包含这些标签?为什么你只是不单独做。下面是一个使用Javascript(jQuery)的示例:

请注意,自从我在一分钟内写入该片段后,可能会出现一些拼写错误和语法错误。

<script type="text/javascript"> 

$(document).ready(function() { 

("#login_form").submit(function() { 

var username = ("#selector").val(); 
var password = ("#password").val(); 

if(username == "" && password == "") { 

alert("please enter both email and password"); 

} 
} 

)}; 
</script> 
0
if(isset($_POST['SubmitButtonName'])){ //check if form was submitted 
     unset($_POST['SubmitButtonName']); 
     if (($_POST['reg_username']=="") || ($_POST['reg_password']=="")) 
     { ?> 
      <script> alert("please enter both email and password"); </script> 
     <? } 
} 

记住更改SubmitButtonName

0
 <script> 
    $(document).ready(function(){ 
    $("#submit").click(function(){ 
    var register_name=$('#reg_username').val(); 
var register_password=$('#reg_password').val(); 

if(register_name =="") 
{ 
alert("please enter your name"); 
return false; 
} else if(register_password =="") 
{ 
alert("please enter your password"); 
return false; 
} 
else 
{ 
return true; 
} 
     }); 
     }); 
      </script> 
     </head> 
     <body> 
      <form action="" method="post"> 
      Register name:<input type="text" name="reg_username" id="reg_username"><br> 
     Password: <input type="password" name="reg_password" id="reg_password"><br> 

      <input type="submit" id="submit"> 
     </form> 
    </html> 
+0

请使用jquery验证,而不是使用php为此目的,因为php是服务器端和jquery是客户端 –