0

问题是某些页面实际上不起作用。这是一个 Joomla 网站,例如管理员部分的登录表单有效,但在某些页面上用于排序或编辑内容的表单不传递 POST 数据,而在其他页面上则传递。问题现在也出现在前端,而且过去两年的形式都是如此。网站最近被转移到新的主机,PHP 5.4要求我隐藏一些 E_STRICT 通知,但仅此而已。我很确定这个新版本的 PHP 与它有关。

这是现在最重要的页面代码。

<form action="<?php echo $_SERVER["PHP_SELF"] ?>?option=com_jumi&fileid=7&Itemid=100&goto=jobsave" method="post" enctype="application/x-www-form-urlencoded" target="_self">
<table>
    <tbody>
        <tr>
            <td>Category: </td>
            <td>
                <select name="jCat" size="1">
                    <?php foreach($cats as $jcat): ?>
                    <option value="<?php echo $jcat['pk_categorie']; ?>" <?php if($jCategory == $jcat['pk_categorie']) echo 'selected="selected"'; ?>><?php echo $jcat['nom_categorie']; ?></option>
                    <?php endforeach; ?>
                </select>
            </td>
        </tr>
        <tr>
            <td>Job: </td>
            <td><input type="text" name="jobCode" value="<?php echo $jobCode ?>" /></td>
        </tr>
        <tr>
            <td>Title(english): </td>
            <td><input type="text" name="jTitle" value="<?php echo $jTitle ?>" /></td>
        </tr>
        <tr>
            <td>Titre(français): </td>
            <td><input type="text" name="jTitleFr" value="<?php echo $jTitleFr ?>" /></td>
        </tr>
        <tr>
            <td valign="top">Description(english): </td>
            <td><textarea name="jDesc" rows="10" cols="30"><?php echo $jDesc ?></textarea></td>
        </tr>
        <tr>
            <td valign="top">Description(français): </td>
            <td><textarea name="jDescFr" rows="10" cols="30"><?php echo $jDescFr ?></textarea></td>
        </tr>
        <tr>
            <td valign="top">Requirements(english): </td>
            <td><textarea name="jRequ" rows="10" cols="30"><?php echo $jRequ ?></textarea></td>
        </tr>
        <tr>
            <td valign="top">Requirements(français): </td>
            <td><textarea name="jRequFr" rows="10" cols="30"><?php echo $jRequFr ?></textarea></td>
        </tr>
        <tr>
            <td valign="top">Schedule(english): </td>
            <td><textarea name="jSched" rows="10" cols="30"><?php echo $jSched ?></textarea></td>
        </tr>
        <tr>
            <td valign="top">Schedule(français): </td>
            <td><textarea name="jSchedFr" rows="10" cols="30"><?php echo $jSchedFr ?></textarea></td>
        </tr>
        <tr>
            <td valign="top">Salary(english): </td>
            <td><textarea name="jSalary" rows="10" cols="30"><?php echo $jSalary ?></textarea></td>
        </tr>
        <tr>
            <td valign="top">Salary(français): </td>
            <td><textarea name="jSalaryFr" rows="10" cols="30"><?php echo $jSalaryFr ?></textarea></td>
        </tr>
        <tr>
            <td valign="top">Application Process(english): </td>
            <td><textarea name="jAppli" rows="10" cols="30"><?php echo $jAppli ?></textarea></td>
        </tr>
        <tr>
            <td valign="top">Application Process(français): </td>
            <td><textarea name="jAppliFr" rows="10" cols="30"><?php echo $jAppliFr ?></textarea></td>
        </tr>
        <tr>
            <td>Send CV to: </td>
            <td>
                <select name="jCV" size="1">
                    <?php foreach($users as $juser): ?>
                    <option <?php if($jCV == $juser['pk_user']) echo 'selected="selected"'; ?> value="<?php echo $juser['pk_user']; ?>"><?php echo $juser['nom_user']; ?></option>
                    <?php endforeach; ?>
                </select>
            </td>
        </tr>
        <tr>
            <td>Status: </td>
            <td>
                <select name="jStatus">
                    <option <?php if($jStatus == 1) echo 'selected="selected"'; ?> value="1">Activate</option>
                    <option <?php if($jStatus == 0) echo 'selected="selected"'; ?> value="0">Deactivate</option>
                </select>
            </td>
        </tr>
        <tr>
            <td colspan="2" align="center"><input type="submit" name="" value="Save" /></td>
        </tr>
    </tbody>
</table>
<input type="hidden" name="jid" value="<?php echo $jid ?>" />
<input type="hidden" name="<?php echo JUtility::getToken() ?>" value="1" />

同样,这工作了几年,并且自从此更新以来,它不会将任何帖子数据传递到页面。

编辑:接收数据的代码,我在它之后评论了其他所有内容,因为它是无关紧要的,因为在这第一步 POST 数据丢失。

<?php
// jobs Admin
require('components/com_jumi/files/jobsAdmin/configuration.php');
$document =& JFactory::getDocument();
$css = JURI::base().'components/com_jumi/files/jobsAdmin/style.css';
$document =& JFactory::getDocument();
$document->addStyleSheet($css);
jimport( 'joomla.html.html.form' );
echo '<pre>' . print_r( $_POST, true ) . '</pre>';
?>

我也尝试将 print_r 放在第一位,但它仍然是空的。

4

0 回答 0