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

鄙人姓胡 2014-08-05 09:32:40
php 做的一个下项目,登录后页面跳转到首页,在本地的Windows 环境是正常的,上传到linux服务器上就跳转不了。求解答。
代码,项目结构如下:

action/loginin.php
//user login
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 '<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位
...全文
307 17 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
鄙人姓胡 2014-08-05
  • 打赏
  • 举报
回复
问题初步判断确实是出在我session 检查的代码里,谢谢大家帮忙分析!
傲雪星枫 2014-08-05
  • 打赏
  • 举报
回复
輸出session看看有什麼東西?
xuzuning 2014-08-05
  • 打赏
  • 举报
回复
那就是你没有 session_start() 了
newpeng 2014-08-05
  • 打赏
  • 举报
回复
引用 12 楼 huweilong1030 的回复:
[quote=引用 9 楼 newpeng 的回复:] 有可能是你的session没有注册成功,到index.php页面之后,判断没有登录,又往登录界面跳转了。你先屏蔽index.php的跳转功能试试看。
session已经设置成功,屏蔽掉index.php的跳转后,程序就停在了logininphp[/quote] 从你贴出来的loginin.php代码和运行情况来看,是不可能往 录界面跳转 跳转的,对吧? 屏蔽掉index.php的跳转后,程序就不再往登录界面跳转,这也就说明了一些问题。 你再在index.php最前面输出一些信息,看看情况如何?
鄙人姓胡 2014-08-05
  • 打赏
  • 举报
回复
引用 11 楼 xuzuning 的回复:
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楼的图就是登录后,弹出对话框的截图
鄙人姓胡 2014-08-05
  • 打赏
  • 举报
回复
引用 9 楼 newpeng 的回复:
有可能是你的session没有注册成功,到index.php页面之后,判断没有登录,又往登录界面跳转了。你先屏蔽index.php的跳转功能试试看。
session已经设置成功,屏蔽掉index.php的跳转后,程序就停在了logininphp
xuzuning 2014-08-05
  • 打赏
  • 举报
回复
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>";
  }
}
如果登录成功,会弹出“验证成功”对话框,你有吗?
鄙人姓胡 2014-08-05
  • 打赏
  • 举报
回复
引用 7 楼 fdipzone 的回复:
設log看看程序走到哪裡,再確定問題。

//user login
if (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楼有贴运行现象
newpeng 2014-08-05
  • 打赏
  • 举报
回复
有可能是你的session没有注册成功,到index.php页面之后,判断没有登录,又往登录界面跳转了。你先屏蔽index.php的跳转功能试试看。
鄙人姓胡 2014-08-05
  • 打赏
  • 举报
回复
引用 2 楼 xuzuning 的回复:
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 '<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>"; //exit(0); } //} //catch (Exception $e){ //echo "<script language=javascript>alert('".$e."'); window.location='../login.php'</script>"; //exit(0); //} }
傲雪星枫 2014-08-05
  • 打赏
  • 举报
回复
設log看看程序走到哪裡,再確定問題。

//user login
if (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);
    }
}
newpeng 2014-08-05
  • 打赏
  • 举报
回复
你在index.php最前面放置一些输出信息,看是否有访问过index.php
newpeng 2014-08-05
  • 打赏
  • 举报
回复
重新回到登录界面 不一定是你没有跳转到index.php,有可能是你的session没有注册成功,到index.php又转到login.php了。
newpeng 2014-08-05
  • 打赏
  • 举报
回复
文件名大小写一致么?windows默认是不区分大小写的,linux是区分大小写的。另外,你直接访问那个php,看是否能访问? 或者,你些一个静态的html文件,放到 loginin.php 相同位置,把 loginin.php里面的js拷贝进去测试,看能否正常跳转?
鄙人姓胡 2014-08-05
  • 打赏
  • 举报
回复
引用 1 楼 newpeng 的回复:
跳转不了的表现是什么呢?网页不存在?还是脚本没反应?


Js 脚本没反应。

在登录成功代码里加了一个alert
if ($arr && $arr['sys_user_passwd'] == generateUserPassword($password)) {
$_SESSION[SESSIONUSER] = $username;
echo '<script language=javascript>alert("验证成功")</script>';
echo '<script language=javascript>window.location="../index.php"</script>';
}else {
echo "<script language=javascript>alert('用户名或密码不正确,请重新输入!'); window.location='../login.php'</script>";
exit(0);
}

效果是:


点击确认后,重新回到登录界面了
xuzuning 2014-08-05
  • 打赏
  • 举报
回复
1、你的传统代码不会抛出异常,所以你的异常处理是无效的,可以删去。或许就是他的原因 2、url 跳转宜使用绝对路径 location="/index.php"
newpeng 2014-08-05
  • 打赏
  • 举报
回复
跳转不了的表现是什么呢?网页不存在?还是脚本没反应?

21,893

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧