-1

サーバーにアップロードしているときにphpコードが機能しません.localhostでこれを実行していると、正常に動作します..なぜ?

<?php
ob_start();
include 'CUserDB.php';
session_start(); 
include 'config.php';
$myusername=$_POST['txtusername']; 
$mypassword=$_POST['txtpassword']; 
$typ= $_POST['type'];
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$typ = stripslashes($typ);    
$myusername = mysql_real_escape_string($myusername);
$mypassword=mysql_real_escape_string($mypassword);
 $typ = mysql_real_escape_string($typ);          
        try {
            $oUser = new CUserDB();
            $result = $oUser->Login($myusername,$mypassword,$typ);
            } 
        catch (PDOException $pe)
         {
            die("Error occurred:" . $pe->getMessage());
         }   
    if($result[0][0][UserName] != '')
        {
            session_start(); 
            $_SESSION['UserId'] = $myusername;
           if( $typ == "Dealer")
            { 
            header('location:Dealer/ManageProfile.php'); 
            }
           else if ($typ == "Individual")
            {
             header('location:Individual/managep.php'); 
            }
           else 
            {
             header('location:Builder/managep.php'); 
            }
        }
   else 
    { 
    header('location:header.php'); 
    }
?>

これは、サーバーでこれを実行しているときのチェックログインページです。ログインをクリックした後、このページが呼び出されます。しかし、サーバーでは、ログインページの後にリダイレクトされず、checklogin.phpページにとどまります。なぜこれがサーバーで起こっているのですか?

4

2 に答える 2

2

http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.htmlによると、Location ヘッダーは絶対 URI である必要があります。例:

Location: http://yourserver/header.php

また、適切なヘッダー名はLocation、大文字です。
コロン文字とヘッダー値の間にもスペース文字が必要です。

PHPのドキュメントによると:

通常、$_SERVER['HTTP_HOST']、$_SERVER['PHP_SELF']、および dirname() を使用して、相対 URI から絶対 URI を自分で作成できます。

<?php
/* Redirect to a different page in the current directory that was requested */
$host  = $_SERVER['HTTP_HOST'];
$uri   = rtrim(dirname($_SERVER['PHP_SELF']), '/\\');
$extra = 'mypage.php';
header("Location: http://$host$uri/$extra");

別の問題がある可能性がありますが、互換性の問題を回避するために、可能な限り HTTP プロトコルを尊重するようにしてください。

于 2013-10-30T10:13:52.667 に答える
1
  1. コードに構文エラーがないことを確認してください。http://phpcodechecker.com/のようなものは正常に動作するはずです。
  2. 含めるファイルが実際に含まれていることを再確認してください。代わりにrequireに変更してみて、何が起こるか見てください
  3. PDO 拡張機能が存在し、機能していることを確認してください。簡単phpinfo()に実行して、有効になっているものを確認してください。
  4. エラーを有効にして (まだ有効になっていない場合)、問題を解決してください。
于 2013-10-30T10:14:34.600 に答える