1

更新:更改了一些 sql 查询,现在它转移到控制面板。虽然它显示了这些错误。

警告:session_start() [function.session-start]:无法发送会话 cookie - 标头已由 /home/lewism/public_html 中的 /home/lewism/public_html/admin/rent/login_success.php:10 发送(输出开始于 /home/lewism/public_html/admin/rent/login_success.php:10) /admin/rent/login_success.php 在第 74 行

警告:session_start() [function.session-start]:无法发送会话缓存限制器 - 标头已在 /home/lewism/public_html 中发送(输出开始于 /home/lewism/public_html/admin/rent/login_success.php:10) /admin/rent/login_success.php 在第 74 行

警告:无法修改标头信息 - 标头已由第 76 行 /home/lewism/public_html/admin/rent/login_success.php 中的(输出开始于 /home/lewism/public_html/admin/rent/login_success.php:10)发送

〜嘿伙计们,

仅使用来自 phpeasysteps.com 的登录脚本,当我尝试登录时它会提供以下错误,任何建议

警告:mysql_num_rows():在第 27 行的 /home/lewism/public_html/admin/rent/checklogin.php 中提供的参数不是有效的 MySQL 结果资源 用户名或密码错误

下面是 checklogin.php 的代码

<?php
$host="localhost"; // Host name 
$username="lewism_lewis"; // Mysql username 
$password="teamgreen"; // Mysql password 
$db_name="lewism_car"; // Database name 
$tbl_name="Customers"; // Table name

// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");

// username and password sent from form 
$myusername=$_POST['myusername']; 
$mypassword=$_POST['mypassword'];

// To protect MySQL injection
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);

$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);

// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row

if($count==1){
// Register $myusername, $mypassword and redirect to file "login_success.php"
session_register("myusername");
session_register("mypassword"); 
header("location:login_success.php");
}
else {
echo "Wrong Username or Password";
}
?>

多谢你们,

艾斯

4

2 回答 2

1

尝试做

$result = mysql_query($sql) or die(mysql_error());
                           ^^^^^^^^^^^^^^^^^^^^^^--- add this

由于 $result 不是 mysql_num_rows 的有效句柄,请找出查询失败的原因。

除此之外,我建议您不要获取 PHP 的代码示例。其中大多数,包括您发布的内容,都已经过时或完全错误。至少这个使用mysql_real_escape_string,但它仍然使用stripslashes 和session_register。

两者都已被弃用,并且在最新的 PHP 版本中,实际上已经完全删除了带有“撤消”斜杠的 magic_quotes 内容。

于 2012-03-16T23:12:56.747 回答
0

请记住,必须在发送任何实际输出之前调用 header(),无论是通过普通 HTML 标记、文件中的空白行还是从 PHP 发送。使用 include() 或 require()、函数或其他文件访问函数读取代码并在调用 header() 之前输出空格或空行是一个非常常见的错误。使用单个 PHP/HTML 文件时也存在同样的问题。

资源

于 2012-03-17T00:17:15.877 回答