ゆるキャラのペパクラ情報サイトを改善する(5)削除スクリプトを作る

0
    JUGEMテーマ:ホームページ作成

    それでは最終回は、削除スクリプトypdelete.phpの作成です。
    まずは前回と同様、必要な機能の整理からです。

    ・修正フォームの削除ボタンから呼び出され、パスワードの照合画面を表示をする。併せて修正フォームに戻るリンクも表示する。
    ・自分自身から呼び出されたときは、パスワードを照合し、正しければ削除する。削除が完了したら、ゆるキャラペパクラインデックスのトップに戻るリンクを表示する。

    今回も複数の機能を1つのスクリプトで実現しますので、両者を何らかの形で見分ける必要があります。しかし今回は削除という大切の機能を実現するスクリプトなので、パラメータをGETで送るようなことはしたくありません。修正フォームからindex情報をもって初めて来るときも、パスワードを入力して再度自分を呼び出すときも両方POSTです。そこで、自分で自分を呼び出すときには特別なパラメータを追加することにします。「delete」というパラメータがセットされていたら自分から呼び出された、と判断することにします。すると全体構成はこうなります。
    if(!isset($_POST["delete"])){    
      // パスワードの再入力フォーム表示
    }else{  
      // データベースに接続
      // パスワードチェック
      if($row["password"]==$_POST["password"]){
        //削除処理
      }else{  
        // パスワード間違い→再入力指示
      }
    }
    
    ではこれに従い詳細を詰めてゆきましょう。
    まずはパスワードの再入力フォームです。これはほぼecho文のベタ打ちでいいでしょう。
      echo'<p>本当に消去していいですか?</p>';
      echo'<p>宜しければパスワードを入力して「削除」をクリックしてください</p>';
      echo'<form action="ypdelete.php" method="post">
      <p>修正用パスワード:<input type="password" name="password" value="" size="20" /></p>
      <input type="hidden" name="delete" value="delete"/>
      <input type="hidden" name="id" value='.$_POST["id"].' />
      <p><input type="submit" name="submit" value="削除"/></p>
      </form>';
      echo'<p class="backToMod"><a href="http://papercraft.techikun.com/ypmod.php?id='.$_POST["id"].'">修正ページに戻る</a></p>';
    
    6行目と9行目にidを送る部分だけ、$_POSTを参照しています。
    それと、5行目がスペシャルキーワード"delete"を埋め込んでいるところです。
    次はおなじみデータベースに接続し、パスワードを取得するところです。
      $pdo = new PDO(
        'mysql:dbname=LA********-mysql5;host=********.phy.lolipop.lan;charset=utf8',
        'LA********',
        'password',
        array(
          PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
          PDO::ATTR_EMULATE_PREPARES => false,
          PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
          PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true
        )
      );
      $stmt = $pdo->prepare('SELECT * FROM テーブル名 WHERE `index`=:index');
      $stmt->bindValue(':index', (int)$_POST['id']);
      $stmt->execute();
      $row = $stmt->fetch();
    
    前半はもう説明はいらないでしょう。
    後半も、indexを指定してSELECT文でデータベースからデータを読み出し、$rowに格納しているいつもの流れです。
    これを受けてパスワードチェックのif文を抜けると次が実際の削除処理です。
        $stmt4 = $pdo->prepare('DELETE FROM テーブル名 WHERE `index`=:index');
        $stmt4->bindValue(':index', (int)$_POST['id']);
        $stmt4->execute();
        echo'<p>【削除完了!】</p>';
        echo'<p class="returnToTop"><a href="http://papercraft.techikun.com/ypindex.php">ゆるキャラペパクラインデックスのトップへ戻る</a></p>';
    
    削除はDELETE文で、3行で終了。
    完了表示をしたうえで、トップへ戻るリンクを表示して終了です。
    最後のパスワード間違い時の処理は次の通りです。
        echo'<p>本当に消去していいですか?</p>';
        echo'<p>宜しければパスワードを入力して「削除」をクリックしてください</p>';
        echo'<form action="ypdelete.php" method="post">
        <p>修正用パスワード:<input type="password" name="password" value="" size="20" /></p>
        <p class="errorcomment">*正しいパスワードを入力してください。</p>
        <input type="hidden" name="delete" value="delete"/>
        <input type="hidden" name="id" value='.$_POST["id"].' />
        <p><input type="submit" name="submit" value="削除"/></p>
        </form>';
        echo'<p class="backToMod"><a href="http://papercraft.techikun.com/ypmod.php?id='.$_POST["id"].'">修正ページに戻る</a></p>';
    
    最初のブロックに、class="errorcomment"で「正しいパスワードを入力してください」の一文が追加されただけでした。


    以上で今回のPHPでMySqlを操作してデータベースを使ったウェブアプリを作るシリーズは完了です。
    次回作をお楽しみに☆


     


    コメント
    コメントする








       

    calendar

    S M T W T F S
         12
    3456789
    10111213141516
    17181920212223
    24252627282930
    31      
    << March 2024 >>

    アクセスカウンタ

    合計:
    今日:
    昨日:

    selected entries

    categories

    archives

    recent comment

    • ホームページをリニューアルするの巻(19)−Googleウェブサイト翻訳ツールを組み込む
      てちくん
    • ホームページをリニューアルするの巻(19)−Googleウェブサイト翻訳ツールを組み込む
      てちくん
    • ホームページをリニューアルするの巻(19)−Googleウェブサイト翻訳ツールを組み込む
      小田きく江
    • ロリポブログでGoogleにサイトマップを登録する際の注意事項
      てちくん
    • ロリポブログでGoogleにサイトマップを登録する際の注意事項
      suraugi
    • いそべぇのペーパークラフトを作る(初級編)(12)
      てちくん
    • いそべぇのペーパークラフトを作る(初級編)(12)
      だべえ
    • noomでマイナス12kgのダイエットに成功!
      Yoko

    recommend

    recommend

    recommend

    ドール デザートメーカー ヨナナス901
    ドール デザートメーカー ヨナナス901 (JUGEMレビュー »)

    結構高いんです、でも欲しいんです!

    links

    profile

    書いた記事数:173
    最近の更新日:2017/01/30

    search this site.

    others

    mobile

    qrcode

    powered

    無料ブログ作成サービス JUGEM

    Google Adsense

    楽天ブックス

    楽天