繁体   English   中英

PHP变量$ page没有正确传递到URL

[英]php variable $page not passed correctly into the URL

我正在尝试从Kollaborate安装一个审批服务器,它基本上是一个包含js / php文件的zip程序包,需要将其部署在文档根目录中,然后导航至http://server-ip/install/index.php

但是导航到下一页会导致将$ page变量直接传递到URL中,而不是像1.php-> 2.php之类的东西传递给URL。我得到了这个信息: http//server-ip/install/index.php?page=<?=($page+1)导致出现“找不到页面!” 另外,网页上的一些pagecounter不能正确显示,因此,看起来index.php中的$ page变量没有正确地以其真实值传递给浏览器。 suEXEC被禁用为快速cgi包装器,并且.htaccess中有一些重写规则

RewriteEngine On
# Is not directory
RewriteCond %{REQUEST_FILENAME} !-d
# Is an existing php file
RewriteCond %{REQUEST_FILENAME}\.php -f
# rewrite index to index.php
RewriteRule ^(.*)$ $1.php

导航功能的一小段代码是用javascript完成的:由于这是一款可以购买的软件,通常不需要客户编辑,我只是​​向他们展示它们的构造方式。 除了说我的安装有问题之外,Kollaborate的支持无法进一步帮助我。

<?php
$page_count = 15;
$page = 1;
if (isset($_GET['page'])) $page = $_GET['page'];

if (!file_exists("pages/$page.php")) {
    echo '<h1>Error: Page not found!</h1>
    <a href="index.php?page='.($page+1).'"><button>Next Page</button</a>';
    exit;
}

导航步骤在index.php中进一步

<script>
function nextPage()
{
if (typeof endPage == 'function') {
    var err = endPage();
            if (err && err.length > 0) {
        $('#error').html(err);
        $('#error').show();
        return;
    }
}

$('#error').hide();
    window.location.href = "index.php?page=<?=($page+1)?>";
}
</script>

此Kollaborate服务器在Ubuntu上需要某种LAMPP堆栈,但我使用的是CENTOS,并安装了单独的必需软件包,如php / mysql / nodejs /

该服务器的配置分15个步骤,每个步骤都在安装文件夹内pages文件夹中的单独php文件(1.php至15.php)中定义。

我一年前曾与Centos一起工作过,但现在不知道要去哪里找...这是httpd或php中格式错误的配置问题吗? 还是nodejs? 全部安装在Centos 6.7上,具有最新版本,并且基于httpd和php 5.5.3(之前尝试过nginx,但产生的结果令人失望)

乍看之下,似乎短标记可能未在您的php配置中打开。 使用短标签<? 而不是长标签<?php要求设置short_open_tag php ini指令。 如果您在应用程序中创建一个php脚本并运行phpinfo(); 应该有一行告诉您短标签是关闭还是打开。 只需搜索“ short_open_tag”。

您也可以尝试在index.php切换到长标签语法,所以不要

window.location.href = "index.php?page=<?=($page+1)?>";

该行将是

window.location.href = "index.php?page=<?php echo ($page+1);?>";

另一种方法是安装PHP 5.4,它会自动启用短回显标记,而与PHP.ini中的short_open_tag值无关。

这可能是解决该问题的更好方法,因为它允许您使用简短的回显标记,而无需启用可能破坏XML的简短标记。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM