2013-04-24 86 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'。