2016-08-08 6 views
1
<?php session_start(); ?> 
<!doctype html> 
<html> 
<head> 
<meta charset="utf-8"> 
<title>Untitled Document</title> 
</head> 
<body> 
<?php 
if(isset($_POST['submit']) && $_POST['submit'] == "submit") 
{ 
    $_SESSION['name'] = $_POST['Name']; 
    $_SESSION['father_name'] = $_POST['Father_name']; 
    $_SESSION['class'] = $_POST['Class']; 
    $_SESSION['address'] = $_POST['Address']; 

} 
if(isset($_SESSION['name']) && isset($_SESSION['father_name']) && isset($_SESSION['class']) && isset($_SESSION['address'])) 
{  
    echo $_SESSION['name'] . '<br>'; 
    echo $_SESSION['father_name'] . '<br>'; 
    echo $_SESSION['class'] . '<br>'; 
    echo $_SESSION['address'] . '<br>'; 
?> 
<form method="post" name="secondform"> 
<button type="submit" name="clear" value="clear">clear</button> 
</form> 
<?php 
    if (isset($_POST['clear'])) 
    { 
     session_unset();  
       session_unset();   

    }  
} 
else 
{ ?> 
    <form method="post" name="myform"> 
     <input type="text" name="Name" placeholder="Name"/> 
     <input type="text" name="Father_name" placeholder="Father name"/> 
     <input type="text" name="Class" placeholder="class"/> 
     <input type="text" name="Address" placeholder="address"/> 
     <button type="submit" name="submit" value="submit">subbmit</button> 
    </form> 
<?php } ?> 
</body> 
</html> 

クリアボタンを2回クリックする必要があります。ループが正しく動作していない、session_unsetが正しく動作していない。どんな支援も大歓迎です。PHPセッションの設定が正しく動作しない

+0

session_unset( 'value_to_be_remove')は問題を解決します。セッション全体を破壊するsession_destroy() –

+0

@PradeepSapkota [session_unset()](http://php.net/manual/en/function.session-unset.php)のドキュメントをもう一度読むことをお勧めします。パラメータは受け付けません。 –

答えて

0

session_start()の直後に、session_unset()の部分をページの先頭に移動します(必ず最初にする必要があります)。現在、「クリア」をクリックすると、最初に保存された値がエコーされ、クリアされます。これを2回クリックする必要はありません。クリアした後にページを再度読み込むと、セッションが空であることが示されます。 session_unset()を上に動かすと、それらをエコーする前に消去されます。

関連する問題