2011-04-29 59 views
1
<?php 
$con = mysql_connect("localhost", "root", ''); 

if (!$con) 
{ 
    die('Cannot make a connection'); 
} 


mysql_select_db('yumbox_table', $con) or die('Cannot make a connection'); 



$username = $_POST['user_name']; 
$password = $_POST['password']; 
$type = $_POST['user_type']; 

$data = mysql_query("SELECT * from users ") or die(mysql_error()); 

$info = mysql_fetch_array($data); 

$count = mysql_numrows($info); 

if ($count==1) 
{ 
    echo ("Success!!"); 
} 
else 
{ 
    echo ("BIG FRIGGIN FAILURE!!"); 
} 

mysql_close($con); 
?> 

每当我尝试运行这段代码,我得到这些美丽的大错误信息:任何人都可以帮我弄清楚这段代码有什么问题吗?

(!) Notice: Undefined index: user_name in C:\wamp\www\login.php on line 14 
Call Stack 
# Time Memory Function Location 
1 0.0008 370104 {main}() ..\login.php:0 

(!) Notice: Undefined index: password in C:\wamp\www\login.php on line 15 
Call Stack 
# Time Memory Function Location 
1 0.0008 370104 {main}() ..\login.php:0 

(!) Notice: Undefined index: user_type in C:\wamp\www\login.php on line 16 
Call Stack 
# Time Memory Function Location 
1 0.0008 370104 {main}() ..\login.php:0 

(!) Warning: mysql_numrows() expects parameter 1 to be resource, array given in C:\wamp\www\login.php on line 22 
Call Stack 
# Time Memory Function Location 
1 0.0008 370104 {main}() ..\login.php:0 
2 0.0157 380104 mysql_numrows () ..\login.php:22 

我一直在拉我的头发试图找出背后的意义并解决的,而可悲的是有看不到解决方案。任何人都可以帮忙吗?

+0

我相信它是'$ _POST'变量..确保表单中输入字段的名称与您在'$ _POST' – Sufendy 2011-04-29 04:10:29

回答

4

POST不包含有问题的变量,或者您没有首先执行POST。

+1

中使用的名称完全匹配。在分配它们之前,您应该使用'isset($ _ POST ['user_name'],$ _POST ['password'],$ _POST ['user_type'])''。 – pickypg 2011-04-29 04:10:08

1

尝试:

$count = mysql_numrows($data); 

它说你传递的mysql_numrows数组时,预计的资源。

1

它告诉你你引用的$ _POST值不存在。您是否向此页面提交表单?如果是这样,请确保您检查您的表单字段名称。如果没有 - 这个脚本需要一个表单提交给它。

0

这些行会导致“未定义索引”警告。

$username = $_POST['user_name']; 
$password = $_POST['password']; 
$type = $_POST['user_type']; 

当您提交表单以这个脚本,$_POST是包含所有形式元素的数组。在你的情况下,user_namepassworduser_type表单元素不存在,或者你没有提交表单。因此,数组元素不存在。当您尝试从不可靠数组元素中读取时,您会看到“未定义索引”通知。

另一个警告是由该行造成的:

$count = mysql_numrows($info); 

你传递$info,数组来mysql_numrows。你应该从mysql_query传递一个结果资源。你应该通过$datamysql_numrows

+0

使用“print_r($ _ POST)”查看所有POST变量以验证它们。 – Mikecito 2011-04-29 04:16:14

相关问题