0

PHP サイトに問題があります。送信時に同じページにphpファイルをロードするフォームを作成しました。これが私のコードです:

index.php:

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> 
<table cellspacing="0" cellpadding="10" width="320" border="0">
  <tr>
    <td>
      <button type="submit" id="btn" name="form_submit">Submit</button>   
    </td>
  </tr>
</table>
</form>

<?php 
if(isset($_POST['form_submit'])) {
    session_start();
    $_SESSION['tblno'] = "3";
}
?>

問題は、次のコードを含む私のdisplay.phpファイルにあります。

<?php 
  session_start(); 
  $tblno = $_SESSION['tblno'];
  echo($tblno);
?>

index.phpで初期化された値3で出力されると思います。しかし、私のdisplay.phpファイルに表示されたのは1でした。どんな助けでも大歓迎です。

4

5 に答える 5

0

index.php には以下が必要です。

<?php 
if(isset($_POST['form_submit']))
{
  session_start();
  $_SESSION['tblno']="3";
}
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> 
<table cellspacing="0" cellpadding="10" width="320" border="0">
  <tr><td>
  <button type="submit" id="btn" name="form_submit">Submit</button>   
  </td></tr>
</table>
</form>

<iframe src=display.php>

そしてdisplay.phpで:

<?php
session_start();
$tblno=$_SESSION['tblno'];
echo($tblno);
?>

(上部に Cookie を設定する独自の index.php への投稿。
その後、他のすべてのページには、session_start の後、適切な Cookie があります)

html など、ブラウザーへの他の出力の前にsession_start();あることを常に確認してください。

編集:iframeを追加しました。

于 2013-09-13T12:43:10.050 に答える
0

このコードを試してください:

<?php 
if(isset($_POST['form_submit']))
    {
     session_start();
    $_SESSION['tblno']="3";
    }
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> 
<table cellspacing="0" cellpadding="10" width="320" border="0">
  <tr><td>
  <button type="submit" id="btn" name="form_submit">Submit</button>   
  </td></tr>
</table>
</form>
于 2013-09-13T12:25:09.003 に答える
0

他のスクリプトを管理する中央の 1 つがなくても、多くの php スクリプトがあるようです。したがって、すべてのスクリプトを次のように開始する必要があります

<?php 
session_start();
...

または、セッションが正しく機能しません。

于 2013-09-13T12:26:37.160 に答える
-2

以下が必要だと思います。

<?php 
session_start();
if(isset($_POST['form_submit']))
{
    $_SESSION['tblno']="3";
} 
?>

セッションを使用する場所はどこでも、常に使用する必要があるためsession_start

于 2013-09-13T12:14:30.310 に答える