3

非常に単純なフォームを持つページをテストしています。

<form action="script/check.php" method = "post">
    <input type = "text" name = "email">
    <input type = "submit">
</form>

ファイルに次のコードがある場合、check.php正常に動作します。

<? 
var_dump($_POST);
?>

期待どおり、出力はarray(1) { ["email"]=> string(5) "hello" }です。

check.phpを含む場合session_start()$_POST空になります。

<?
session_start();
var_dump($_POST);
?>

出力はarray(0) { }です。

この問題を検索するのは困難です。残念ながら、これらの検索用語でオンラインで見つけた結果のほとんどは空の$_SESSION変数に関するものであり、私にとっては問題ではありません。問題は$_POST空です。

サーバーが$_POST保存されているネットワーク上のローカルマシンからページをテストすると、正しく通過します。他の場所では、これは当てはまりません。サイトは機能しません。私はこのタイプのスクリプトを何ヶ月も問題なく使用しており、外部のユーザーは問題なく接続できているため、これは非常に奇妙です。ディレクトリのパーミッションの問題だと思いますが、もっと情報がないと確信が持てません。

4

3 に答える 3

1

..同じ問題もありました。空の $_SESSION-vars の理由は、/var/lib/php/session ディレクトリの権限が正しくないためです: 755 所有者 + グループ http (apache、www-data、または cherokee) を実行するユーザー

于 2014-01-30T04:49:58.263 に答える
0

推奨されないphp短いタグを使用しているため、php.iniファイルで短いタグを確認しましたか。短いタグを使用する場合は、php.ini ファイルを確認して --enable-short-tags オプションを有効にしてください<? ?><?php ?>タグを使用することを強くお勧めします。適切な php タグを使用すると、コードは正常に動作します。 http://php.net/manual/en/language.basic-syntax.phptags.php

于 2013-09-27T10:02:34.980 に答える