2016-04-19 17 views
0

私はログイン文を使ってユーザエントリを作成するためのログインページを修正しました。次のページのログアウトボタンはユーザを削除しますが、またログインページphpのリダイレクトとクッキーの削除

<head> 

<?php 
if(isset($_POST["Logout"])){ 
    $saveuser = $_COOKIE["user"]; 
    $savepass = $_COOKIE["password"]; 
    $hostname='localhost'; 
    $username='root'; 
    $password=''; 

    try { 
     $dbh = new PDO("mysql:host=$hostname;dbname=cs266db_db1",$username,$password); 
     $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // <== add this line 
     $sql3 = "DELETE FROM userid 
    WHERE user='".$saveuser."' AND password='".$savepass."'"; 
     if ($dbh->query($sql3)) { 
      echo "<script type= 'text/javascript'>alert('Logged out');</script>"; 
     } 
     else{ 
      echo "<script type= 'text/javascript'>alert('Data not successfull.');</script>"; 
     } 

     $dbh = null; 
    } 
    catch(PDOException $e) { 
     echo $e->getMessage(); 
    } 

    unset($_COOKIE["user"]); 
     unset($_COOKIE["password"]);  
} 
?> 

<?php 
if(isset($_POST["submit"])){ 
    $cookie_user = $_POST["user"]; 
    $cookie_pass = $_POST["password"]; 
    setcookie("user", $cookie_user, time() + (86400), "/"); 
    setcookie("password", $cookie_pass, time() + (86400), "/"); 

    $hostname='localhost'; 
    $username='root'; 
    $password=''; 
    try { 
     $dbh = new PDO("mysql:host=$hostname;dbname=cs266db_db1",$username,$password); 

     $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // <== add this line 
     $sql2 = "INSERT INTO userid 
    VALUES ('".$cookie_user."','".$cookie_pass."')"; 
     if ($dbh->query($sql2)) { 
      echo "<script type= 'text/javascript'>alert('Register Complete');</script>"; 
     } 
     else{ 
      echo "<script type= 'text/javascript'>alert('Data not successfull.'); </script>"; 
     } 
     $dbh = null; 
    } 
    catch(PDOException $e) { 
     echo $e->getMessage(); 
    } 
} 
?> 

<?php 
if(!isset($_COOKIE["user"])) { 
    echo"<form action="."''"."method="."post".">"; 
    echo"<input type='"."text'"." name='"."user'"." placeholder='"."Enter Username'"." required/><br><br>"; 
    echo"<input type='"."password'"." name='"."password'"." placeholder='"."Enter Password'"." required/><br><br>"; 
    echo"<input type='"."submit'"." name='"."submit'"." value='"." Register'"."/>"; 
    echo"</form>";  
} 
else { 
    header("Location: index_1.php"); /* Redirect browser */ 
    exit(); 
} 
?> 

</head> 

:ユーザーが登録となりますが、私のページは、私がログインしてユーザーが見られているので、それは次のページにつながる、ページを更新する必要があり、自動的に次のページにリダイレクトされません。これは私のコードです私がログアウトすると、ユーザーは正しく削除されますが、netbeansからページをロードすると、クッキーが削除されていないと思われるので、index_1になりますか?どんな助けも素晴らしいだろう!もう一度私の質問はindex_1に正しくリダイレ​​クトする方法と、ログアウト時にCookieを正しく削除する方法です。

+0

クッキーの使用を削除する場合は、「setcookie」http://php.net/manual/en/function.setcookie.php、 '$ _COOKIES'の割り当てと設定が無効になります –

+0

** setcookie **ログアウトボタンは動作しません –

+0

なぜパスワードをクッキーに保存していますか?それはセキュリティの観点からは良い考えではありません。特に暗号化されていなければログイン後はいつでもパスワードは必要ありません。 – Rasclatt

答えて

0

PHPタグを閉じて開いているすべての箇所で、空白行を削除します。 また、<head>タグと、コードの上にある空白の行と空白をすべて削除してください(ありがとう、@Rasclatt)

短いストーリーで、PHPコードは連続していなければなりません。問題の原因はhereと記載されています。エラー報告を無効にしたため、問題は表示されません。

の代わりに:

. 
. 
. 
?> 

<?php 
. 
. 
. 

は次のようになります。

. 
. 
. 


. 
. 
. 

代替ソリューション:JavaScriptがHTTPリダイレクトの代わりにリダイレクトを使用します。

+1

上部に「」タグを忘れないようにしてください。 – Rasclatt

関連する問題