検索結果
PHP
- 全てのカテゴリ
- 全ての質問
- phpでの二重投稿防止について
お世話になります。 php5にて二重投稿防止のスクリプトを考えておりますが、 なかなか良いものが浮かばず、検索でも見つけられないため質問します。 制作仕様としては、 1つのindex.phpの中に一言コメントを付けて送信するものなのですが、(twitterのような感じ) 更新ボタンを押すと「再送信~」というダイアログが出てしまいます。 別に確認ページや完了ページ等を設ければ、$_SESSIONやheader関数で解決するのですが、 どうしても同一ページ(index.php)内で全てを処理したいのです、何か方法があるのでしょうか? お手隙の方、ヒントをよろしくお願いいたします。
- PHP 関数内の変数のスコープについて
宜しくお願いします。 関数A内で作成したローカル変数 「a」 を、 その関数A内で作った関数Bで、変数「a」を操作しようと思います。 簡単に書くとこうです。 function A(){ $a = array(あ、い、う); function B(){ $a = array(い、う) } ※$aを使っての処理 } <試してみたこと> 関数B内で、global $a として、変数をグローバルにしましたが、関数Bの操作は反映されませんでした。 retun で戻せばよいとも、もちろん考えましたが、 処理の都合上、どうしてもグローバルに扱いたく思います。 とても、大雑把な質問形式で申しわけございませんが、何卒、ヒントを下さいませ。
- ASPソースコードをPHPソースコードに書き換え
下記のASPソースコードをPHPソースコードに書き換えようとしています。 <% Set ObjConn = Server.CreateObject("ADODB.Connection") ObjConn.Open "database_1" Set ObjRS = Server.CreateObject("ADODB.Recordset") ObjRS.Open "food", ObjConn, 3, 3 ObjRS.Filter = "jewelry_0_ID=" & Request.QueryString("No") If ObjRS.EOF Then Response.Write("選択された名称の区分はありません。<br><hr>") Response.Write("<a href=""index.html"">区分選択に戻る</a>") Response.End End If Do While Not ObjRS.EOF Response.Write("<tr><td>") Response.Write(ObjRS.Fields("名称").Value) Response.Write("</td><td>") ObjRS.MoveNext Loop ObjRS.Close ObjConn.Close %> PHPに不慣れであるため、このうち、 Set ObjRS = Server.CreateObject("ADODB.Recordset") ObjRS.Open "jewelry", ObjConn, 3, 3 ObjRS.Filter = "jewelry_0_ID=" & Request.QueryString("No") と、 ObjRS.Close をどのようにすればよいか、分かりません。PHPには、レコードセットを開くという概念はないのでしょうか?下記URIには、見当たりません。 http://php.plus-server.net/ref.uodbc.html
- PHPでのファイルオープンの仕方について
いつもこちらで勉強させていただいております。 初歩的な質問になるかもしれませんが、ご教授いただけたら幸いです。 windows7にて、VMware playerという仮想PCを作成するソフトを使い、Ubuntu(Linax)上でPHPの学習を行っております。 聞きたいこととしては、以下のプログラムを実行すると、 OPENエラー test.txt と表示されるのはなぜなのか、ということです。 <html> <head> <title> ファイルにデータを書き込む </title> </head> <body> <?php $file_name = "test.txt"; $file = fopen($file_name, "a") or die("OPENエラー $file_name"); flock($file, LOCK_EX); $string = "文字列を書き込む"; fputs($file, $string); flock($file, LOCK_UN); fclose($file); ?> </body> </html> 参考書に載っていたプログラムそのまま書いたつもりですが、何がダメなのかが解りません。 設定ファイルか何かに特別なことをしなければいけないのでしょうか? 初歩的な質問になるかもしれませんが、聞ける人がいなく困っております。どなたかご存知の方がいらっしゃったら、教えて下さい。 以上、よろしくお願いします。
- phpファイルをダウンロードすることはできますか?
相手のホームページに、phpと拡張子のつくファイルがあるのですが、 ダウンロードできません。どんな内容なのか見てみたいのですが無理 なのでしょうか?ご存知の方、教えてください。宜しくお願い致します。 ちなみに、iriaでダウンロードを試みたのですあエラーとなって ダウンロードできませんでした。
- ベストアンサー
- PHP
- chitose_houjo
- 回答数2
- PHPでバッチ処理(時間制御)をするには
よろしくお願いします。 PHP4でバッチ処理というか時間を自動で確認してメールを送信するPGを作りたいと思っています。 契約しているレンタルサーバ(Linux)でPHPを利用しています。Cronなどを利用せず、純粋にPHPのプログラムのみを利用してできる処理やノウハウをご存じないでしょうか?? どうぞ、ご教授お願い申し上げます。
- PHP、どうして認識しないのですか?
現在の私のサイト(shtml)のソースは次のとおりです(甲)。これを下記(乙)のように書き換えてアップしましたが”こんにちは”の文字が現れません。 レンタルサーバーの問題ですか?ソースの問題ですか? (甲) <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML lang="ja"> <HEAD> <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" > <META http-equiv="Content-Script-Type" content="text/javascript"> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <META http-equiv="Content-Style-Type" content="text/css"> <META NAME="ROBOTS" CONTENT="INDEX,FOLLOW"> <TITLE>○○○</TITLE> (乙) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" /> <title>○○○</title> </head> <body> <!--shtmlのソースの中に次を挿入しました--> <p> <?php echo "こんにちは。<br />"; echo "こんにちは。<br />"; echo "こんにちは。<br />"; echo "こんにちは。<br />"; ?> </p> ----------------------- これが表示されません。 教えて下さい。どうしてですか? 宜しくお願いします。
- PHPでCSVファイルを編集するときのモード
ご覧頂きましてありがとうございます。 PHPファイルからCSVファイルを読み込んで、編集(閲覧+追加+変更)をする場合のモードは、 "r"ではないとしたら何になるでしょうか? 調べてもよく分からず、お願い致します。
- ベストアンサー
- PHP
- -q7P2izb__
- 回答数1
- LIKE述語/SQLとPHPを使った検索フォーム
SQLを使って、「名前」(カラム名=name)と「コメント」(カラム名=comment)のテーブルを作りました。 このテーブルに対して、検索フォームを作りました。 このフォームに名前を入力すると、該当する行が検索されるようにしました。 ◆入力フォーム form.php <form action = "kensaku.php" method="post"> 名前:<input type="text" name="name"> <input type="submit" name="submit" value="検索"> </form> ◆検索結果 search.php <?php function connect() { return new PDO("mysql:dbname=★;host=★","★","★", array( PDO::MYSQL_ATTR_INIT_COMMAND => "SET CHARACTER SET `utf8`")); } $pdo = connect(); $st = $pdo->query("SELECT * FROM table WHERE name='" . $_POST["name"] . "' "); $address = $st->fetchAll(); ?> <?php foreach ($table as $g) { ?> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta name="GENERATOR" content="IBM WebSphere Studio Homepage Builder Version 14.0.8.0 for Windows"> <p>名前<?php echo $g['name'] ?></p> <p>コメント<?php echo $g['comment'] ?></p> <?php } ?> ここで、該当する文言の一部でも検索できるようにしたいです。 ※例えば、「山田太郎」を検索する場合に「山」だけでも検索できるように。 LIKEを使えばよいかと思い、 $st = $pdo->query("SELECT * FROM table WHERE name='" . $_POST["name"] . "' ");を $st = $pdo->query("SELECT * FROM table WHERE name LIKE='%" . $_POST["name"] . "%' "); と、記述してみましたがだめでした。 どのように記述すればよいか教えていただけないでしょうか。 何卒お願いします。
- PHPフォームからのMYSQL保存がマッチしない
いつもお世話になります。 類似する質問も見つけられず、いろいろ試して悩んだ挙句、アプローチを変えてもう一度投稿することにしました。 発端は、下記のページです。 http://okwave.jp/qa/q8604578.html 問題は、phpmyadminからカラムまたはフィールドに入力したものは重複していればエラー表示されるのですが、PHPのフォームからMYSQLのデータベースに保存したもの(phpmyadmin上ではちゃんと登録されている)は重複とみなされず、エラーとして検出されません。 phpフォームからMYSQLのデータベースを呼び出してカラムまたはフィールド上に同じものがなければ保存、そうでなければエラー表示、といった形で重複させないプログラムを作成するつもりでした。 上記のページでご返信いただいたように、重複させないカラムにユニーク設定してみたのですが、問題は解決されませんでした。 文字コードが違うからと思ったのですが、MYSQL、PHPどちらもUTF-8で統一させています。 フォームからMYSQLへの保存時に問題があるのでは?と思うのですが、どのような形で修正すればうまくいくのか、わかりません。 どうか、知識の足りない私にご教授いただけないでしょうか? PHPの設定とMYSQLへの登録のプログラムは下記の通りです。 PHP・・・5.4.19 XAMPP・・・1.8.2 phpmyadmin・・・4.0.4.1 データベース文字コード(UTF-8) phpの文字コード(php.iniのdefault_characterをUTF-8に設定) <?php //データベースの接続設定 $DB_HOST = "localhost"; $DB_NAME = "○○"; $DB_USER = "○○"; $DB_PASS = "○○"; //データベースに接続する $conn = mysql_connect($DB_HOST,$DB_USER,$DB_PASS) or die("接続エラー"); mysql_select_db($DB_NAME) or die("接続エラー"); //データベース登録前にメール送信する $userID = $_POST['userID']; $password = $_POST['password']; $name = $_POST['name']; $mail1 = $_POST['mail1']; $userID = htmlspecialchars($userID); $password = htmlspecialchars($password); $name = htmlspecialchars($name); $mail1 = htmlspecialchars($mail1); $mail_sub = '登録を受け付けました。'; $mail_body = 'ご登録、誠にありがとうございました。'; $mail_body = html_entity_decode($mail_body,ENT_QUOTES,"UTF-8"); $mail_head = 'From:blowin@horae.dti.ne.jp'; mb_language('Japanese'); mb_internal_encoding("UTF-8"); mb_send_mail($mail1, $mail_sub, $mail_body,$mail_head); ?> <?php //デフォルトのタイムゾーンを日本に設定 date_default_timezone_set("Japan"); //フォーム情報をすべて受信 extract($_POST); //そのまま代入する形ではエラーが起きるため、isset関数を使ってエラー回避する if(isset($_POST['$userID'])){ $userID = cnv_dbstr($_POST['$userID']); } if(isset($_POST['$password'])){ $password = cnv_dbstr($_POST['$password']); } if(isset($_POST['$name'])){ $name = cnv_dbstr($_POST['$name']); } if(isset($_POST['$mail1'])){ $mail1 = cnv_dbstr($_POST['$mail1']); } //データを追加する $sql = "INSERT IGNORE INTO touroku(userID,password,name,email,date)"; $sql .= "VALUES( " ; $sql .= " ' " .$userID. " ', " ; $sql .= " ' " .$password. " ', " ; $sql .= " ' " .$name. " ', " ; $sql .= " ' " .$mail1. " ', " ; $sql .= " ' " .date("Y/m/d H:i:s") . " ' " ; $sql .= " ) " ; $res = mysql_query($sql,$conn) or die("データ追加エラー"); //SQLコマンド用の文字列に変換する関数 function cnv_dbstr($string){ //タグを無効にする $string = htmlspecialchars($string); //magic_quotes_gpcがOnの場合はエスケープを解除する if(get_magic_quotes_gpc()){ $string = stripslashes($string); } //SQLコマンド用の文字列にエスケープする $string = mysql_real_escape_string($string); return $string; } header('location:./testkanryou.php'); exit; ?> 大変申し訳ありませんが、どうか、よろしくお願い申し上げます。
- 締切済み
- PHP
- 8x8fumifumi
- 回答数2
- PHPで問い合わせフォーム 受信すると文字化けする
フォーム⇒ (1)確認 ⇒ (2)送信 と3つに分けて、phpファイルに書きました。 ためしに、送信してみると、成功はするものの、文字が化けてメールの内容が分かりません。 分からないので教えてください。 フォーム ↓ <form method="POST" action="kakunin.php"> <table border="0"> <tr> <td >お名前</td> <td><input type="text" name="name" size="20"></td> </tr> <tr> <td>メールアドレス</td> <td><input type="text" name="from" size="20"></td> </tr> <tr> <td>メールタイトル</td> <td><input type="text" name="title" size="20"></td> </tr> <tr> <td>メッセージ</td> <td><textarea rows="5" name="naiyou" cols="40"></textarea></td> </tr> <tr> <td colspan="2"><input type="submit" value=" お問い合わせ内容を確認 "></td> </tr> </table> </form> (1) kakunin.php ↓ 入力フォームから情報を受け取り確認 <?php // フォームの値を取得します。 if ($_SERVER["REQUEST_METHOD"] == "POST") { foreach($_POST as $k => $v){ // 「magic_quotes_gpc = On」のときはエスケープ解除 if (get_magic_quotes_gpc()) { $v = stripslashes($v); } $v = htmlspecialchars($v); $$k = $v; } } else { exit(); } // 値をチェックします。 $ErrFlg = 0; if ($name == "") { echo "<p>お名前を入力してください。"; $ErrFlg = 1; } if ($from == "") { echo "<p>メールアドレスを入力してください。"; $ErrFlg = 1; } if ($title == "") { echo "<p>メールタイトルを入力してください。"; $ErrFlg = 1; } if ($naiyou == "" ) { echo "<p>メッセージを入力してください。"; $ErrFlg = 1; } if ($ErrFlg) { exit(); } ?> 内容を確認して送信ボタンをクリックしてください <form method="POST" action="mail.php"> <table border="0"> <tr> <td width="100">お名前</td> <td width="300"><?php echo $name?></td> </tr> <tr> <td width="100">メールアドレス</td> <td width="300"><?php echo $from?></td> </tr> <tr> <td width="100">メールタイトル</td> <td width="300"><?php echo $title?></td> </tr> <tr> <td width="100">メッセージ</td> <td width="300"><?php echo nl2br($naiyou) ?></td> </tr> <tr> <td colspan="2"><input type="submit" value="送信"></td> </tr> </table> <input type="hidden" name="name" value="<?php echo $name ?>"> <input type="hidden" name="from" value="<?php echo $from ?>"> <input type="hidden" name="title" value="<?php echo $title ?>"> <input type="hidden" name="naiyou" value="<?php echo $naiyou ?>"> </form> (2) mail.php ↓のコード 送信 <?php // メール送信先を指定します。 $to = "xxxxxxxxxx■ gmail.com"; // フォームの値を取得します。 if ($_SERVER["REQUEST_METHOD"] == "POST") { foreach($_POST as $k => $v){ // 「magic_quotes_gpc = On」のときはエスケープ解除 if (get_magic_quotes_gpc()) { $v = stripslashes($v); } $v = htmlspecialchars($v); $$k = $v; } } else { exit(); } // メール本文を組み立てます。 $naiyou = "お名前:$name\n メールアドレス:$from\n タイトル:$title\n 内容:$naiyou\n"; if ($name != "" and $from != "" and $title != "" and $naiyou != "" ) { if (mb_send_mail($to, $title, $naiyou, "From:$from")) { echo "メールを送信しました"; } else { echo "メール送信失敗です"; } } ?>
- XサーバーでwordpressのPHPを変更したい
Xサーバーの独自ドメイン契約し、Wordpressを使いはじめました。 テンプレートのphpを編集したいのですが、Wordpresのメニューにphp編集ページのような ものが見当たりません。 自前サーバーならばメモ帳やエディターで開いて書き換えられますが、レンタルサーバー上の テンプレートデータはどうやって変えることができるのでしょうか? ※テンプレートは賢威を使っています。一度パソコンのハードディスクにインストールした後にメモ帳でphpを書き換え、それをwordpressにインストールすれば一応できるかもしれませんが、 それでは変更の度にインストールとアンインストールを繰り返したり、何よりテンプレート入れる毎にテンプレート設定をやり直さなければならないのが致命的だと思います....,。 Xサーバー(レンタルサーバ)上でWordpressrテンプレートのPHPを書き換えるにはどうすれば良いでしょうか? 宜しくお願い致します。
- ベストアンサー
- ブログ
- tesuka2013
- 回答数1
- SNSサイトをPHPで作りたいのですが
私はHTML、CSSを学んだ後、SNSサイトを作りたいと考え、PHPをやり始め、データベース(MySQL)やセッション管理などを一通り学び終えました。 レンタルサーバー(XREA)も借りて準備万端(?)といったところです。 そこで早速SNSサイトを作りたいと考えたわけですが、何かアドバイスありますか? 例えば、、、 ・まず何からやり始めればいいのか(他のSNSサイトのソースを見て参考にしてからのほうがいのか等) ・セキュリティについてはどの程度学べばいいのか。学ぶとしたらどの文献を参考にしたらいいのか。 ・CMSは使った方がよいか?(オススメのCMSなどがあれば教えてください) よろしくお願いします。
- PHPで画像を表示するプログラムについて
実行するとランダムで取得した値を利用して、3パターンくらいの画像を切り替えて表示するPHPファイル を作成したいです! 以下のように書いてみたのですが、如何せん初心者なものでできない原因すらわかりません! 間違っているところを是非指摘していただきたいです。 宜しくお願い致します <?php $rand = rand(1,10); switch($rand){ case 1: echo("1"); break; case 2: echo("2"); break; case 3: echo("3"); break; case 4: echo("4"); break; case 5: echo("5"); break; case 6: echo("6"); break; case 7: echo("7"); break; case 8: echo("8"); break; case 9: echo("9"); break; case 10: echo("10"); break; if ($rand <= 3){ echo"<img src='a.jpg'>"; } elseif ($rand 4< || $rand >6 ) { echo"<img src='b.jpg'>"; elseif ($rand 7< || $rand >10 ) { echo"<img src='c.jpg'>"; } } ?>
- dreamweaver8でphpを作成する時の設定
今日は、Winxp、dreamweaver8で自分のPCをローカルサーバー(ローカルホスト)にして、 phpを作成したいのですが、可能なのでしょうか。 ApatcheとかSQLなどをインストールしてやらなくても良いのでしょうか。 HTMLだけのファイルはIEから確認は出来るのですが、使用言語の設定をphpに「サイトの設定」 を変更すると、HTMLファイルもIEから見れなくなります。 作成したhtml、phpの内容をExploreから確認したいのですが、「サイトの設定」をどのよ うにしたら良いのでしょうか。 宜しくお願いします。
- ベストアンサー
- PHP
- westwest_2007
- 回答数1
- Apacheでphpが急に動かなくなった
今まで普通に動いていたのですが、何かをきっかけに動かなくなりました。 php自体は生きていますが、Apacheで動かなくなり、ブラウザでアクセスするとソースコードがそのまま表示されてしまうようになってしまいました。 ネットでいろいろ調べると、httpd.confの編集が必要で、 LoadModule php5_module modules/libphp5.so の記述が必要とありましたが、 そもそも、libphp5.so などというファイルは存在しません。 でもphpは動いています。 どうしたらいいかわかりません。Linuxの操作には慣れていません。 よろしくお願いします。(CentOS4.5 - Apache 2.0.52 - php 5.1.6)
- PHPからMSSQLへの接続結果の文字化け
PHPからMicrosoft SQLserverのデータベースへ接続を行い、データベースの内容をブラウザへ表示したいのですが、日本語が文字化けして困っております。 導入するまでの手順を書きます。 参考にしたページ http://chorusde.hatenablog.jp/entry/20120621/1340300814 (1)マイクロソフトのホームページより「SQL Server Driver for PHP」をダウンロード、解凍。 (2)自分のPHPバージョンを確認。 Apache/2.4.4 PHP/5.4.19 MSVC9 Thread Safety/enabled 上記の環境からphp_pdo_sqlsrv_54_ts.dllとphp_sqlsrv_54_ts.dllを使用することを決定。 (3)C:\xampp\php\extの下に(1)で解凍したフォルダ内にあるphp_pdo_sqlsrv_54_ts.dllとphp_sqlsrv_54_ts.dllをコピー。 (4)C:\xampp\php\php.iniを開き、「extension=」と書いている951行あたりに 「extension=php_pdo_sqlsrv_54_ts.dll」 「extension=php_sqlsrv_54_ts.dll」 を追加 「mssql.secure_connection = OFF」を「ON」に修正 (5)XAMPPコントロール画面でApacheとMySQLを再起動。 その後、以下のコードで実行したところ日本語が文字化けしました。 以下のコードはこのページのサンプルコードをそのままコピペし少し修正したものです。 http://keicode.com/cgi/how-to-connect-to-mssql.php <?php $serverName = 'SQLEXPRESS'; $connectionInfo = array( 'UID' => 'username', 'PWD' => 'password', 'Database' => 'shop' ); $conn = sqlsrv_connect( $serverName, $connectionInfo ); if( $conn === false ){ echo "Cound not connect.\n"; die( print_r( sqlsrv_errors(), true)); } $tsql ="SELECT * from food"; $stmt = sqlsrv_query( $conn, $tsql ); if( !$stmt ) { die( print_r( sqlsrv_errors(), true)); } while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_NUMERIC)) { print_r($row); } sqlsrv_free_stmt($stmt); sqlsrv_close($conn); ?> このソースを実行しますと日本語が文字化けしてしまいます。(データを英語表記にすれば問題なく表示できます) 文字化けせずにブラウザに結果を表示するためにはどのようにすればよいでしょうか? またSQL文の「"SELECT * from food"」の"food"の部分(テーブル名)を「食品」と日本語名に変更するとsql文が実行できなくなりエラーを起こします。 おそらく文字化けしてSQL文を認識してしまうため「そんなテーブル名はありませんよ」と怒られてしまうのだと思います。 初心者で凝縮ですが、どなたかアドバイスをお願いいたします。
- ベストアンサー
- PHP
- do79tama13
- 回答数1
- PHP + MySQLを使用して詳細画面を開く
いま下記のソースで一覧画面が表示されます! 氏名をクリックしたら別ウインドウで詳細画面を表示させたいのですがやり方がわかりません 参考までに教えてください <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>一覧画面</title> </head> <body> <BLOCKQUOTE> <BR>一覧画面<BR><BR> <?php $con=mysqli_connect("localhost","root","password","db_test"); // Check connection if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); } $result = mysqli_query($con,"SELECT * FROM tbl_test"); echo "<table border='1'> <tr> <th>番号</th> <th>氏名</th> <th>住所</th> </tr>"; while($row = mysqli_fetch_array($result)) { echo "<tr>"; echo "<td>" . $row['番号'] . "</td>"; echo "<td>" . $row['氏名'] . "</td>"; echo "<td>" . $row['住所'] . "</td>"; echo "</tr>"; } echo "</table>"; mysqli_close($con); ?> <BR><BR><BR> <A HREF="http://localhost/regist.php"> <INPUT TYPE = "SUBMIT" VALUE = "新規登録"></A> </BLOCKQUOTE> </body> </html>
- ベストアンサー
- MySQL
- noname#197690
- 回答数8
- ローカルでPHPファイルが実行されません
http://localhost/test.php <?php phpinfo(); ?> 見ると、タグがそのまま表示されてしまい、実行されません。 何を直せばローカルでも動くようになりますか? Win8.1 アパッチインストール済 サーバー上にアップしてみると、きちんと動作確認できます。 文字コードUTF-8 BOMなし ・・でもアップする前にローカルで確認したいんです。 php.ini ファイルがないのが原因でしょうか。 詳しい方、よろしくお願い致します。
