目錄
回复讨论(解决方案)
首頁 後端開發 php教程 php 页面跳转 本地windows 环境正常,上传linux 服务器上跳转不了

php 页面跳转 本地windows 环境正常,上传linux 服务器上跳转不了

Jun 23, 2016 pm 01:52 PM
php 上傳 伺服器 環境 跳轉

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 脚本没反应。

在登录成功代码里加了一个alert
if ($arr && $arr['sys_user_passwd'] == generateUserPassword($password)) {
$_SESSION[SESSIONUSER] = $username;
echo '';
echo '';
}else {
echo "";
exit(0);
}

效果是:


点击确认后,重新回到登录界面了

文件名大小写一致么?windows默认是不区分大小写的,linux是区分大小写的。另外,你直接访问那个php,看是否能访问?
或者,你些一个静态的html文件,放到 loginin.php 相同位置,把 loginin.php里面的js拷贝进去测试,看能否正常跳转?

重新回到登录界面 不一定是你没有跳转到index.php,有可能是你的session没有注册成功,到index.php又转到login.php了。

你在index.php最前面放置一些输出信息,看是否有访问过index.php

?log看看程序走到哪?,再?定??。

//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($username);
$arr = mysql_fetch_array($rs);
//echo $arr['sys_user_passwd'];
if ($arr && $arr['sys_user_passwd'] == generateUserPassword($password)) {
$_SESSION[SESSIONUSER] = $username;
echo '';
echo '';
}else {
echo "";
//exit(0);
}
//}
//catch (Exception $e){
//echo "";
//exit(0);
//}
}

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

?log看看程序走到哪?,再?定??。

//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

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 Dec 24, 2024 pm 04:42 PM

適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南

CakePHP 專案配置 CakePHP 專案配置 Sep 10, 2024 pm 05:25 PM

CakePHP 專案配置

CakePHP 日期和時間 CakePHP 日期和時間 Sep 10, 2024 pm 05:27 PM

CakePHP 日期和時間

CakePHP 檔案上傳 CakePHP 檔案上傳 Sep 10, 2024 pm 05:27 PM

CakePHP 檔案上傳

CakePHP 路由 CakePHP 路由 Sep 10, 2024 pm 05:25 PM

CakePHP 路由

討論 CakePHP 討論 CakePHP Sep 10, 2024 pm 05:28 PM

討論 CakePHP

如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 Dec 20, 2024 am 11:31 AM

如何設定 Visual Studio Code (VS Code) 進行 PHP 開發

CakePHP 快速指南 CakePHP 快速指南 Sep 10, 2024 pm 05:27 PM

CakePHP 快速指南

See all articles