t140 の回答履歴
- phpのchmodで2775設定がうまくいきません
phpでディレクトリを作成する際にchmodで2775を設定すると、実際に出来たディレクトリは全く違う権限になっています。 ■実際 d-ws-w-rwt 2 user group 4096 Aug 2 15:33 test1 ■期待 drwxrwsr-x 2 user group4096 Aug 2 15:34 test1 これはphpのバグなのでしょうか?? 0775で設定するとうまくいくのですが・・。 もし原因・対策をご存じであれば、是非ご教示下さい!
- PHPでの全角、半角判断について
PHP5にて、入力フォムから入力された文字を全角か半角か判断しています。 半角だとフラグを立ててエラーにしております。 しかし、「ソ」だけ全角で入力しても 半角と判断されてしまい困っております。 0x5c と関係していると思うのですが 対処方法がわかりません。 ご教示頂けると助かります。 //名前(性)フリガナ if($_POST['name3'] == ""){ echo "【名前(性)フリガナ】が未入力です。<BR>"; $errflg = 1; } $len = strlen($_POST['name3']); $mblen = mb_strlen($_POST['name3'], "Shift_JIS") * 2; if($len != $mblen){ $errflg = 1; } 以上、宜しくお願いいたします。
- PHPでの全角、半角判断について
PHP5にて、入力フォムから入力された文字を全角か半角か判断しています。 半角だとフラグを立ててエラーにしております。 しかし、「ソ」だけ全角で入力しても 半角と判断されてしまい困っております。 0x5c と関係していると思うのですが 対処方法がわかりません。 ご教示頂けると助かります。 //名前(性)フリガナ if($_POST['name3'] == ""){ echo "【名前(性)フリガナ】が未入力です。<BR>"; $errflg = 1; } $len = strlen($_POST['name3']); $mblen = mb_strlen($_POST['name3'], "Shift_JIS") * 2; if($len != $mblen){ $errflg = 1; } 以上、宜しくお願いいたします。
- やや複雑なif
if($fd+$d==1 or $fd+$d==8 or $fd+$d==15 or $fd+$d==22 or $fd+$d==29 or $fd+$d==36){ $row = mysql_fetch_array($res); echo '<td width="150" align="150" height="70" bgcolor="#FF99CC">'.$d.'あ'.$row['aki'].'</td>'; }else{ $row = mysql_fetch_array($res); echo '<td width="150" align="150" height="70">'.$d.'<br>:'.$row['aki'].'</td>'; } $row['aki']が0だった場合にifで更に違う文を出力したいんですが、どうしたらいいですか??
- 配列を結合して二次元配列にしたいのですが、
配列country [0] => 日本 [1] => アメリカ [2] => ベトナム [3] => シンガポール 配列city [0] => 東京 [1] => ワシントン [2] => [3] => クアラルンプール こういう状態のとき、 以下のような配列を作りたいのですが、 どうすればいいでしょうか。 配列hoge $hoge[0][0] = "日本"; $hoge[0][1] = "東京"; $hoge[1][0] = "アメリカ"; $hoge[1][1] = "ワシントン"; $hoge[2][0] = "ベトナム"; $hoge[2][1] = ""; $hoge[3][0] = "シンガポール"; $hoge[3][1] = "クアラルンプール"; また、こういう配列にする方法も教えてください。 配列piyo 日本 => 東京 アメリカ => ワシントン ベトナム => シンガポール => クアラルンプール
- image関数で単色別サイズの画像を大量生成したい
PHPのimage関数についての質問です graphディレクトリ内に、length:30px、color:(160,160,160)でwidthが異なる画像を大量生成しようと思います。 具体的にはwidth:1pxから2px、3px…と増えていき、30pxまで増えます。 ファイル名はwidth:1pxなら1graph.png、5pxなら5graph.png、などと名前を変えるものとして、以下のコードを作りました。 <?php for($i=1;$i<=30;$i++){ //画像のパスを生成 $gazou_path = "./graph/".$i."graph.png"; //画像の作成 $img = imagecreate($i, 25); //色の作成(背景色) $backcol = imagecolorallocate($img, 160, 160, 160); //背景色を塗る imagefilledrectangle($img, 0, 0,1, 25, $backcol); //画像出力 header("Content-type: image/png"); header("Cache-control: no-cache"); imagepng($img, "$gazou_path"); } ?> image関数自体、使用するのは今回が初めてで、 いろいろ調べてこのようなコードを作成してみたのですが、正常に動作いたしません。 create.phpというファイル名をつけて動作させてみましたが、 画像ファイル "http://localhost/create.php" は壊れているため、表示できませんでした。 というエラーが出てきます。 このような動作を行いたいのですが、正常に動作するコードをどなたか教えてください。 よろしくお願いします。
- ベストアンサー
- PHP
- crouch-tancle
- 回答数1
- mb_conver_encoding()の挙動
就職活動の為、内定を頂いた会社から 初心者だけど、独学の実力を見るうえで課題を出されました。 あるuibuntu Linuxでバッチプログラムを作っています。 大体の挙動は問題ないのですが。 文字コードをEUC-JPでcsvに出力する点で 文字コードが変換されていないようなので、質問させてください $this->msg = mb_convert_encoding($this->msg,'EUC-JP','auto'); と記述して、出力した後、 kkc -c コマンドで出力ファイルの文字コード取得したところ ASCIIと表示されました。 php.iniは mbstring.detect_order = auto default_charset = "EUC-JP" mbstring.internal_encoding = EUC-JP mbstring.http_output = EUC-JP お手数ですが、ご教授願いないでしょうか。
- C言語のビット演算をPHPでやりたいです。
下記のようなC言語でのビット演算をPHPに 置き換えたいのですが、どうしてもうまくいきません。 どなたか教えていただけませんでしょうか? よろしくお願いいたします。 bitを左シフトしている箇所と - 0x30の箇所をPHPで どのように書いたら良いのかが困っています。 ★下記コードです。 Value[i]の中には適当な0から9までの整数が1桁ずつ配列で24個入っています。 例えばこんな感じです。 Array ( [0] => 1 [1] => 0 [2] => 1 [3] => 1 [4] => 2 [5] => 0 [6] => 0 [7] => 2 [8] => 1 [9] => 8 [10] => 2 [11] => 0 [12] => 0 [13] => 9 [14] => 1 [15] => 2 [16] => 1 [17] => 1 [18] => 4 [19] => 0 [20] => 1 [21] => 3 [22] => 1 [23] => 0 [24] => 4 ) for(i=0; i<=24; i++) { for(j=0,bit=1; j<8; j++,bit<<=1) { if(Value[i] & bit) { if((j%2)==1) { Cnt1 ++; } } } Cnt2 += (Value[i] - 0x30); } Ans = Cnt1 + Cnt2;
- C言語のビット演算をPHPでやりたいです。
下記のようなC言語でのビット演算をPHPに 置き換えたいのですが、どうしてもうまくいきません。 どなたか教えていただけませんでしょうか? よろしくお願いいたします。 bitを左シフトしている箇所と - 0x30の箇所をPHPで どのように書いたら良いのかが困っています。 ★下記コードです。 Value[i]の中には適当な0から9までの整数が1桁ずつ配列で24個入っています。 例えばこんな感じです。 Array ( [0] => 1 [1] => 0 [2] => 1 [3] => 1 [4] => 2 [5] => 0 [6] => 0 [7] => 2 [8] => 1 [9] => 8 [10] => 2 [11] => 0 [12] => 0 [13] => 9 [14] => 1 [15] => 2 [16] => 1 [17] => 1 [18] => 4 [19] => 0 [20] => 1 [21] => 3 [22] => 1 [23] => 0 [24] => 4 ) for(i=0; i<=24; i++) { for(j=0,bit=1; j<8; j++,bit<<=1) { if(Value[i] & bit) { if((j%2)==1) { Cnt1 ++; } } } Cnt2 += (Value[i] - 0x30); } Ans = Cnt1 + Cnt2;
- phpとMysQLの連携がうまくいきません
現在phpとmysqlを連携させて、phpのフォームから文字を入力してmysqlのデータベース上からマッチした検索結果を表示するプログラムを作っているのですがなかなかうまくいきません・・・ お手数ですが詳しい方解答お願いいたします。 <html> <head> <title>PHP SEARCH RESULT</title> <meta http-equiv="Content-type" content="text/html;charset=utf-8"> </head> <body> <? $debug = false; //DB接続 mysql_connect("localhost","root","c0106426"); mysql_select_db("network"); if($debug) print_r($HTTP_POST_VARS); //エラーチェック //リクエストメソッドチェック if($REQUEST_METHOD != "POST") { print "Error: invalid method"; exit(); } //クエリ生成 $query = "SELECT * FROM yougo "; //検索条件生成 //用語 if(!empty($yougo)) { $yougo = yougo($yougo); $where .= "yougo REGEXP '$yougo' && "; } if(!empty($where)) { $where = substr($where, 0, -4); $where = "WHERE " . $where; } $result = mysql_query($query); $num_rows = mysql_num_rows($result); if($num_rows == 0) $message = "該当するデータはありませんでした"; else $message = $num_rows . "件ヒットしました"; ?> 検索結果<br> <?=$message?> <table border=1> <tr><td>用語</td><td>説明</td><td>講義回数</td></tr> <? while($row = mysql_fetch_assoc($result)): ?> <tr><td><?=$row[yougo]?></td><td><?=$row[sestumei]?></td><td><?=$row[kougi]?></td></tr> <? endwhile; ?> </table> <a href="search.html">再検索</a> </body> </html> このようなプログラムを書いているのですがうまく動作しません。。。 フォームからはyougoという形でpostで値をこのphpプログラムに渡しています。 データベースはnetworkという名前で テーブルはyougoid,yougo,sestumei,yomi,kougi,kai というテーブルがありまして yougoの文字を文字入力で検索して yougo,sestumei,kougi内の内容をテーブルで表示させたいのですが、 どうしてもうまくいきません。 よろしくお願いいたします。
- C言語のビット演算をPHPでやりたいです。
下記のようなC言語でのビット演算をPHPに 置き換えたいのですが、どうしてもうまくいきません。 どなたか教えていただけませんでしょうか? よろしくお願いいたします。 bitを左シフトしている箇所と - 0x30の箇所をPHPで どのように書いたら良いのかが困っています。 ★下記コードです。 Value[i]の中には適当な0から9までの整数が1桁ずつ配列で24個入っています。 例えばこんな感じです。 Array ( [0] => 1 [1] => 0 [2] => 1 [3] => 1 [4] => 2 [5] => 0 [6] => 0 [7] => 2 [8] => 1 [9] => 8 [10] => 2 [11] => 0 [12] => 0 [13] => 9 [14] => 1 [15] => 2 [16] => 1 [17] => 1 [18] => 4 [19] => 0 [20] => 1 [21] => 3 [22] => 1 [23] => 0 [24] => 4 ) for(i=0; i<=24; i++) { for(j=0,bit=1; j<8; j++,bit<<=1) { if(Value[i] & bit) { if((j%2)==1) { Cnt1 ++; } } } Cnt2 += (Value[i] - 0x30); } Ans = Cnt1 + Cnt2;
- if (isset($_POST["body"]) && $_POST
if (isset($_POST["body"]) && $_POST["body"])の中の&& $_POST["body"]って必要ですか? PHPのプログラムを読んでいて、以下のような部分を見つけました if (isset($_POST["body"]) && $_POST["body"]) しかし、どうせisset($_POST["body"])でnullかどうか、値が入っているかどうかを確めているので、&& $_POST["body"]の部分は必要ないように思います。なぜこのような書き方をしているのでしょうか?
- さくらインターネットの共用レンタルサーバーでのmod_rewriteの
さくらインターネットの共用レンタルサーバーでのmod_rewriteの設定について 今までハッスルサーバーだったのですが、先日サーバーをさくらインターネットへ移転したところmod_rewriteの設定が効かなくなりました。ちなみにスタンダードを利用しています。 サイトはpukiwikiで作成しているので、【rewritemap.inc.php】を使用しています。 その際以下を参考に設定いたしました。 【rewritemap.inc.php】 http://wiki.revulo.com/pukiwiki/patch/rewritemap また、現在 .htaccess には以下のように記述しています。 http://○○.com/test/.htaccess -------------------------------------------------------- RewriteEngine on RewriteBase /test RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.+)$ index.php?cmd=rewritemap&page=$1 [QSA,L] -------------------------------------------------------- この状態で試しに、http://○○.com/test/index.php?sampleのページへ http://○○.com/test/sampleというように接続すると -------------------------------------------------------- Bad Request Your browser sent a request that this server could not understand. -------------------------------------------------------- というエラーが発生してしまいます。 クッキーが関係しているかと思いましたが、Firefoxのクッキーを全て消去しても何もかわりませんでした。 また http://q.hatena.ne.jp/1165927535 なども参考にしましたが全くわからなく困っています。 よろしくお願いいたします
- 正規表現 画像リンクのaltの取得
正規表現 画像リンクのaltの取得 正規表現初心者です。 PHPでHTMLからリンクが設定された画像の alt とリンク先URLを取得するパターン作成に悪戦苦闘しています。 やりたいこと ページ上の画像(<img>)のalt のテキストを取得する。 ただし<img>タグはアンカー<a></a>で囲まれたリンクが設定されているもののみ。 要はリンクURLとaltテキストの組み合わせリストを作成することを目的としています。 ためしたこと 検索(PHPのpreg_match_allで)以下のパターンで取得を試みました。 #<a\s[^>]*?href\s?=\s?[\"\'](.*?)[\"\'].*?><img\s[^>]*?alt\s?=\s?[\"\'](.*?)[\"\'][^>]*?>#i このパターンで実行した場合.*?の指定があだとなったようで範囲が拡大され、たとえば以下のようなパターンにもヒットししまいます。 <a href="aaa">bbb</a><a href="ccc"><img alt="ddd"></img></a> これだと URL "aaa" に対するaltテキストが"ddd"という結果がになってしまい事実との矛盾が生じます。 勉強不足で恐縮ですが、アドバイスいただければ幸いです。よろしくお願いします。
- php fsockopenコマンドで新着メールを受け取りHP上に表示し
php fsockopenコマンドで新着メールを受け取りHP上に表示したいのですが 何分まだ経験不足なのでどうやったらいいかよくわかりません 一応調べて書けるとこまで書いてみたのですが、 ドメイン指定、パスワードの入力、新着メールの受信等がわかりません。 どなたか教えて下さい。 // ソケットオープン $socket = fsockopen('pop.〇〇〇.jp', 110, $error_no, $error_message, 10); if ($socket !== false) {
- ベストアンサー
- PHP
- seventozero
- 回答数1
- フォームから入力される値のチェックについて
お世話になります。PHP勉強中の初心者です。 タイトルにありますようにフォームから入力される値のチェックについてわからないことがあるので質問いたします。 私は書籍やサイトなどの例を参考にして郵便番号の入力値チェック(ハイフンなし)を if(!preg_match("/^[0-9]{7}$/",$_POST[zipcode])){ //エラーメッセージ } else{ $zipcode = $_POST[zipcode]; } のように記述しています。 この場合、POSTのデータが改ざんされたとしても数値以外は受け付けないので、これだけで「入力された値は安全」と考えて良いのでしょうか。 また、もしもこれが安全だとするなら、かなり極端な例ですが、 if(!preg_match("/^[一-龠ぁ-んァ-ヴーa-zA-Z0-9a-zA-Z0-9\s\ \¥\(\)\(\)\「\」\!\”\’\% \%\&\&\’\~\-\-\+\+\<\>\.\,\,\、\。\_\_\;\:\:\『\』\【\】\[\]\/\@\?\=\=\÷\× \・\※\■\□\★\☆\▲\△\▼\▽\◎\○\●\〒\←\→\↑\↓\…]{1,50}$/u",$_POST[str])){ //エラーメッセージ } else{ $str = $_POST[str]; } とすれば、POSTデータをそのままHTML表示したりデータベースなどに受け渡しても問題ないのでしょうか(文字コードはサイト全体でUTF-8を使用)。もしこれで安全なら、{1,50}の箇所で文字数の上限・下限も同時にチェックできるので使う場所によってはけっこう便利かなと思うのですが。。。 ひとりで学習しているので、入力チェックやエスケープなどどのようにしたら安全なのかわからず日々手探りの状態が続いています。お時間があれば皆さんがよく使う入力チェックやエスケープのやり方などもご教授いただけると幸いです。 どうぞよろしくお願いいたします。
- htmlspecialcharsについて(セキュリティ)
PHP5&MySQL5(OS:XP)で、テキストボックスに文字をいれ、DBに書き込む処理を作成しています。 「htmlspecialchars」を利用してセキュリティをかけたいのですが、htmlspecialcharsを使っても使わなくても同じ結果(セキュリティがきかない)が出てきてしまいます。 何が理由がお分かりの方、教えていただけると助かります。 ---ソース if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "formComment")) { $insertSQL = sprintf("INSERT INTO comment_table (entry_id, name, email, url, `comment`) VALUES (%s, %s, %s, %s, %s)", GetSQLValueString($_POST['entry_id'], "int"), GetSQLValueString($_POST['name'], "text"), GetSQLValueString($_POST['email'], "text"), GetSQLValueString($_POST['url'], "text"), GetSQLValueString($_POST['comment'], "text")); を if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "formComment")) { $insertSQL = sprintf("INSERT INTO comment_table (entry_id, name, email, url, `comment`) VALUES (%s, %s, %s, %s, %s)", GetSQLValueString(htmlspecialchars($_POST['entry_id']), "int"), GetSQLValueString(htmlspecialchars($_POST['name']), "text"), GetSQLValueString(htmlspecialchars($_POST['email']), "text"), GetSQLValueString(htmlspecialchars($_POST['url']), "text"), GetSQLValueString(htmlspecialchars($_POST['comment']), "text")); に変えています。 また、$_POST['comment']の入力文字は、 <script type="text/Javascript">window.alert('Javascriptが実行されました');</script> でも <iframe width="500" height="250" src="http://book.xxxx.co.jp/"></iframe> でもタグの内容通りの結果が表示されてしまいます。
- OCNのメールフォームで入力必須項目を
プロバイダがOCNで、ホームページを作っています。 メールフォームを設置したいのですが、 OCNのメールフォームで 名前やメールアドレスの項目を 入力していない場合、入力してくださいなどの注意がでるように 入力必須項目にしたいのですが、 OCNのメールフォームCGIを使った場合でも それはできるのでしょうか?? 教えて下さい。
- 締切済み
- CGI
- yoshiyuki1980
- 回答数2
- 時間のかかる処理をレスポンス後にゆっくり行うことって可能?
CGIが起動するとUAからのフォームを受けとりあえず「受領した」とだけ レスポンスしセッションが閉じた後時間のかかる処理をゆっくり実行する (その処理の結果はUAに返さない)ことって出来るのでしょうか? また、どのような手段を用いれば可能でしょうか?
- CGIゲームの設置でエラーがでます
オムニバスRPG"WIZARDLY" (Game - CGI/perl) http://bya.lib.net/src/ 上記のサイトで「オムニバスRPG"WIZARDLY"」をダウンロードしましたがサイトに書いてある通り「但し、動作無保証、サポート無し」でした。 CGI Error This program encountered an internal error. Error: Lock file open error 設置してゲームを始めようとしたら上記のエラーが出てしまっています(CGIの部分にアクセスすると上記のメッセージが出ました)。 これ以外の他のCGIはちゃんと動作しています(niftyサーバーです) 中身にも説明が無く、ネットで探しましたが解決方法が無かったので分かる方は教えて下さい。
- ベストアンサー
- CGI
- ten123456789
- 回答数1