【懸賞サイト作成】番号入力で応募できる認証ページ

このQ&Aのポイント
  • 缶コーヒーやペットボトルなどにシールがついていて、番号を入力すると応募ページに飛べるクイズや懸賞応募サイトを作りたい。
  • 概要は、商品についている番号を認証すると、応募フォームが表示され、フォームから情報を登録して送信できればいいのですが、認証の部分で思う通りのことができず困っています。
  • PHPのユーザー認証でクッキー使用のプログラムを参考にしているが、知識不足でうまく動作しない。希望としては、1万個程度のシールIDを認証し、5種類の応募フォームに振り分けたい。また、クッキーにIDを覚えさせず、一度認証済みのIDは応募不可にしたい。
回答を見る
  • ベストアンサー

【懸賞サイト作成】番号入力で応募できる認証ページ

お世話になっております。 缶コーヒーやペットボトルなどにシールがついていて、番号を入力すると応募ページに飛べるクイズや懸賞応募サイトを作りたいのです。 概要は、商品についている番号を認証すると、 応募フォームが(数種類のフォームのなかから一つがランダムもしくは、IDごとにふりわけで)表示され、 フォームから情報を登録して送信できればいいのですが、 認証の部分で思う通りのことができず困っています。 色々なプログラムはわからないので、PHPのユーザー認証でやろうと思っているのですが、 クッキーを使用したプログラムがほとんどで、お手上げ状態です。 今参考にしているのは、 http://photoartisan.jp/storage/2010/08/auth.html ↑のユーザー認証を使用しています。 知識も足りなくて、全然思い通りに動いてくれません。 希望は、 (1)シールのIDは1万個程度。ini.phpなどにIDとPASSを記載して認証したい。  (フォームへの入力式にしたい) (2)ジャンプ先各2000ずつ5種類の応募フォーム(html)に振り分けたい   (応募フォームを数種類用意して、ランダムもしくは任意でジャンプ先を変更) (3)クッキーにIDを覚えさせたくない  (リロード、再応募の時に別のシール番号を入力するため) (4)欲張れるのであれば、一度認証して応募が完了したIDは、応募不可にしたい。 1~3のことができれば、どんなプログラムでも構いません。 どなたかご教授よろしくお願いいたします。

  • PHP
  • 回答数2
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • aoyama984
  • ベストアンサー率45% (253/561)
回答No.2

結論としては PHPでもいいということでしょうか シールIDで あたり/はずれ が分かり あたれば 設定したページに飛ぶ 番号は使用済みにする サーバは指定がないので  データベースが使えるものとして考えます あたりなら 名前 住所 メール などを入力させるということでしょうか

blueberry100
質問者

お礼

何度も回答いただいてありがとうございます。 もう一つの質問スレッドの方で解決いたしました。 解決スレッドの方でお二人にベストアンサーをつけさせてもらいたかったのですが、システム上無理なので、aoyama984さんにはこちらでベストアンサーにさせてください。 本当にありがとうございました。 たくさん勉強させていただきました。

blueberry100
質問者

補足

こんにちわ。 もう一つの方の質問にもお答えいただいて、こちらも回答いただいてありがとうございます。 今、PHPでやろうと思い、これまでの質問回答などを合わせて、こういうコードでやっているのですが、あたりなら"aaa.html","bbb.heml","ccc.html"のどれかに飛ぶようにしたいのですが、飛んでくれません。 また、$pwd = "pass";があって、冒頭にdifine("pwd","pass")がダブルであるというのもおかしいはずなんですが、どう処理していいのかも…わからず、止まってしまっています。 おそらく、 header ("Location:".$redirect_url[$i]); ここがちゃんと書ければ動くような気がするのです。 <?php define("pwd","pass"); session_start(); if(isset($_POST["action"])&&$_POST["action"]==="login"){ if(pwd === $_POST["password"]){//パスワード確認 $_SESSION["TEST"] = md5(pwd);//暗号化してセッションに保存 $pwd = "pass"; //転送先 $redirect_url = array("aaa.html","bbb.heml","ccc.html"); $varPOST = $_POST; if ( $varPOST[pwd] == $pwd ){ $i = mt_rand(0,count($redirect_url)-1); //Redirect header ("Location:".$redirect_url[$i]); header ('HTTP/1.1 302 Found'); } }else{ session_destroy();//セッション破棄 message(); } } ?> <?php function message(){ print "認証コードが違います"; } ?> <?php if(isset($_POST['logout'])){ // セッション変数を全て解除する $_SESSION = array(); // セッションを切断するにはセッションクッキーも削除する。 // Note: セッション情報だけでなくセッションを破壊する。 if (ini_get("session.use_cookies")) { $params = session_get_cookie_params(); setcookie(session_name(), '', time() - 42000, $params["path"], $params["domain"], $params["secure"], $params["httponly"] ); } //セッションを破壊してリダイレクト session_destroy(); header("Location:index.php"); } ?> <form action="" method="post"><input name="password" type="text" value="" /><input name="action" type="submit" value="login" /></form>

その他の回答 (1)

  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.1

こんにちは。 ここで回答できる範囲では完成できないと思います。 もうすこし仕様を詰めたほうが良いです。 (4)なんてきちんと対応を決めておかないと何回でも応募されますよ。 また、通常このくらいのデータを扱うのであればデータベースを利用します。 データベースを利用すれば一度使用されたIDや表示したいフォームの管理なんかが楽です。

blueberry100
質問者

お礼

こんにちわ。 回答ありがとうございます。 ここでできる範囲のことじゃないということで、もっと簡単になるよう考えてみました。 JavaScriptを用いて、パスワードを入力してフォームにジャンプするようにします。 実際のところ、セキュリティ面はそんなに必要ではなく、 シールを持っている人もしくは番号を知っている人のみアクセスできればOKなのです。 何度でも応募されたって、同姓同名の場合は弾くという手作業でも構いません。 http://ryu-tan.net/blog/?p=324 ↑こちらを参考に、パスワード設定を設置しました。 これに、リンク先をパスワードごとにランダムに振り分ける方法を、同じくJavaScriptでつけられたら、ざっくりやりたいことはできるようになるのですが…。 パスワードを1万個設定するのであれば、これもデータベースから引用するようにするべきでしょうか?

関連するQ&A

  • 特定の方のみ特別価格で利用できる、認証システム(クーポン)を作成したい

    特定の方のみ特別価格で利用できる、認証システム(クーポン)を作成したいと思っています。売りたいものは数種類のみです。(しかもウン百円)  記入欄にランダム生成されたクーポン番号を入力していただき、 認証をとるといった方法を考えています。ただ、あまり複雑なことはしたくない(出来ない?)ので簡易に実現する方法ってあるのでしょうか? 簡単なPHPフォームをいつも利用しているので、そちらのカスタマイズを想定しています。 ちょっとづつですがPHPを勉強し続けています。 認証システム(クーポン)はそもそも素人には難しい領域なのでしょうか?? よろしくお願いします。

    • ベストアンサー
    • PHP
  • ベーシック認証と、サイト内入力

    ベーシック認証と、サイト内入力についてご教授頂けると幸いです。 一般には、見せたくないページをhtaccessを使ってベーシック認証にしています。 当然、IDとPASSを訪ねる画面が表示されます。 でも、多くのサイトは、サイト内にIDとPASSを入力させログインのボタンでログインみたいになっていると思います。 MySQLなどを使えば出来そうですが、そういうものを使用せず、 PHPやJSなどで処理が出来ないものかと悩んでいます。 どうぞ、よろしくお願い致します。

  • 認証ページ(basic認証)のユーザー名の履歴を消したい

    再度失礼致します。 ユーザー名とパスワードの入力を求める認証ページ(basic認証?・添付ファイル参照)についての質問です。 ユーザー名の入力欄の右にある下三角を押すと今まで入力したことがある文字の履歴が表示されてしまいます。 どうにかしてその履歴を消すということはできないでしょうか? インターネットオプションの項目にある オートコンプリートやインターネット一時ファイル、クッキー、 履歴、フォームデータ、パスワード など私の考えが及ぶ範囲で 全て削除してみたのですが、認証ページのユーザー名の履歴には 依然残っています。 どうやら検索エンジンのフォームなどの文字入力の記憶方法と 認証ページのユーザー名の文字入力の記憶方法は違うようなのです。。 そのユーザー名の履歴にある文字は本当に一年前ぐらいに一回 入力しただけでそれ以来一度も入力していないのですが なぜか長い間生き残ってしまっているんです。。 どうにか削除したくお力を貸して頂けないでしょうか? 回答お待ちしています。

  • BASIC認証をHTMLページに埋め込みたい

    BASIC認証は通常ブラウザの別ダイアログにID・パスワードを入力して認証しますが、 これをHTML内のフォームに埋め込みたいのですが、 こういったことは不可能でしょうか?

    • ベストアンサー
    • HTML
  • IDを使った懸賞応募

    ペットボトルに付いてるシールにIDが書いてあり、それを入力して専用サイトにアクセスするとあたりかはずれの結果を返してくれるというシステムが最近あります。ID以外の番号を適当に打ってもアクセスできないので、不思議です。大変興味があるので、どういった方法でIDを識別しているのか、セキュリティに問題がない範囲で教えてください。

  • basic認証について

    下記、basic認証プログラムを組んでいます。 プログラム内に記載しておりますとおり、 USERにadmin PASSにabc123 と入力しても、ログインができません。 原因としてどのようなことが考えられますでしょうか? よろしくお願いします。 <?php // File Name: auth02.php // 変数 $PHP_AUTH_USER にすでに情報が含まれていることを確認する。 if (!isset($PHP_AUTH_USER)) { // 中身が空なら、ダイアログボックスを表示させるヘッダーを送る。 header('WWW-Authenticate: Basic realm="My Private Stuff"'); header('HTTP/1.0 401 Unauthorized'); header('Content-Type:text/html; charset=EUC-JP'); echo 'ユーザーの認証が必要です。'; exit; } else if (isset($PHP_AUTH_USER)) { if (($PHP_AUTH_USER != "admin") || ($PHP_AUTH_PW != "abc123")) { header('WWW-Authenticate: Basic realm="My Private Stuff"'); header('HTTP/1.0 401 Unauthorized'); header('Content-Type:text/html; charset=EUC-JP'); echo 'ユーザーの認証が必要です。'; exit; } else { echo " <P>認証に成功しました!</p> "; } } ?>

    • 締切済み
    • PHP
  • php文でユーザー認証後自動的にページジャンプするには?

    phpでユーザー認証後、自動的に設定したurlにジャンプ したいのですが? echo "<meta http-equiv='refresh' content='2;URL=http://www.***..htm/'>"; を使用すると、反応はするんですがページにジャンプできません。 認証後、自動的にジャンプする方法を教えてください。

  • URLクリックによる認証について

    http://●●●/xxx.php?username=abcde というURLをクリックします。 ('abcde'はユーザがサイトにログインする時のIDです。) すると、xxx.php内で認証処理を行い、 IDが正しければ認証済の画面を表示させることは可能でしょうか。 (勿論パスワードはIDから取得できます) DBはMySQL、DB処理部分はPEARのAUTHを使っています。 GOOGLE検索等で調べたのですが、 載ってるのはフォーム上でのログイン認証についてでした。 以上、よろしくお願いいたします。

    • 締切済み
    • PHP
  • HTTP認証ダイアログについて

    下記のPHPスクリプトを実行して、アカウント(ID:admin,パス:pass)を入力してもHTTP認証ダイアログが消えません。ダイアログが消えて、Hello! と表示させたいのですが、どこが間違っているのか、教えていただきたいです。 <?php $user="admin"; $pass="pass"; if (!isset($_SERVER['PHP_AUTH_USER'])) { //初回認証時(PHP_AUTH_USER:HTTP 認証しているときにそのユーザー名がセットされます。ダイアログに入力した値) header("WWW-Authenticate: Basic realm=\"PHP Web Storage\""); header("HTTP/1.0 401 Unauthorized"); echo "Please input account info!\n"; exit; }else { $flg=false; while(isset($user)){ if($_SERVER['PHP_AUTH_USER']==$user && $_SERVER['PHP_AUTH_PW']==$pass){ $flg=true; break; } } if(!$flg){echo"Please input valid account!\n";exit;} //停止 else{echo'Hello!';exit;} } ?>

    • ベストアンサー
    • PHP
  • 掲示板サイトの作成サービスを始めたい

    携帯用の掲示板サイトの作成サービスを始めたいと思っています。 しかし、いかんせんまったくもって開発経験がないので、書籍を見ながら悩みみつつ作業をおこなっているのですが... もう、何をしていいやら、お手上げ状態です。 環境はLINUX,APACHE,MYSQL,PHPです。 ながれとしては ユーザー訪問 ↓ 入力フォーム 掲示板基礎データ(ID,PASS,掲示板タイトルなど)を入力してもらう ↓ サーバー上にディレクトリができる http://●●●●.jp/ユーザーが入力したID/index.php という風にです。 とりあえずここの部分だけでもクリアしたいところなのです。 アドバイス(参考サイトURLなど)いただけましたら幸いです。

    • 締切済み
    • PHP

専門家に質問してみよう