2013-07-02 135 views
0

在PHP代码中,当我试图验证基本登录验证(空字段,数字字段等)时,我的页面得到刷新,所有已输入的数据都消失。我的示例代码:登录验证时刷新页面

if(isset($_POST['Submit'])) 
{ 

// username and password sent from form 
$MailId=$_POST['MailId']; 
$Password=$_POST['Password']; 


    if(empty($_POST['MailId'])) 
    { 
    $MerrorMessage = "You forgot to enter a MailId!"; 
    } 

    else if(!preg_match("/^[_\.0-9a-zA-Z-][email protected]([0-9a-zA-Z][0-9a-zA-Z-]+\.)+[a-zA-Z]{2,6}$/", $MailId)) 
    { 
    $MailformaterrorMessage = "Email ID format is not correct!"; 
    } 


    if(empty($_POST['Password'])) 
    { 
    $PerrorMessage = "You forgot to enter a Password!"; 
    } 


    else 
    { 
     main Logic 
    ..... 

    } 

如果不使用Javascript,可以避免页面刷新的任何建议?

+3

没有'Javascript','Jquery'页面刷新不可避免 –

+0

当您再次显示它们时,将它们提供的数据放回到表单中 – Anigel

+0

哈哈这听起来像你已经知道答案是表单验证的JavaScript和表单处理的PHP –

回答

0

使用AJAX代替它来验证它到服务器没有RELOADING。详细了解AJAX如何工作及其用途。

+0

仍然使用JavaScript – user1937198

+0

所以你想要一个AJAX效果,而不使用JAVASCRIPT?OO – o2kevin

+0

http://stackoverflow.com/questions/2386602/ajax-without-javascript 也许它会有帮助 – o2kevin

0

您有两种选择,可以在不刷新页面的情况下验证数据。 JavaScript & AJAX

我宁愿后者,但这里是一个简单的Js验证看起来像,只是为了得到图片。

<script type='text/javascript'> 
var name = 'PHPNoob'; 

if(name.length < 2){ 
     document.write('Name can not be less than 2 characters long'); 
}else{ 
    document.write('Name is oK'); 
} 
</script> 

例如,将验证名称长度是否小于2个字符。

如果要使用AJAX进行验证,则必须创建相同的PHP页面和另一个AJAX文件,以将这些值发送到服务器进行验证。由于AJAX非常快速,并且您可能有很多好处而不是使用Js

+0

不要忘记,即使表单在提交之前已经过“验证”客户端,仍然应该在提交时验证服务器端,因为忽略任何形式的客户端或提交前验证 – Anigel

+0

@Anigel yes我也是这个意思。 – 2013-07-02 16:34:29