2013-04-24 87 views
0

下面的代码在提交按钮时应该给出错误或确定。但问题是它不会做任何事情。谁能告诉我我在这里做错了什么?php注册码不能正常工作

<?php 
include 'ini.php'; 
?> 

<?php 
if(isset ($_POST['reg_u_name'],$_POST['reg_email'], $_POST['reg_password'])) { 
$reg_u_name = $_POST['reg_u_name']; 
$reg_email = $_POST['reg_email']; 
$reg_password = $_POST['reg_password']; 

$errors = array(); 

if (empty($reg_u_name) || empty($reg_email) || empty($reg_password)) { 
    $errors[] = 'All fields required'; 
}else{ 
    echo 'OK'; 
} 

} 
?> 

<form action="" method="post"> 
<p>Username:<br/><input type="text" name="reg_u_name" maxlength="20" ></p> 
<p>Email:<br/><input type="text" name="reg_email" maxlength="20" ></p> 
<p>Password:<br/><input type="password" name="reg_password" maxlength="20" ></p> 
<p><input type="submit" value="Register"></p> 
</form> 

的ini.php文件

<?php 
session_start(); 
error_reporting(0); 
require 'connect.php'; 
include 'user.func.php'; 
?> 
+0

该代码是否正确,你可以在提交后显示'ini.php' – Adeel 2013-04-24 07:27:03

+0

的代码,print_r($ errors),print_r($ _ POST)你看到 – 2013-04-24 07:36:29

+0

你必须在表单中添加这个代码$ _SERVER [ 'PHP_SELF'] – 2013-04-24 07:42:46

回答

0

如果只是一个从您的帖子阵列未设置值,那么你如果条件从来没有遇到过的,这意味着你不会得到任何你期待的显示器。

我会建议单独检查设置个人变量并在$_POST['submit']上执行if,你从来没有做任何与你的$errors阵列,如果它确实分配。 ^^

对我来说,以下工作:

<?php 

if(isset ($_POST['reg_u_name'],$_POST['reg_email'], $_POST['reg_password'])) { 
$reg_u_name = $_POST['reg_u_name']; 
$reg_email = $_POST['reg_email']; 
$reg_password = $_POST['reg_password']; 

$errors = array(); 

if (empty($reg_u_name) || empty($reg_email) || empty($reg_password)) { 
    echo 'All fields required'; 
}else{ 
    echo 'OK'; 
} 

} 
?> 

<form action="" method="post"> 
<p>Username:<br/><input type="text" name="reg_u_name" maxlength="20" ></p> 
<p>Email:<br/><input type="text" name="reg_email" maxlength="20" ></p> 
<p>Password:<br/><input type="password" name="reg_password" maxlength="20" ></p> 
<p><input type="submit" value="Register"></p> 
</form> 

PHPFiddle

+0

这个显示错误之前我点击提交按钮 – 2013-04-24 07:31:55

+0

@KishoreKumar什么版本的PHP?因为它不在我的测试。 – Jon 2013-04-24 07:32:49

+0

下面是该代码的PHP小提琴:http://phpfiddle.org/main/code/tvw-gej – Jon 2013-04-24 07:34:36

1

立即试用。这工作。

<?php 
//include 'ini.php'; 
if(isset($_POST['subBtn'])) 
{ 
if(isset($_POST['reg_u_name'] ,$_POST['reg_email'], $_POST['reg_password'])) 
{ 
$reg_u_name = $_POST['reg_u_name']; 
$reg_email = $_POST['reg_email']; 
$reg_password = $_POST['reg_password']; 

if (empty($reg_u_name) || empty($reg_email) || empty($reg_password)) { 
    echo 'All fields required'; 
}else{ 
    echo 'OK'; 
} 
} 
} 
?> 

<form action="" method="post"> 
<p>Username:<br/><input type="text" name="reg_u_name" maxlength="20" ></p> 
<p>Email:<br/><input type="text" name="reg_email" maxlength="20" ></p> 
<p>Password:<br/><input type="password" name="reg_password" maxlength="20" ></p> 
<p><input type="submit" value="Register" name="subBtn"></p> 
</form> 
+0

您不需要这里的错误数组,只需一个if循环即可。 – 2013-04-24 07:31:54

+0

您删除检查是否有任何字段为空的条件。 – Jon 2013-04-24 07:32:06

+0

此代码在点击提交按钮 – 2013-04-24 07:34:50

0

给出名称atrribute输入submite型像

<input type="submit" name="regist" value="Register"> 

,并切换到该代码

<?php 
if(isset($_POST['regist'])) 
{ 
    $reg_u_name = $_POST['reg_u_name']; 
    $reg_email = $_POST['reg_email']; 
    $reg_password = $_POST['reg_password']; 

    $errors = array(); 

    if (empty($reg_u_name) || empty($reg_email) || empty($reg_password)) { 
    $errors[] = 'All fields required'; 
    }else{ 
    echo 'OK'; 
    } 
} 
?> 

如果所有的表单填写它会响应 'OK'。