使用しているログイン スクリプトに問題があります。問題は、セッションが登録されていないログイン後の一部のホスティング プロバイダーにあります。PHPエラーログで、このエラーを確認できます
PHP 警告: 不明: あなたのスクリプトは、PHP 4.2.3 まで存在していたセッションの副作用に依存している可能性があります。register_globals が有効になっていない限り、セッション拡張機能はグローバル変数をデータのソースと見なさないことに注意してください。行 0 の不明で、それぞれ session.bug_compat_42 または session.bug_compat_warn をオフに設定することにより、この機能とこの警告を無効にすることができます。
しかし、bluehost や hostmonster などのほとんどのホスティングでは、エラーなく正常に動作します。誰かが私がここで間違っていることを指摘できますか? よろしくお願いします。
コード:
<?
session_start();
ob_start();
?>
<?php
$err=isset($_GET['error'])?$_GET['error']:"";
if($err=='error'){?>
<div class="errormsgbox">Wrong Username or Password. Please try again.</div>
<?php }
if(!isset($_SESSION['adminuser'])){
if($_SERVER["REQUEST_METHOD"] == "POST")
{
// username and password sent from Form
$adminuser=mysql_real_escape_string($_POST['adminuser']);
$adminpassword=mysql_real_escape_string($_POST['adminpassword']);
$gpassword=md5($adminpassword); // Encrypted Password
$sql="SELECT id FROM admin WHERE adminuser='$adminuser' and adminpassword='$gpassword'";
$result=mysql_query($sql);
$count=mysql_num_rows($result);
// If result matched $username and $password, table row must be 1 row
if($count==1)
{
session_register("adminuser");
header("location:index.php");
}
else
{
header("location:login.php?error=error");
}
}
ob_end_flush();
?>
<form action="login.php" method="post">
<div class="login_input">
<label class="loginlbl" for="adminuser">UserName :</label>
<input type="text" name="adminuser"/>
</div>
<div class="login_input">
<label class="loginlbl" for="adminpassword">Password :</label>
<input type="password" name="adminpassword"/>
</div>
<div class="login_submit">
<input type="submit" id="submit" value=" Login to Admin Contol Panel"/>
</div>
</form>
<?php }else{
header("location:index.php");
}
?>