0

PHPスクリプトに少し問題があります。MySql ステートメントによって入力された行を生成するテーブルがあります。

最後の列には、編集と削除のボタンがあります。私の問題は、削除を押すと、クエリは正常に機能しますが、空白のページにリダイレクトされることです!

ヘッダーの位置は正しいのですが、削除を押しても現在のページにとどまりますが、それはただの白いページです。

<?php foreach($rows as $row): ?> 
<tr> 
    <td>
        <form action="" method="post"> <?php echo $row['id']; ?> </form>
    </td>
    <td>
        <form action="" method="post"> <?php echo $row['roleid']; ?> </form>
    </td>
    <td>
        <form action="" method="post">
            <?php echo htmlentities($row['username'], ENT_QUOTES, 'UTF-8'); ?>
        </form>
    </td>
    <td>
        <form action="" method="post">
            <?php echo htmlentities($row['email'], ENT_QUOTES, 'UTF-8'); ?>
        </form>
    </td>
    <td>
        <form action="" method="post">
            <input name="Edit" type="submit" value="Edit" />
            <input name="id" type="hidden" value="<?php echo $row['id']; ?>" />
        </form>
    </td>
</tr> 
<?php endforeach; ?>

そして、次を使用してセッションを正常に設定できます。

if (isset($_POST['Edit'])) {

$_SESSION['id'] = $_POST['id'];
header("Location: edit_account.php");

}

しかし、別の問題に遭遇したようです:( また、各行に削除ボタンを追加して、そのユーザーアカウントを削除したいと考えています。現在、これはどのように見えるかです:

<td> <form action="" method="post">
        <input name="Delete" type="submit" value="Delete" />
        <input name="id" type="hidden" value="<?php echo $row['id']; ?>" />
    </form> </td>

そして、使用されるphpコードは次のとおりです。

if (isset($_POST['Delete'])) {
    // Everything below this point in the file is secured by the login system 

    // We can retrieve a list of members from the database using a SELECT query. 
    // In this case we do not have a WHERE clause because we want to select all 
    // of the rows from the database table. 
    $query = " 
        DELETE 
        FROM user
        WHERE
            id = :id 
    "; 

    // The parameter values 
    $query_params = array( ':id' => $_POST['id'] ); 

    try { 
        // These two statements run the query against your database table. 
        $stmt = $db->prepare($query); 
        $result = $stmt->execute($query_params); 
    }

    catch(PDOException $ex) { 
        // Note: On a production website, you should not output $ex->getMessage(). 
        // It may provide an attacker with helpful information about your code.  
        die("Failed to run query: " . $ex->getMessage()); 
    } 

    // Finally, we can retrieve all of the found rows into an array using fetchAll 
    $rows = $stmt->fetch(); 

    // This redirects the user back to the members-only page after they register 
    header("Location: ../adminindex.php"); 

    // Calling die or exit after performing a redirect using the header function 
    // is critical.  The rest of your PHP script will continue to execute and 
    // will be sent to the user if you do not die or exit. 
    die("Redirecting to adminindex.php.php"); 
}

私の問題はリダイレクトです![削除] ボタンをクリックすると、実際にクエリが実行されますが、その後はmemberlist.phpにリダイレクトされますが、ページは空白です!?

なぜこれが起こるのでしょうか?不足しているものはありますか?ヘッダーの場所を変更しようとしましたが、成功しませんでした。

助けてくれてありがとう!

4

1 に答える 1

-1

die("Redirecting to adminindex.php.php"); ??

なんでスイッチ使わないの?このような:

switch($action){
    case 'delete':
        //your code here
    break;
    case 'edit':
        //your code here
    break;
}

削除ボタンを実行するには:

echo $row['username'] ."<a href=page.php?action=delete&id=".$row['id']."><img src=some fancy img></a>";
于 2013-05-17T13:16:26.360 に答える