carroll の回答履歴

全24件中1~20件表示
  • DBを用いたCGI認証スクリプト(perl、mysql)

    DBに一行一ユーザーの情報があり(メールアドレス 、パスワード)、 IDをメールアドレスとし、 入力したメールアドレスが登録されているか 入力したメールアドレスのパスワードがあっているか、 をチェックするスクリプトです。 初心者のためいろいろのサイトを見ながら作りましたが、下記のソースで何とか動いています。 が、これでよいのか(スマートかどうか)、もっと簡単な方法があるのかどうかをお聞きしたく、質問させていただきました。よろしくお願いいたします。 #!/usr/bin/perl use DBI; use CGI; require "cgi-lib.pl"; #フォームからIDとPWを受け取る &ReadParse(*form); $input_id= "$form{'アイディー'}"; $input_pw= "$form{'パスワード'}"; $TABLE_name = 'メールアドレス'; $form = CGI->new; $ret = eval{ $dbh = DBI->connect('DBI:*******************) }; if ( !$ret ) { print "接続エラーが発生しました\n"; exit(); } else{ print "OK\n"; $sql = "SELECT パスワード FROM $TABLE_name where メールアドレス='$input_id'"; $sth = $dbh->prepare($sql); if(!$sth->execute){ print "SQL実行エラー\n"; exit; } $num_rows = $sth->rows; if($num_rows==0){ print "このEmailは登録されていません。\n"; } else{ #ヒットしたemailの行にあるパスワード=$rec $rec = $sth->fetchrow_array(); #ヒットしたemailの行にある「パスワード=$rec」と入力したパスワードがマッチするかどうか if($rec eq $input_pw){ #認証OK!会員ページへ print "<br>認証OK!<br>"; } else{ #認証NG(Emailは登録されているが、登録したemailとパスワードが一致しない) print "パスワードが違います\n"; } } $sth->finish; $dbh->commit; $dbh->disconnect; }

    • ベストアンサー
    • cluewm
    • Perl
    • 回答数2
  • HTMLとPHP

    こんにちは。いつもお世話になっています。 PHPとHTMLを勉強していてわからないことがあったのでよろしければ教えてください。 POSTでデータを取得するときにデータがあるか無いか判定してから、項目すべてに記入してあれば登録確認ページへ、空欄があればエラーページへいくようなサイトをつくったのですが、確認ページでデータが表示されませんでした。 if(!$_POST['name'] OR !$_POST['passwd'] OR !$_POST['address'] OR !$_POST['tel'] OR !$_POST['email']){ echo ("空欄があります。すべて記入して下さい。"); }else{ header("Location: http://localhost/my/myshop/confirm_user.php"); } エラー表示ページ(error.php)でこのように判定し、空欄がなければエラーページから確認ページ(confirm_user.php)へいくようにしました。 登録フォーム(input.php)で<FORM ACTION="error.php","confirm_user.php" METHOD="post"> としたのですが、2つのPHPにデータを送れないのでしょうか?

    • ベストアンサー
    • shingetsu
    • PHP
    • 回答数4
  • PHP?MySQL?どちらで処理するか?

    MySQLでもPHPでもできる処理ってあるやん? 掲示板で見かける指定文字以上のタイトルになったら、それ以降は”...”で表示するのはPHPのmb_strimwidth(?)でも、MySQLのleft関数でもできると思います。 round関数も元の値をPHPで四捨五入するのか、MySQLで元の値を別のフィールド名で、、、。 どっちがええん? なんか線引きが難しくって、訳分からん。 何か基準というか、線引きはないかなー? やっぱり、大量の処理はMySQL?

    • ベストアンサー
    • to-zoku
    • MySQL
    • 回答数2
  • ORIG_SCRIPT_○○○はあるがORIG_PATH_○○○が出てこない

    php.iniでcgi.fix_pathinfo=1と設定しました。 googleでも色々検索しましたが、こうすればORIG_PATH_INFOなどが表示されるはず しかし表示されません。 ドメインより後ろを取得する方法は先ほど教えていただきましたので 当面そちらでしのぎますが、できればORIG_PATH_INFOも使いたいです どなたか分かる方いらっしゃいましたら教えてください。 使ってるサーバーはさくらインターネットです

    • ベストアンサー
    • noname#14955
    • PHP
    • 回答数1
  • _SERVER["DOCUMENT_ROOT"]より後ろを取得するには

    http://xxx.xxx.xxx/111/222/333/444/ こういうアドレスがあったとして、「111/222/333/444/」だけを取り出せますか? ローカルでも実験していたのですが、windowsのためにローカルだと _SERVER["DOCUMENT_ROOT"]が「D:/www/htdocs/」になり それ以降を取得するものだと「/」が「¥」で表示されてしまい、うまくプログラムができません。 逆にドキュメントルートを「¥」で取得することもできないので悩んでいます webの方だけなら何とかなりそうなのですが、色々テストをする上で ローカルとwebで共有できれば便利がいいと思いまして。 phpはCGI版としてインストールしています。 よろしくお願いします

    • ベストアンサー
    • noname#14955
    • PHP
    • 回答数1
  • $_SERVER['HTTP_REFERER'] について

    $_SERVER['HTTP_REFERER'] について質問があります。 この変数は、移動元のページのアドレスが入ると思うのですが、 Flashエレメントのボタンなどで移動すると、何も入りません。 アクセス制限に利用したいと思っているのですが、 何も入らないととても困ります。 何か良い方法はないものでしょうか? よろしくお願いします。

    • ベストアンサー
    • iwaiwaiwa
    • PHP
    • 回答数2
  • HTMLのリンクをクリックすることで、phpの内部変数の値を変更させるにはどうしたらよいでしょうか?

    $_POST,$_GET以外の方法があるのでしょうか? $_POST,$_GETで可能でしょうか? 複雑なコードを作らなければいけないでしょうか?

    • ベストアンサー
    • SariGEnNu
    • PHP
    • 回答数4
  • GETとPOST

    フォームでのデータの受け渡しで質問があります。 リンクにデータを埋め込んで、GETで次ページにデータを渡すという方法があると思うのですが、本を読んだりしたところ、クロスサイトスクリプティングやSQLインジェクションの攻撃にあう可能性も指摘してあったので、何となく今まではデータの書き込みを行うファイルへのフォームデータの受け渡しは、POSTを使ってやっています。 しかしながら、POSTを使うとコードが複雑になるような気もします。GETを使うのはあまり薦められないことなのでしょうか?それとも、これらの攻撃を決定的に回避できる方法があるものなのでしょうか? アバウトな質問ですが、よろしくお願いします。

    • ベストアンサー
    • iwaiwaiwa
    • PHP
    • 回答数4
  • PHPとMySQLの連携に関する質問

    PHPでMySQLに接続し、クエリを実行するプログラムを書いてコンパイルしたのですが ↓のエラーが出ました 「Fatal error: call to undefined function mysql_connect()」 このエラーの解決方法を教えてください(mysql_connect()はデフォルトでついているモジュールに入っていたと思うのですが) <?php $db=mysql_connect("localhost","秘密","秘密"); mysql_select_db("testtest"); $query="select * from testa"; mysql_query($query,$db); ?>

    • ベストアンサー
    • tukai
    • PHP
    • 回答数2
  • 楽天トラベルのような条件を設定して検索するスクリプト

    楽天トラベルにある 宿泊予約(http://travel.rakuten.co.jp/ry_kensaku.html) のような日付、価格、地域の条件を設定して検索できるようなスクリプトを現在探しています。 もしフリーソフトで存在するなら、ぜひ教えてください。シェアウェアでも構いません。PHP+MySQLならほんの少し知識があるので、その言語で作成されたスクリプトが希望です!何卒よろしくお願いします!

    • ベストアンサー
    • cooker
    • PHP
    • 回答数1
  • 携帯で$_SESSION関数を利用する場合

    PHP初心者です。 質問内容や表現に過不足がありましたら、申し訳ございませんが、ご指摘下さい。 PHP4を利用し、携帯で閲覧可能なサイトを作ろうとしています。 a.phpからform上のボタンをクリックするとb.phpを呼ぶというプログラムを作りました。 PCでは動作しているのに、実機(i-modo)で確認するとどうしてもb.phpに移動してくれません。 どうやら$_SESSION関数に入れているデータが携帯の場合には消えてしまっているようなのです。 ソースは次のように組んでいて、途中、echoで表示して確認したところ、PCでは「1」と表示されるのに携帯では「」と何も表示されません。 次行のIF文にひっかかって、a.phpに戻ってしまっているようです。 最近の携帯では$_SESSION関数を利用できる、という話も見かけたのですが、使わずに作った方がよいのでしょうか? 回避策をご存知の方、ご教授頂けると助かります。 //------↓以下ソース例示------ a.php <?php ・・・・・・・・ session_cache_limiter('nocache'); session_start(); $_SESSION['c_flg'] = 1; ・・・・・・・・ <FORM action="b.php?SID" method="POST"> ・・・・・・・・ ?> b.php <?php ・・・・・・・・ session_start(); echo $_SESSION['c_flg'] ; //←ここで携帯の場合何も表示されない if ($_SESSION['c_flg'] != 1 ){ header("Location: http://" . $_SERVER["S"].dirname($_SERVER["R"]) . "/a.php/"); // ↑↑b.phpを直接呼ぶと必ずa.phpが表示されるようにしたい。↑↑ exit; } ・・・・・・・・ ?>

    • ベストアンサー
    • yukino_0_-
    • PHP
    • 回答数2
  • if文の複数条件。

    if(isset($_POST['title'])&&(isset($_POST['check']) == 1)){ print "条件に合ってる。";} と、したいのですがうまくできません。なぜ? if(isset($_POST['title']){  if((isset($_POST['check']){print "条件に合ってる。";}} と多重にすれば問題ないのですが、issetを丸ごと()で囲っても同じでした。なぜ?

    • ベストアンサー
    • to-zoku
    • PHP
    • 回答数2
  • MySQLのユーザー設定について

    よろしくお願いします。 環境は、 Win XP home MySQL バージョンは4.024です。 「PHP+MySQL Web制作ガイド」という本に沿って、勉強を始めたばかりです。 Mysqlをインストールし、rootユーザーのパスワード設定で、 mysql> UPDATE mysql.user SET Password=PASSWORD('12345')WHERE User ->='root' とコマンドプロンプトで入力するのですが、 ERROR 1044: Access denied for user; '@licalhost' to database 'mysql' とエラーが返されてしまいます。 何度もやってみましたが、同様です。 winMySQLAdminを起動させた際、パスワードの入力を求められた場合、 本に「管理ツール用の任意のパスワードを入力して先に進みます」とあったので、その通りにしたのですが、これは関係するのでしょうか? リファレンスhttp://dev.mysql.com/doc/mysql/ja/access-denied.htmlも見てみたのですが、さっぱりわからず困っています。 どうぞ、アドバイスをよろしくお願いします。

    • ベストアンサー
    • nancy57
    • MySQL
    • 回答数1
  • 生命の木の様に表示させたい

    PerlかPHPで無限に広がる生命の木の様に表示させたいのですが、データの保存する構造が思いつきません。 いろいろなアルゴリズムができるとは思うのですが。 生命の木は、よくテレビで見かける生物の分岐や発展を示した柳の様な図表です。 とはいえ、あまりビジュアル的に難しい事は考えていません。 下記の様な連想ゲームの様な同じ質問でも、回答者によりいろいろ可能性のある回答をできるだけ多く保存したい。 ■苺→赤い→血 □□|□□→兎の目 □□|□□ □□→甘い→アイス □□□□□→アメ でも、無限に広がると不可も無限大になるので制限するか、MySQLを考えています。

    • ベストアンサー
    • to-zoku
    • CGI
    • 回答数3
  • time() で得る時間がズレてしまう

    time()で得られる時間が、15時間ずれてしまっています。サーバの時間設定がアメリカ時間になっているのでしょうか?これを、日本の時間に設定する方法はありますか?

  • CGIの最初の記述

    つい先日、CGIをテキストエディタで開き編集をしていたところ最初にPerlの場所を示すパスらしきものが記述されていました。#!/usr/bin/perlみたいなのです。 そこで質問なのですが、/usr/bin/perlとはどこを示しているのでしょうか? 私、ウィンドウズPCでWWWサーバーを開設しておりますのでやはり気になってしまいます。それと言うのも、Apacheというソフトで開設しているのですがそのソフトでCGIを動かそうとすると、動かしたいCGIプログラムの最初の記述である/usr/bin/perlを私のサーバーのPerlをインストールしているフォルダへのルートに書き換えなくてはCGIが動かないからなんです。大変困っております。どうか、皆様私にお力をお貸し下さい。

    • ベストアンサー
    • sanber
    • CGI
    • 回答数2
  • アンケートシステム 集計データを表示させたい

    フォーム(FORM.HTML)、書き込みプログラム(ANWRITE.PHP)、表示プログラム(ANHYOUJI.PHP)の三つの画面と、データファイル(ANK.TXT)から構成しています。 集計データをANHYOUJI.PHP画面に表示できません。 以下がANWRITE.PHPのソースです。 //ANWRITE.PHP <html> <body> <?php function text_replace($text){ if(!empty($text)){ $text=htmlspecialchars($text); $text=nl2br($text); $text=str_replace("\r","",$text); $text=str_replace("\n","",$text); $text=str_replace(",",",",$text); return $text; }else{ return $text; } } $dir="ank.txt"; if(!file_exists($dir)){ echo("file not exist"); } $file=fopen($dir,"a+"); $kannsou=text_replace($kannsou); $data="$q2,$kannsou\n; fwrite($file,$data); fclose($file); ?> <font color="#00FF00" size="5">アンケート結果を表示しますか?</font> <br> <form method=get action="anhyouji.php"> <input type="submit" value="はい、表示します"> </form> </body> </html> また、文字の色を指定してもその通りになりません。なぜでしょうか? どこが間違っているかどなたか教えてください。 必要があればほかのソースも書き込みます。 よろしくお願いします。

  • 携帯端末用のアクセス解析なんですが・・・

    http://dream.lib.net/room/index.shtml の、中の、「携帯端末ページ用アクセス解析」なんですけれど↓ http://dream.lib.net/room/cgi/e_ma.html 説明どおりUPし、 http://******/cgi/ma/ma2.cgi にアクセスするところまでは行ったのですが、 その先のリンクが見れません。 http://******/cgi/ma/ma2.cgiにアクセスすると 24時間アクセス数 曜日別アクセス数 14日間アクセス数 機種別アクセス数 表示色数 と、項目が並んでいるのですが、 どれをクリックしても階層が http://******/ma2.cgi?act=1 というように、/cgi/ma/ が飛ばされてしまうため 当然Not Foundです。 3つあるCGIファイルのうち、設定可能そうなのはma_prf.cgiくらいで、多分この設定が間違っているんだと思うのですが・・・どこが違うのかさっぱりわからず困っています。 ちなみに、私が使用したい機能は 5つの設置モードのなかの「何も表示しないSSI」という一番基本的なものだけで、他の画像表示や振り分けなどは使いません。 配付元の質問掲示板が休止中なので こちらで質問させていただきました。 お手数をおかけしますがよろしくお願いします m(_)m

  • CGI+フラッシュのハイスコアランキングサンプル

    ネットにあった、ハイスコアランキングのサンプルをダウンロードして、サーバーにアップロードしてみたのですが、おもうように表示されません。 CGIは機能しているようなのですが、ランキング一位の人のスコアだけが表示されないのです. 一位の人が二位になると、二位のスコアは表示されるようになるのですが、あらたに一位の人のスコアが表示されなくなります。 バーミッションはcgi755、dat666にしてありますし、アスキー転送で改行はLFにしてあります。一位のスコアの表示以外の点では正常に作動してるので、どこがおかしいかわからないのです。 ダウンロードしたものを手を加えずにそのままアップロードしましたので、CGIの文法やフラッシュのスクリプトが間違っているということはないと思います。(他の人は同じサンプルファイルでうまく表示されてるようなので) cgi設置も初めてなので、何か見逃しているのかもしれません。 原因かわからなくなってしまいました。誰か助けてください。 サーバーにアップロードしたページです↓ http://mokat.hp.infoseek.co.jp/cgi-bin/hiscsample.html

    • ベストアンサー
    • miku2
    • CGI
    • 回答数3
  • apacheでcgiがうまく動かない。cgiが認識されていない?

    すいません、多分基本的な所なのですが、 どうしても分からないので質問させてください。 ■環境------------------------------ ・windowsXP sp2 ・apache1.3.33 C:\Program Files\Apache Group\Apache  現在の状態:html表示可能。httpd.confを変更 ・perl5.6.1 c:\perl  現在の状態:PPMにてimagemagick,DBI,DBD-MySql(だっけ)をインストールしている ・php5.0.4 c:\php ・mysql4.02 C:\mysql ■httpd.confの変更箇所-------------------------------- 337 Options Indexes FollowSymLinks MultiViews ↓ Options Indexes FollowSymLinks ExecCGI MultiViews 538 #!c:/program files/perl/perl ↓ #!C:/Perl/bin/perl 720以降に追加 AddType application/x-httpd-cgi .cgi AddType application/x-httpd-cgi .pl 825以降に追加 AddHandler cgi-script .cgi AddHandler cgi-script .pl ■printenv.plの内容-------------------------------- #!C:/Perl/bin/perl ## ## printenv -- demo CGI program which just prints its environment ## print "Content-type: text/plain\n\n"; foreach $var (sort(keys(%ENV))) { $val = $ENV{$var}; $val =~ s|\n|\\n|g; $val =~ s|"|\\"|g; print "${var}=\"${val}\"\n"; } -------------------------------------------------- 上記のような環境で、いまPERLの動作確認を行っています。 http://localhost/cgi-bin/printenv.pl http://localhost/cgi-bin/printenv.pl PLファイルを指定しても実行されず、ダウンロードされてしまいます。 cgiに拡張子を変えても同じでした。 エラーというわけでもない為、エラーログにも何もかかれません。 何が問題なのでしょうか?

    • ベストアンサー
    • abu_kame
    • CGI
    • 回答数2