ホームページ >バックエンド開発 >PHPチュートリアル >php ページはジャンプします。ローカルの Windows 環境は正常ですが、アップロードされた Linux サーバーはジャンプできません。
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); }}
跳べない性能とは?ページが存在しないのでしょうか?それともスクリプトが応答していないのでしょうか?
1. 従来のコードは例外をスローしないため、例外処理は無効であるため、削除できます。おそらくそれが彼の理由です
2. URL ジャンプには絶対パスを使用する方が良いです
location="/index.php"
ジャンプに失敗するとどのような症状が現れますか?ページが存在しないのでしょうか?それともスクリプトが応答していないのでしょうか?
または、静的 HTML ファイルを作成し、loginin.php と同じ場所に置き、loginin.php の js をコピーして、正常にジャンプできるかどうかをテストできますか?
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"
ログを記録してプログラムの行き先を確認してから決定します。
//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); }}
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的跳转功能试试看。
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_start() 了
?出session看看有什??西?
问题初步判断确实是出在我session 检查的代码里,谢谢大家帮忙分析!