1

更新:いくつかのSQLクエリを変更し、コントロールパネルに転送するようになりました。これらのエラーが表示されますが。

警告:session_start()[function.session-start]:セッションCookieを送信できません-ヘッダーは/home/lewism/public_htmlの(/home/lewism/public_html/admin/rent/login_success.php:10で開始された出力)によってすでに送信されています74行目の/admin/rent/login_success.php

警告:session_start()[function.session-start]:セッションキャッシュリミッターを送信できません-ヘッダーは/home/lewism/public_htmlですでに送信されています(出力は/home/lewism/public_html/admin/rent/login_success.php:10で開始されました) 74行目の/admin/rent/login_success.php

警告:ヘッダー情報を変更できません-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";
}
?>

みんなありがとう、

Ais

4

2 に答える 2

1

やってみる

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

$result は mysql_num_rows の有効なハンドルではないため、クエリが失敗した理由を調べてください。

それ以上は、PHP のコード サンプルを取得しないことをお勧めします。あなたが投稿したものを含め、それらのほとんどは恐ろしく時代遅れであるか、完全に間違っています. 少なくともこれは mysql_real_escape_string を使用していますが、まだストリップスラッシュと session_register を使用しています。

どちらも非推奨であり、「元に戻す」を削除する magic_quotes は、実際には最新の PHP バージョンで完全に削除されています。

于 2012-03-16T23:12:56.747 に答える
0

実際の出力が送信される前に、通常の HTML タグ、ファイル内の空白行、または PHP から header() を呼び出す必要があることに注意してください。include()、require()、関数、または別のファイル アクセス関数を使用してコードを読み取り、header() が呼び出される前に出力されるスペースまたは空の行があることは、非常に一般的なエラーです。単一の PHP/HTML ファイルを使用する場合にも、同じ問題が存在します。

ソース

于 2012-03-17T00:17:15.877 に答える