検索結果
PHP
- 全てのカテゴリ
- 全ての質問
- 認証が通ったidを元にidテーブルを一覧表示する方法
画面が3枚あります。 『ログイン.php』 ログイン名(uid)、パスワード(upass)を入力し、 認証.phpへ[uid]と[upass]をPOST送信する。 『認証.php』 上記ログイン.phpにてPOST送信された[uid]と[upass]を受け取り、 if条件文にて判定を行う。 uidとupassが合致していたならば、header("Location: ./一覧表示.php");に飛ぶ。 uidとupassの相違していたならば、header("Location: ./ログイン.php");に戻る。 『一覧表示.php』 認証が通ったuidを元にuidテーブルを一覧表示する。 最後の一覧表示.phpにて認証が通ったuidのみをテーブルに一覧表示させるには どのような処理を行えばよろしいのでしょうか? 私が思うに、認証.phpからさらにuidをPOST送信するものと考えておりますが、 header関数にてそれをどのようにして行うものかがわかりません。 以下に認証.phpの一部を記載しました。 ご教授のほどよろしくお願いします。 // ----- 認証 function chk_auth() { if ($_POST["uid"] and $_POST["upass"]) { $sql = "SELECT * FROM usr where uid = '".cnv_sqlstr($_POST["uid"])."'" ." and pass = '".cnv_sqlstr($_POST["upass"])."'"; $res = mysql_query($sql, $conn) or die("データ抽出エラー"); $row = mysql_fetch_array($res, MYSQL_ASSOC); if (mysql_num_rows($res) >= 1) { return TRUE; } else { return FALSE; } } else { return FALSE; } } // 処理開始 if (!chk_auth()) { header("Location: ./login2.php"); exit; } else { header("Location: ./itiran.php"); exit; }
- プロの技術者がCGIやPHPを書く際の環境とは?
red hat 7.3 を最近インストールして有名らしい vi エディタを使い始めました。いまいち慣れませんが。ところで、趣味のHPのCGIはwindows上でapacheを入れ更新するたびにExplorerで確認するということをやっているのですが、よく聞くのがsambaを利用してwindows上でlinux内のファイルを直接編集するのと、vi を使ってlinuxでプログラムを書くということを聞きますが、もし、viで書いたとして、explorerで動作確認するときはどうしているのか、いまいちわかりません。プロの開発環境とはどのようなものなのでしょうか?
- PHPに対応させるときApacheの設定は消えてしまいますか?
現在、Turbolinux6.0WSを使っています。 PHPに対応させたいのですが、Apacheといっしょに入れなおす必要がありますよね。 これをやるとApacheの設定は消えてしまいますか?
- 二つのPHPファイルを上手く一つにしたいのですが
ラジオボタンABCDを選択して上のNEXTボタンを押したとき、回答をSESSIONの配列に蓄えつつ次の問題へ進みたいのですがなかなか上手くいきません。 助けて頂けると嬉しいです。 ちなみに上のtest.phpでは問題を進んだり戻ったりの表示ができ、下のsession.phpではSESSION配列にクリックした分の回答を格納することができます。 //test.php <?php session_start(); ?> <html> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <body> <p> </p> <p> <?php $max=$_POST["next"]; if($max==null){ $max=1; }else{ $max++; } ?> </p> <p> </p> <form method="post" action="test.php"> <input TYPE="radio" NAME="name2" VALUE="1" CHECKED>ア <input TYPE="radio" NAME="name2" VALUE="2">イ <input TYPE="radio" NAME="name2" VALUE="3" CHECKED>ウ <input TYPE="radio" NAME="name2" VALUE="4">エ <input type="submit" name="max_1" value="Next"> <input type="button" value="最初から" onClick="location.href='test.php'"> <input type="button" value="Back" onClick="history.back()"> <input type="hidden" name="next" value="<?php print $max?>"> </form> <TEXTAREA readonly cols="100" rows="20" name="e"> <? mb_language("uni"); mb_internal_encoding("utf-8"); //内部文字コードを変更 mb_http_input("auto"); mb_http_output("utf-8"); $db=mysql_connect("localhost","接続ID","パスワード"); mysql_query("SET NAMES utf8",$db); //クエリの文字コードを設定 mysql_select_db("データベース名"); //データベースに接続 if (!$con = mysql_connect("localhost", "接続ID", "パスワード")) { echo "接続失敗" ; exit ; } //データベースを選択 if (!mysql_select_db("データベース名", $con)) { echo "データベース選択失敗" ; exit ; } $sikenbango=111; $mondaibango=$max; if (!$res = mysql_query("SELECT * FROM `MONDAI` WHERE SIKENBANGO='$sikenbango' AND MONDAIBANGO='$mondaibango'",$con)) { echo "SQL失敗<BR>" ; exit ; } //検索した結果を全部表示 while ($row = mysql_fetch_array($res)) { echo $row["mondai"]; echo $row["kaito"]; echo "<BR>" ; } //結果セットの開放 mysql_free_result ($res) ; //データベースから切断 mysql_close($con) ; ?> </textarea> //session.php <?php session_start(); ?> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <?php if (!isset($_SESSION['answer'])) { $_SESSION['answer'] = array(); } if (isset($_POST['submit'])) {//クリックしたとき $qno = intval($_POST['qno']);//整数が入る if (($qno >= 1)and($qno <=80)) { $_SESSION['answer'][$qno] = $_POST['answer']; // セッションに追加 // データベースへも保存したければここに記述 } } else { $qno = 0; } if ($qno == 80) { print "<pre>"; print_r($_SESSION); print "</pre>"; } else { $qno++; print '<form action="session.php" method="post">' . PHP_EOL; print '<input type="hidden" name="qno" value="' . $qno . '" />' ; print '<input TYPE="radio" NAME="answer" VALUE="1" CHECKED>A'; print '<input TYPE="radio" NAME="answer" VALUE="2">B'; print '<input TYPE="radio" NAME="answer" VALUE="3" CHECKED>C'; print '<input TYPE="radio" NAME="answer" VALUE="4">D'; } print '<input type="submit" name="submit" value="NEXT">' . PHP_EOL; print '</form>' . PHP_EOL; print "<hr />"; print "<pre>"; print_r($_SESSION); print "</pre>"; ?>
- 締切済み
- PHP
- mamemamesiba
- 回答数1
- PHPで2時間前に作成されたファイルを削除する方法
files/tmpというディレクトリーの中のファイルの作成日が2時間を過ぎたら削除するようにしたいのですが、 <?php function EmptyDir($dir) { $handle=opendir($dir); $currenttime = mktime(); while (($file = readdir($handle))!==false) { $diff = ($currenttime - filemtime($file)); echo '<br/>'; echo 'diff: '.$diff; if($diff != null && $diff >= 7200){ @unlink($dir.'/'.$file); } } closedir($handle); } EmptyDir('files/tmp'); ?> filemtimeの問題だそうです。使い方を間違えているのかな?作成したてのファイルのパス名を引数として渡してecho filemtime("files/" . $_FILES["upfile"]["name"]);のようにすれば正しい値を返すそうですが、以上に書いたEmptyDir関数の中にfilemtime($file)を呼び出せば違う値が返されています。そしてその$diff(現在時間からファイルの作成時間を引いたもの)が微妙にいつも予想された値よりずっと大きいので、作成したてのファイルを含めてディレクトリーの中身が全部消されてしまいます。 どなたか原因のわかる方がいらっしゃいましたら、ご回答を宜しくお願いします。
- PHP拡張子としてHTML型を使用したいのですが
タイトルにも書いたように、 PHP拡張子としてHTML型を使用したいのですが、うまくいきません。 .htaccessファイルに AddType application/x-httpd-php .htm .html を記述し、転送の上、パミッションを644に設定しました。 ---- test.php ----------------------------------- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html lang="ja"> <head> <meta http-equiv="content-type" content="text/html; charset=EUC-JP"> </head> <body> <?php print "hello"; ?> </body> </html> ------------------------------------------------- 上記 test.phpを.htaccessファイルと同じディレクトリに転送して実行すると正常に動くのですが、test.htmlにリネームすると、何も表示されません。 尚、.htaccess でベーシック認証はできますの、.htaccess自体は無効にはなっていないようです。 サーバーの環境は Apache 2.0.50 Fedora Core 1 kernel 2.4.22 よろしく、お願いいたします。
- PHPでいいね機能を作りたいのですが設計が不明です
現在プログラミングの勉強で、会員制の投稿サイトを作っております。 そこでデータベースを設計しているのですが、いいね!機能の実装方法がわかっていません。 (Facebookのいいねボタンとほぼ同様の機能ですが、それとは違うものです。) 仕様としては、 ・気になる投稿に「いいね」を付けられる ・「いいね」を押すと、「いいね」カウントを増やす ・同じボタンで取り消すことができ、「いいね」カウントが減る ・内容は他のユーザにも反映する ・ユーザが「いいね」を押した投稿の一覧を見られる こんなところです。Facebookのいいねと同じ仕様と思って頂いて構いません。 投稿データに「like_count」みたいなフィールドで増減すれば良いと思ったのですが、 いいねを付けたユーザーとの結びつけや、Ajaxでの処理の仕方が見当もつきません。 どうかお知恵をお貸しいただけると助かります。
- PHP制作における、バグ取りなどの修正の費用について
PHP制作における、バグ取りなどの修正の費用について 業務委託でウェブ制作や更新、管理などをしています。 私に直接関係はないのですが、業務委託元と発注元とのやり取りで分からないことがあるので教えてください。 約2年前に、業務委託元が発注元の依頼であるホームページを作成しました。 すべてのページがPHPで組まれています。 このホームページはユーザ登録をしてその中身を閲覧するものなのですが、ユーザ登録のフォームはメールフォームで業務委託元にメールが届き、IDとパスワードを発行し、メールで連絡し、ログインしてもらうというものです。(CGIを使用したり、自動でPWが発行されるものではありません。) このホームページがこれまでもずっとトラブル続きで、環境によって正常に閲覧できなかったり、ログインできなかったりと、登録した方からよく問合せがあります。 その都度、対応しているそうですが、大量のバグがあり、それを取る(?)修正する(?)作業を全部すると修正費用として10~20万円いただきたいという見積もりを出したそうです。 よくわからないのですが、自分で作ったプログラムで、1年程度で大量のバグがあとからあとから発生するものなのですか?そもそもバグがないように作れば、と思うのですが、素人考えでしょうか? 知人のメーカー勤務のSEに聞きましたら、契約にもよるけど、その会社の場合は1年以内は瑕疵担保として無料修正に応じるとのことでした。ただこの場合、依頼主もある程度、プログラム内容はわかるのだと思います。(バグがあるとかないとか、正常に動かないとか) この発注元は60代の女性で、メールがやっとという方です。ホームページは閲覧できますが、見ることしかできません。 発注元から見たら、勧められて作ってもらったホームページがトラブル続きで、製作費は払ったのに今度は修正費用を請求されるのはやっぱり納得がいかないと思うのです。 ただ業務委託元では、これまでの更新や修正は無料で行っており、ほとんどボランティア状態だったと、ただ、ログインできないなどのトラブル対処が多く、かなりの手間と時間がかかってしまっていので、これ以上は無料では対応できない、とのことでした。 私はこの発注元から業務委託元を通して、別のホームページの管理や制作を受注しています。 どちらの言い分も聞こえてくる立場なのですが、プログラムと言う未知の世界でのことなので、どんな常識があるのかが分かりません。 このような費用発生は当たり前なのでしょうか?
- ベストアンサー
- デザイナー・クリエイティブ職
- pantaron_
- 回答数1
- Windows7を使用しているPHP初心者です。ウィルスソフトは一旦、
Windows7を使用しているPHP初心者です。ウィルスソフトは一旦、すべて機能を停止して試した結果です。 XAMPPをインストールし、コントロールパネルでApacheとMysqlをスタートしてみたら、見事、緑のランプが点灯し、起動しました。 が。。一度、Exitして再度コントロールパネルを出してスタートを押すと一瞬、緑のランプが点灯し、消え、それきり一瞬すら点灯しない状態になりました。パソコンを再起動しても同じです。port80はfreeと出ています。 以前、上記と全く同じ症状になったのでXAMPPをアンインストール→新たにインストールして試したところでした。つまりインストールして最初に起動したときだけうまくいくという状態なんです。 どなたか解決法を教えていただけませんか?
- このサイトのメールフォームってちゃんとPHPのプログラムは動いているの
このサイトのメールフォームってちゃんとPHPのプログラムは動いているのですか? http://www.keitai-site.net/php/mailform_php/なのですが、タイトルの通り、このサイトのメールフォームってちゃんとPHPのプログラムが動いているのでしょうか?どなたか設置した方いらっしゃったら教えてもらえますか?私は設置して、試しにメールフォームに全部記入して送信ボタンを押したら、ちゃんと「送信されました」と表示されるのにも関わらず、メールが来てないのです。管理者用のメールアドレスを記入したにも関わらずです。パーミッションの設定に問題があるのでしょうか?
- phpでこの場合、calだけが関数の定義をされたん
phpでこの場合、calだけが関数の定義をされたんですか?それともcal($x)までが関数の定義をされたんですか? <?php function cal($x) { echo ($x *3)."\n"; }; cal(6);
- PHPよりMySQL5.0にファイル(PDFやExcelなど)の登録について
IIS上で動いているPHPよりMySQLを呼び出して、 ファイル(PDFやExcelやWordなど)をMySQLに登録することは可能でしょうか? 画像ファイルなどは、BLOBに保存しています。とネットでよく見かけるのですが、 他のファイルは可能でしょうか? (もちろん取得もいたします。) PHPは、 windows2003Server(IIS)で動いていて、 MySQL5.0は、Linux・unix上を考えています。 PHP:5.2.12 MySQL:5.0.60sp1 になります。 もし登録が可能であれば、どれくらいのファイルサイズまで可能でしょうか?
- まったくの初心者で見よう見まねでmysql php をやっています。
まったくの初心者で見よう見まねでmysql php をやっています。 恥を忍んで質問させていただきます。 comment9 フィールドで%当たり%'と書かれたレコードのみを 日付レコードにまとめて取得したいと思い下記のような文を考えました。 あたりまえだと思いますが、どちらか一方しか動作しません。 またアホなりにAND等でまとめようとしましたが式が悪いのか全く動いてくれません。 どうしたらできますでしょうか?どうかよろしくお願いいたします。 $where = " WHERE (comment9 Like '%当たり%')"; $where = " WHERE regdate = (\"$regdate\")"; 例です。 regdate comment9 comment8 comment7~ 20100401 外れ ほげ はげ 20100401 当たり はげ ほげ 20100401 外れ リンゴ リンゴ 20100331 当たり バナナ リンゴ 20100329 当たり バナナ リンゴ 20100329 外れ バナナ リンゴ 20100428 当たり バナナ リンゴ
- ベストアンサー
- MySQL
- tansansooda
- 回答数1
- 学校の授業で困っていることがあります。PHP+MySQLでショッピング
学校の授業で困っていることがあります。PHP+MySQLでショッピングサイトを構築しているのですが、カートの在庫処理の部分で疑問が発生しました。 私たちのショッピングサイトは、カートに商品を追加した時点で、DBの在庫テーブルの販売数を増やし、在庫数に即時に反映させたいと考えています。 しかし、ブラウザを閉じた時やセッションタイムアウト時、ログアウト時に確定していないカートの商品については販売数を元に戻したいのです。 ログアウト時は明示的に行えると思うのですが、セッションタイムアウト時、ブラウザを閉じた時の処理はどのようにすればいいのですか? そのようなイベントを取得するメソッドや方法はないのでしょうか? 参考サイトや方法を教えてください!
- FC2ホームページへのCGIやPHPなどについての質問です。
FC2ホームページへのCGIやPHPなどについての質問です。 FC2ホームページをやっているんですけど、CGIやPHP、JSPが使用できません。 CGIやPHP、JSPなどのメールフォームを追加しようとしたらサーバーへのアップロード中にエラーがでました。FC2ホームページ対応のCGI、PHP、JSPのメールフォームを持っているか無料でダウンロードできるサイトを知っている方は回答よろしくお願いします。
- ベストアンサー
- レンタルサーバ・ASP
- Hrt-Not
- 回答数1
- ウェブブラウザからファイルを操作することができません。(Apache - PHP - Linux)
ウェブブラウザからファイルを操作することができません。 [/var/www/test/index.php] ...(中略)... system("pwd >> /var/www/test/comment"); ...(中略)... ファイル'/var/www/test/comment'に変化は見られません。 パーミッションは(7,7,7)にしてあります。 # ls -la /var/www/test drwxrwxrwx 3 user1 user1 4096 2010-01-12 20:58 . (ちなみに、/, /var, /var/wwwも全て(7,7,7)にしてあります。) # ls -la /var/www/test/comment -rwxrwxrwx 1 root root 1 2010-01-12 20:58 /var/www/test/comment ちなみに、以下のようにエラーが出た時に書き込むような設定にしても、何の変化も見られません。 system("pwd 2> /var/www/test/comment"); また、以下の一行からはユーザとしてapacheが表示されます。 [/var/www/test/index.php] ...(中略)... system("whoami"); ...(中略)... [ブラウザ] apache コマンドラインから入力するとうまく行き、書き込みは成功します。 # pwd >> /var/www/test/comment [/var/www/test/comment] / 想像するに、ユーザapacheでのファイル操作が禁止されているようです。 環境はLinux(Fedora10)で、Apache/2.2.10 (Unix)、PHP 5.2.9 (cli)です。 困り果てています。解決策をどうかよろしくお願い致します。
- 電源についてhttp://dospara.okwave.jp/oshiete_new.php3?new_qst=1
これからPCを自作しようかな、と思っています。 構成はひと通り決まったのですが、この構成を動かす為の電源ユニット は、一体ナニが適しているのか分からず、困っています。 ―――――――――――――――――――――――――――――――― 詳細構成: CPU:intel(R)Core2Quad Q6600(2.40GHz) RAM:DDR2 SDRAM PC2-6400 1GB ×2 MB:Foxconn G31MX-K GPU:Foxconn 8400GS-512 HDD:HITACHI Deskstar P7K500 HDP725032GLA360 内蔵DVD/CD:Optiarc AD-7200A-0B バルク品 ブラック OS:Windows XP Home Edition SP3 ―――――――――――――――――――――――――――――――― (電源内蔵ケース/電源単体どちらでも構わないので、 おすすめのモノを教えて下さい。)
- ベストアンサー
- その他(PCパーツ・周辺機器)
- Espinas
- 回答数3
- IEとFirefoxでPHPから値を受け取るときの挙動が違う
現在ActionScript3.0からPHPに対してPOSTし、対象PHP内でデータベースの値を変更し、そのPHPから変数形式での返り値を受け取る処理を実装しているのですが、IEとFirefoxで挙動の違う場合がありわけがわからなくなっております。以下は現象の流れです。 1.Flash(ActionScript3.0)からDB更新用PHPをロード(loadURL) 2.データベース自体は正常に処理される 3.Flashから更新したデータを取得するPHPをロード。返り値は変数形式 例:echo "var0=name&var1=2"; 4.Firefoxでは更新後のデータが取得でき、IEでは出来ないケースがある。ページ自体をリロードした直後にデータベースの値をPHPで取得すると、IEでも正常に取得できる。 ■環境 Apache2.2.11 PHP5.3.0 PostgreSQL 8.4 OS:Vista/CentOS5.3
- VB2008のDataGridViewにあるデータをPHP5を使ってMySQLに
VB2008で大量のデータをサーバーにあるPHP5スクリプトにデータを送ろうと思いますが、VBとPHPで通信する何か良い方法はありますか? データベースはMySQL5です。 DataGridViewからXMLファイルにして、それをPHPに吸わせてMySQLにセットする方法を考えていますが、簡単な方法があれば知りたいです。 直接VBからMySQLへ書き込み?は可能でしょうか。
- ベストアンサー
- Visual Basic
- hdkoa
- 回答数1
- dreamweaverCS4でPHPを作成する環境設定の仕方を教えてください
dreamweaverCS4でPHPを作成する環境設定の仕方を教えてください。 環境はwindowsXP 、データベースソフトはSQLiteです。phpとApach2も導入済みです。 dreamweaverCS4でPHPを作成しようと思っているのですが、PHPファイルを作成しても「ブラウザでのプレビュー」がうまく実行されません。環境設定はどのようにすればよいのでしょうか?そもそもブラウザでプレビューできるのでしょうか? 設定は以下のようにしました。 「サイトの管理」→「詳細設定」→「テストサーバー」で、 サーバーモデルを「PHP MySQL」 ※私のソフトはSQLiteですがそもそも「PHP MySQL」を選択して大丈夫でしょうか? アクセスを「ローカル/ネットワーク」 テストサーバーフォルダには現在私が作成しているファイルがおいてあるフォルダを。 URL接頭辞はhttp://localhost/で設定しました。 すると「テストサーバーのサイトURL接頭辞[]は、サイトのHTTPアドレスで指定されたサイトURL接頭辞[/自分が作成しているフォルダ名]に一致しません。これによりサイトの相対リンクを使用するページが、実行時に正しく表示されない可能性があります。続行しますか?」 というのが出てきました。 ここの設定がうまくいかないからだと思うのですが、色々試しても解決できませんでした。 きちんと設定する方法をどなたか教えてください! 宜しくお願いします。
