1

機能しているログイン システムをあるドメインから別のドメインに移管しようとしました。ドメイン A では完全に動作しますが、エラーが発生し始めます。

警告: ヘッダー情報を変更できません - /home/hootlute/public_html/personal/example/files/ の (/home/hootlute/public_html/personal/example/files/admin/config.php:9 で開始された出力) によって既に送信されたヘッダー34 行目の admin/admin_process.php

警告: mysql_free_result(): 指定された引数は、48 行目の /home/hootlute/public_html/personal/example/files/admin/admin_process.php の有効な MySQL 結果リソースではありません

以下はadmin_processからの私のコードです

<?php
session_start(); 
if ($_POST['adminID']=="") {
    $_SESSION['error']="Please log in with an admin account.";
    header('Location: http://login.example.com/login/admin');
}

include 'config.php';
include 'functions.php';

$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to mysql');
mysql_select_db($dbname);

$sql = "SELECT * FROM admin WHERE username='" .$_POST["adminID"]. "' AND password='" .$_POST["password"]. "'";
$result = mysql_query($sql);

if (!$result) {
    die('Invalid query: ' . mysql_error());
}

$num_rows = mysql_num_rows($result);


// CHECKS FOR EXISTING ACCOUNT
if ($num_rows === 0) {
    $_SESSION['error']="Unable to log in. Admin account not found";
    printf("<script>location.href='http://login.example.com.com/login/'</script>");

}
else {
    $admin_rows = mysql_fetch_assoc($result);
    $cookie_info = $admin_rows['admin_id']."$".$admin_rows['name'];
    $expire = time() + 9800;
    setcookie("FS_admin_id",$cookie_info,$expire);
    $sql = "UPDATE admin set login_time = UTC_TIMESTAMP()  WHERE username='" .$_POST["adminID"]. "' AND password='" .$_POST["password"]. "'";
    $logresult = mysql_query($sql);

    if (!$logresult) {
        die('Invalid query: ' . mysql_error());
    }


    /* printf("<script>location.href='admin_home.php'</script>"); */

}

mysql_free_result($result);
mysql_free_result($logresult);
mysql_close($conn);



?>

34 行目 = setcookie("FS_admin_id",$cookie_info,$expire);

コードの何が問題になっていますか? PHPのバージョンの違いによるものでしょうか?コードの途中で session_start() を宣言すると、同じタイプのエラーが発生します...データが印刷されていないにもかかわらず。

setcookie() の問題を検索してきましたが、結果はすべて setcookie() の使用に関連していました。

どんな返信でも大歓迎です:)

4

2 に答える 2

0
  1. 前に空白を見つけるようにしてください

  2. ?> の後の空白を探して削除してください。

  3. ヘッダーを変更するコードの前に実行できるエコーを削除します。

  4. PHPファイルのファイルエンコーディングを「ANSI」に変更してみてください。

幸運を!

于 2014-01-15T13:26:08.977 に答える