0

ちょっとした問題があります。専門家の 1 人が助けてくれるはずです :-p.

データベースに次のテーブルがあります。

b_admins:

id
username
password
email
locationid

b_locations

id
name
description

ログイン スクリプト:

<?php

    // Inialize session
    session_start();

    // Connection to MySQL Database.
    include ('_includes/_dbconnection.php');
    include ('_includes/_dbopen.php');

    // Retrieve username and password from database according to user's input
    $login = mysql_query("SELECT * FROM b_admins WHERE (ausername = '" . mysql_real_escape_string($_POST['username']) . "') and (apassword = '" .           mysql_real_escape_string($_POST['password']) . "')");

    // Check username and password match
    if (mysql_num_rows($login) == 1) {

    // Set username session variable
    $_SESSION['username'] = $_POST['username'];

    // Set locationid session varaible //// Modified 12 April 2012.
    $_SESSION['locationid'] = $row_Recordset1["locationid"];

    $locationid = $_SESSION['locationid'];

    // Jump to secured page
    header('Location: _home.php');
    }

    else {

    // Jump to login page
    header('Location: index.php');
    }

    // Script Source: http://frozenade.wordpress.com/2007/11/24/how-to-create-login-page-in-php-and-mysql-with-session/

?>

私のホームページのスクリプト:

    // Check, if user is already login, if login proceed to _home.php
    if (isset($_SESSION['username'])) {
    header('Location: _home.php');
    }


    // Load Header file.
    include ('_includes/_header.php');

    // Template Construction.

    // Create Homepage Layout after $home01.
    $home01 = '<div id="imglogo"></div>
                <div id="container">
                <div class="top"> 
                <div id="logo">
                </div>
                <ul class="socialicons">
                </ul>
                </div>
                <div id="content" >
                <div id="home"> 
                <div class="latest">';


    // MySQL Load Location Name from MySQL database after $home02.
    $home02 = '<h3>';


    // Create Notification Area for the Administrator after $home03.
    $home03 = '&nbsp; Administrator Panel</h3><p>You are logged in to make changes to your Branch, only your Branch details can be changed  within this Administration Panel. You may proceed to make any changes using the menu at the bottom.</p></div>
                <!-- /Latest section -->

                <!-- News info section -->
                <ul class="news-info">
                <li><label>Users Registered</label>';


    //MySQL Load User count from MySQL database after $home04.
    $home04 = '<span>';


    // Close Template.
    $home05 = '</span></li>
                </ul>
                <!-- /News info section -->
                </div>        
                <!-- /Home --> 

                <!-- Menu -->
                <div class="menu">
                <ul class="tabs">
                <li><a href="_home.php" class="tab-home"></a></li>
                <li><a href="_events.php" class="tab-events"></a></li>
                <li><a href="_gallery.php" class="tab-portfolio"></a></li>
                <li><a href="_template_edit.php" class="tab-contact"></a></li>
                </ul>
                </div>
                </div>';

    ////////////////////////////////////////////////////////////////////////// Combining Template with MySQL Data.

    /// Build Home Page from MySQL database.

     $SQL = "SELECT * FROM b_admins, b_locations WHERE locationid ='$locationid'  LIMIT 0, 1";
            $result = mysql_query($SQL);

            while ($db_field = mysql_fetch_assoc($result)) {

                echo $home01;
                echo $home02;
                print $db_field['lcity'];
                echo $home03;
            }

    /// Build Home Page News Section from MySQL database.
                echo $home04;
    $SQL = "SELECT count( * ) as total_record  FROM `b_users` WHERE locationid = '$locationid'";
                echo $home05;

    /// Load Footer and Database close file.
    include ('_includes/_footer.php');
    include ('_includes/_dbclose.php');

?>

b_admins の値「locationsid」を保存して、SQL を使用して、「locationsid」がデータベース b_locations のテーブルと同じデータベースからデータを取得できるようにしたいと考えています。

また、ログイン スクリプトを使用してログインしたときに修正方法がわからないという次のエラーが表示されます

前もって感謝します :-)

4

3 に答える 3

1

最初にレコードを取得する必要があるようです。レコードを取得するには、Mysql の結果を取得する必要があります。

$row_Recordset1 = mysql_fetch_array($login, MYSQL_ASSOC);
$_SESSION['locationid'] = $row_Recordset1["locationid"];

また、ホームページにも session_start(); が必要です。または、関数呼び出しの後でのみページのロード時にセッションが存在しないため、有効になることはありません

それでもヘッダー リダイレクトが発生する場合は、html メタ リフレッシュを使用することもできます。同じページへのリダイレクトを指していないことも確認してください。

それが役に立てば幸い

于 2012-04-12T13:48:33.870 に答える
0

「ホームページ スクリプト」というと、このファイルは index.php ですか、それとも _home.php ですか?

_home.php の場合、次の行は必要ありません。

// Check, if user is already login, if login proceed to _home.php
if (isset($_SESSION['username'])) {
header('Location: _home.php');
}

これがリダイレクト ループの原因である可能性があります。

于 2012-04-12T12:34:08.947 に答える
0

あなたの質問も間違っていると思います。

// Retrieve username and password from database according to user's input
$login = mysql_query("SELECT * FROM b_admins WHERE (ausername = '" .mysql_real_escape_string($_POST['username']) . "') and (apassword = '" .          mysql_real_escape_string($_POST['password']) . "')");

コードにタイプミスがあります。

ausernameusername * apassword * である必要がありますpasssword

于 2012-04-12T12:44:48.940 に答える