ホームページ >バックエンド開発 >PHPチュートリアル >php ページはジャンプします。ローカルの Windows 環境は正常ですが、アップロードされた Linux サーバーはジャンプできません。

php ページはジャンプします。ローカルの Windows 環境は正常ですが、アップロードされた Linux サーバーはジャンプできません。

WBOY
WBOYオリジナル
2016-06-23 13:52:051233ブラウズ

php で作成したプロジェクト。ログイン後、ページはローカル Windows 環境では正常ですが、Linux サーバーにアップロードするとジャンプできません。答えを求めてください。
コード、プロジェクト構造は次のとおりです:

action/loginin.php

//user loginif (isset($_POST['username']) && isset($_POST['password'])		&& !empty($_POST['username']) && !empty($_POST['password'])) {	try{	$username = $_POST['username'];	$password = $_POST['password'];	$rs = $config[DAOIMPL]->getLoginByName($username);	$arr = mysql_fetch_array($rs);	//echo $arr['sys_user_passwd'];	if ($arr && $arr['sys_user_passwd'] == generateUserPassword($password)) {		$_SESSION[SESSIONUSER] = $username;		echo '<script language=javascript>window.location="../index.php"</script>';//跳转到根目录下的index.php	}else {		echo "<script language=javascript>alert('用户名或密码不正确,请重新输入!'); window.location='../login.php'</script>";		exit(0);	}	}	catch (Exception $e){		echo "<script language=javascript>alert('".$e."'); window.location='../login.php'</script>";		exit(0);	}}





さらに、サーバーはオペレーティング システム: Ubuntu 12.04 64 ビット


ディスカッションへの返信 (解決策)

跳べない性能とは?ページが存在しないのでしょうか?それともスクリプトが応答していないのでしょうか?

1. 従来のコードは例外をスローしないため、例外処理は無効であるため、削除できます。おそらくそれが彼の理由です
2. URL ジャンプには絶対パスを使用する方が良いです
location="/index.php"

ジャンプに失敗するとどのような症状が現れますか?ページが存在しないのでしょうか?それともスクリプトが応答していないのでしょうか?



JS スクリプトが応答しません。

ログイン成功コードにアラートを追加しました
if ($arr && $arr['sys_user_passwd'] ==generateUserPassword($password)) {
$_SESSION[SESSIONUSER] = $username;
echo '15b66ea570cbdbd3d250a5be3b81abd8alert("検証成功")2cacc6d41bbb37262a98f745aa00fbf0';
echo 'cb07111ca5ae5ef678bbf0d01d0237c0window.location="../index.php"2cacc6d41bbb37262a98f745aa00fbf0';
}else {
echo "cb07111ca5ae5ef678bbf0d01d0237c0alert('ユーザー名またはパスワードが間違っています。再入力してください!'); window.location='../login.php'2cacc6d41bbb37262a98f745aa00fbf0"; ;
}

結果は次のとおりです:


[確認] をクリックすると、ログイン インターフェイスに戻ります
ファイル名の大文字と小文字は一致していますか? Windows ではデフォルトで大文字と小文字が区別されませんが、Linux では大文字と小文字が区別されます。また、phpに直接アクセスしてアクセスできるか確認してみてはいかがでしょうか?

または、静的 HTML ファイルを作成し、loginin.php と同じ場所に置き、loginin.php の js をコピーして、正常にジャンプできるかどうかをテストできますか?

ログイン インターフェイスに戻ります。index.php にジャンプしなかったわけではありません。セッションが正常に登録されず、index.php に移動してから、login.php にリダイレクトされた可能性があります。

Index.php がアクセスされたかどうかを確認するために、index.php の先頭に出力情報を配置します。

ログを作成してプログラムがどこに行くのかを確認し、確認します。

//user loginif (isset($_POST['username']) && isset($_POST['password'])        && !empty($_POST['username']) && !empty($_POST['password'])) {    echo '1';    try{    $username = $_POST['username'];    $password = $_POST['password'];    $rs = $config[DAOIMPL]->getLoginByName($username);    $arr = mysql_fetch_array($rs);    //echo $arr['sys_user_passwd'];    echo '2';    if ($arr && $arr['sys_user_passwd'] == generateUserPassword($password)) {        $_SESSION[SESSIONUSER] = $username;        echo '3';        echo '<script language=javascript>window.location="../index.php"</script>';//跳转到根目录下的index.php    }else {        echo '4';        echo "<script language=javascript>alert('用户名或密码不正确,请重新输入!'); window.location='../login.php'</script>";        exit(0);    }    }    catch (Exception $e){        echo '5';        echo "<script language=javascript>alert('".$e."'); window.location='../login.php'</script>";        exit(0);    }}

1. 従来のコードは例外をスローしないため、例外処理は無効であるため、削除できます。おそらくそれが彼の理由です

2. URL ジャンプには絶対パスを使用する必要があります
location="/index.php"


あなたの意見によると、コードを修正しましたが、ログインに成功した後、戻ります。ログインインターフェースへ

if (isset($_POST['username']) && isset($_POST['password'])
&& !empty($_POST['username']) && !empty($_POST['password ' ])
) {
//try{
$username = $_POST['username'];
$password = $_POST['password'];
$rs = $config[DAOIMPL]->getLoginByName($ユーザー名 );
$arr = mysql_fetch_array($rs);
//echo $arr['sys_user_passwd'];
if ($arr && $arr['sys_user_passwd'] == generatedUserPassword($password)) {
$_SESSION [ SESSIONUSER] = $username;
echo 'cb07111ca5ae5ef678bbf0d01d0237c0alert("検証成功")2cacc6d41bbb37262a98f745aa00fbf0';
echo 'cb07111ca5ae5ef678bbf0d01d0237c0window.location="/cloudsong/index .php"2cacc6d41bbb37262a98f745aa00fbf0';
}else {
echo "cb07111ca5ae5ef678bbf0d01d0237c0alert('ユーザー名またはパスワードが間違っています。再入力してください!'); window.location='/cloudsong/ login.php'2cacc6d41bbb37262a98f745aa00fbf0";
//exit(0);
}
//}
//catch (Exception $e){
//echo "cb07111ca5ae5ef678bbf0d01d0237c0alert(' ". $e."'); window.location='../login.php'2cacc6d41bbb37262a98f745aa00fbf0";
//exit(0);
//}
}
セッションがは登録されていません 成功すると、index.phpのページに到達後、ログインがないと判断され、ログインインターフェースにジャンプします。まずはindex.phpのジャンプ機能を無効にしてみてください。

ログを記録してプログラムの行き先を確認してから決定します。

//user loginif (isset($_POST['username']) && isset($_POST['password'])        && !empty($_POST['username']) && !empty($_POST['password'])) {    echo '1';    try{    $username = $_POST['username'];    $password = $_POST['password'];    $rs = $config[DAOIMPL]->getLoginByName($username);    $arr = mysql_fetch_array($rs);    //echo $arr['sys_user_passwd'];    echo '2';    if ($arr && $arr['sys_user_passwd'] == generateUserPassword($password)) {        $_SESSION[SESSIONUSER] = $username;        echo '3';        echo '<script language=javascript>window.location="../index.php"</script>';//跳转到根目录下的index.php    }else {        echo '4';        echo "<script language=javascript>alert('用户名或密码不正确,请重新输入!'); window.location='../login.php'</script>";        exit(0);    }    }    catch (Exception $e){        echo '5';        echo "<script language=javascript>alert('".$e."'); window.location='../login.php'</script>";        exit(0);    }}


ログイン成功コードまで実行され、3 階でランニング現象が発生しています
if (isset($_POST['username']) && isset($_POST['password']) && !empty($_POST['username']) && !empty($_POST['password'])) {  $username = $_POST['username'];  $password = $_POST['password'];  $rs = $config[DAOIMPL]->getLoginByName($username);  $arr = mysql_fetch_array($rs);  if ($arr && $arr['sys_user_passwd'] == generateUserPassword($password)) {    $_SESSION[SESSIONUSER] = $username;    echo '<script language=javascript>alert("验证成功")</script>';    echo '<script language=javascript>window.location="/cloudsong/index.php"</script>';  }else {    echo "<script language=javascript>alert('用户名或密码不正确,请重新输入!'); window.location='/cloudsong/login.php'</script>";  }}
ログインに成功すると、「認証成功」ダイアログボックスが表示されますが、お持ちですか?

有可能是你的session没有注册成功,到index.php页面之后,判断没有登录,又往登录界面跳转了。你先屏蔽index.php的跳转功能试试看。



session已经设置成功,屏蔽掉index.php的跳转后,程序就停在了logininphp

if (isset($_POST['username']) && isset($_POST['password']) && !empty($_POST['username']) && !empty($_POST['password'])) {  $username = $_POST['username'];  $password = $_POST['password'];  $rs = $config[DAOIMPL]->getLoginByName($username);  $arr = mysql_fetch_array($rs);  if ($arr && $arr['sys_user_passwd'] == generateUserPassword($password)) {    $_SESSION[SESSIONUSER] = $username;    echo '<script language=javascript>alert("验证成功")</script>';    echo '<script language=javascript>window.location="/cloudsong/index.php"</script>';  }else {    echo "<script language=javascript>alert('用户名或密码不正确,请重新输入!'); window.location='/cloudsong/login.php'</script>";  }}
如果登录成功,会弹出“验证成功”对话框,你有吗?

 有,3楼的图就是登录后,弹出对话框的截图


有可能是你的session没有注册成功,到index.php页面之后,判断没有登录,又往登录界面跳转了。你先屏蔽index.php的跳转功能试试看。



session已经设置成功,屏蔽掉index.php的跳转后,程序就停在了logininphp

从你贴出来的loginin.php代码和运行情况来看,是不可能往 录界面跳转 跳转的,对吧? 屏蔽掉index.php的跳转后,程序就不再往登录界面跳转,这也就说明了一些问题。

你再在index.php最前面输出一些信息,看看情况如何?

那就是你没有 session_start() 了

?出session看看有什??西?

问题初步判断确实是出在我session 检查的代码里,谢谢大家帮忙分析!

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。