1

値が適切な形式でない場合、フォームのアクションを処理するスクリプトがフォーム ページにリダイレクトされます。ユーザーがフォームページへのリダイレクト時に入力した誤ったデータをテキストフィールドとテキストエリアに入力したいと考えています。間違った値の送信時にページをリダイレクトする次のスクリプトを作成しましたが、その後フィールドに入力しません。

フォームページのスクリプト:

<?php
if(session_id('stat')=="true")
{
$isbn=$_SESSION['var1'] ;
$name=$_SESSION['var2'] ;
$author=$_SESSION['var3'] ;
$publisher=$_SESSION['var4'];
$price=$_SESSION['var5'];
$descrip=$_SESSION['var6'];
$status=$_SESSION['stat'];
}
else
{
$isbn="";
$name="";
$author="";
$publisher="";
$price="";
$descrip="";
$status=false;
}
?>

フォームの html 部分:

<form action="scripts/addscript.php" method="POST" enctype="multipart/form-data" name="form1" id="form1">

<label for="isbn">ISBN</label>
<input type="text" name="isbn" id="isbn" value="<?php $isbn ?>"/>
 <p>
 <label for="name">Name</label>
 <input type="text" name="name" id="name"  value="<?php echo $name; ?>"/>
 </p>
 <p>
 <label for="author">Author</label>
 <input type="text" name="author" id="author" value="<?php echo $author; ?>"/>
 </p>
<p>
<label for="publisher">Publisher</label>
<input type="text" name="publisher" id="publisher" value="<?php echo $publisher; ?>"/>
</p>
<p>
<label for="price">Price</label>
<input type="text" name="price" id="price" value="<?php echo $price;?>"/>
</p>
<p>
<label for="description">Description</label>
<textarea name="description" id="description" cols="45" rows="5"><?php echo $descrip; ?></textarea>
</p>
 <p>
 <label for="img">Select an image for the book:
<input type="file" name="img" id="img" />
</label>
<input type="submit" name="submit" id="submit" value="Submit"/>
</p>
</form>

フォームの値が送信される addscript.php のリダイレクト スクリプト:

<?php
// Get values from form 
$isbn=$_POST['isbn'];
$name=$_POST['name'];
$author=$_POST['author'];
$publisher=$_POST['publisher'];
$price=$_POST['price'];
$descrip=$_POST['description'];

$_SESSION['var1'] = $isbn;
$_SESSION['var2'] = $name;
$_SESSION['var3'] = $author;
$_SESSION['var4'] = $publisher;
$_SESSION['var5'] = $price;
$_SESSION['var6'] = $descrip;
if(strlen($isbn)==0||strlen($name)==0||strlen($author)==0||strlen($publisher)==0||strlen($price)==0)
{
$_SESSION['stat']="true";
header('Location: ' . $_SERVER['HTTP_REFERER']);
}

どこに問題があり、どうすれば問題を解決できるか教えてください。前もって感謝します。

4

1 に答える 1

1

session_start()$_SESSION変数を使用するには、PHP スクリプトの先頭で呼び出す必要があります。

于 2012-10-17T12:39:15.197 に答える