【PHP】くだらねぇ質問はここに書き込みやがれpart6
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2005/06/05(日) 13:17:11ID:xiGnsMS4ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは>>970あたりが建てて下さい
・過去スレ
【PHP】くだらねぇ質問はここに書き込みやがれ
http://pc5.2ch.net/test/read.cgi/php/1099322141/
【PHP】くだらねぇ質問はここに書き込みやがれpart2
http://pc5.2ch.net/test/read.cgi/php/1105218084/
【PHP】くだらねぇ質問はここに書き込みやがれpart3
http://pc5.2ch.net/test/read.cgi/php/1107780435/
【PHP】くだらねぇ質問はここに書き込みやがれpart4
http://pc8.2ch.net/test/read.cgi/php/1110697712/
【PHP】くだらねぇ質問はここに書き込みやがれpart5
http://pc8.2ch.net/test/read.cgi/php/1114787573/
0654nobodyさん
2005/06/30(木) 06:42:04ID:???難しい問題だな
$ser = 'abcdef';
$arr = array('abc', 'def', 'ghi');
// かってに'abc'って書いたけどabcとかって文字列リテラルのつもりだよね?
↑の場合もただ単にtrueって考えればいいわけ?
とりあえず今の通りにforeach使うしか方法ないね。
コールバック関数を指定する系のarray_*()関数使うって手もありそうだけど、それだったらforeachごと含んだ部分を関数化するのがベストだと思う。
0655nobodyさん
2005/06/30(木) 07:00:03ID:???ちょっとトリッキーだけど。
$ser = '123abc';
$arr = array('abc', 'def', 'ghi');
if (str_replace($arr, '', $ser) != $ser)
echo "exist";
0657651
2005/06/30(木) 13:55:30ID:???(;´Д`)
0658nobodyさん
2005/06/30(木) 16:45:33ID:???0659nobodyさん
2005/06/30(木) 18:18:52ID:???でIPもしくはhostをログに取得するにはどうすればいいでしょうか?
教えてください
0660nobodyさん
2005/06/30(木) 18:26:19ID:???0661nobodyさん
2005/06/30(木) 18:28:50ID:???DLするのマンドクセ
phpinfo()すれば IPアドレスを取得できる環境変数名が分かるから、
それ或いはgethostbyaddr()を使って取得したホスト名をログ書き込み部分に追加する。
0662nobodyさん
2005/06/30(木) 20:13:41ID:???ありがとうございます!表示されました!
しかし本体(掲示板)の方にもIPが表示されてしまいます。
ログにだけ保存したいのですが簡単にできますか?
0663651
2005/06/30(木) 20:49:56ID:Xb073jdm以下の文字列"123xyz"でも"exist"になってしまいます。
何がまずいんでしょうか。。。
例
$ser = '123xyz';
$arr = array('abc', 'def', 'ghi');
$chk = 'false';
foreach ($arr as $arrs) {
if(stristr($ser, $arrs) !== "false") {
$chk = 'true';
break;
}
}
if ($chk){
echo "exist";
}else{
echo "no exist";
}
0664nobodyさん
2005/06/30(木) 21:57:06ID:???0665651
2005/06/30(木) 22:41:04ID:Xb073jdmtrue や false を文字列にしなければうまく動くんでしょうか?
どうやってもうまくいきません。
ヒントでもいただけませんでしょうか?
0666nobodyさん
2005/06/30(木) 22:43:50ID:???if ($chk)
が真になってるんだよ。
"で括るなよ。
0668651
2005/06/30(木) 23:09:30ID:Xb073jdmありがとうございました。できました。
勉強不測なようで恥ずかしいです。
0669nobodyさん
2005/06/30(木) 23:15:28ID:???そんな大きなシステム作るの?
だったらJavaで作ればいいのにって思うんだけど。
Apache+phpに比べてアプリケーションサーバーは重いから
それようのサーバーも無いし、購入する余裕も無くてphpって選択肢になってるの?
0674nobodyさん
2005/07/01(金) 00:27:41ID:???phpは最近触り始めたばかりなんだけど、すごい手軽に作れちゃう
のがphpの良いところだと思っていて、MVCなんか持ち出すなと。。。
phpで大規模は作れないなんて思わないけど、セッションの異なる
ユーザー間でのデータ共有がファイルかDBしかないって、ちょっと
パフォーマンス的にきつく感じる。
JavaならServletのオブジェクト変数にスレッド間で共有したいデータを
入れておけばよいだけだから。
0676nobodyさん
2005/07/01(金) 00:55:32ID:???673じゃないけど。
漏れの客の中には業務時間中は許可なくシステムやプロセスの再起動を
禁じるとのおふれを出してくれるDQNな顧客がいるので
再起動がないPHPはありがたい。
0678nobodyさん
2005/07/01(金) 02:25:21ID:???AppServerが必要な点で、条件が厳しいと感じる。
MVCはJavaだろうがPHPだろうが、Webアプリ作るなら
それに沿った方がトータルでは簡単(楽)だと思うけどね。
素のStruts&支援ツール未使用では少々使いづらいと思ったけど。
0679646
2005/07/01(金) 02:58:07ID:UlstNgahどうもありがとうございますた!
0680nobodyさん
2005/07/01(金) 08:30:53ID:???個人的にはそこが利点だと思うんだけど。
0681nobodyさん
2005/07/01(金) 08:47:29ID:???1つのファイルで複数のページを作りたいのですが
どのように行ったらいいでしょうか?
0682nobodyさん
2005/07/01(金) 08:51:16ID:???0683nobodyさん
2005/07/01(金) 10:01:11ID:???0685nobodyさん
2005/07/01(金) 13:29:04ID:???直すのってどうやるのですか?
0686nobodyさん
2005/07/01(金) 13:30:17ID:???0687685
2005/07/01(金) 13:39:56ID:???0688nobodyさん
2005/07/01(金) 14:27:34ID:???<?php
extract($_POST);
echo "<form action=\"menu.php\" method=\"post\">\n";
echo "<p>タイトル <br><input type=\"text\" name=\"t\" value='$t' size=45></p>\n";
echo "<p>本 文 <br><input type=\"text\" name=\"h\" value='$h' size=45></p>\n";
echo "<input type=\"hidden\" name=\"sig\" value=\"kb\">\n";
echo "<input type=\"submit\" value=\"検索\">\n";
echo "<input type=\"reset\" value=\"クリア\">\n";
echo "</form><hr>\n";
//データ検索結果の実行部分
if($sig == "kb") {
mysql_connect("localhost","root","xxxxxx");
mysql_select_db('database1');
$wt =="";
$wh =="";
$wk =="";
//検査区分の分解(タイトル)
if($t <>"") {
$xt = str_replace(" " , " " ,$t);
$gt = explode(" ",$xt);
$wt = "title like '%$gt[0]%'";
$i = 1;
$n = count($gt) - 1;
while ($i <= $n) {
$wt = $wt . " and title like '%$gt[$i]%'";
$i++;
}}
//検査区分の分解(本文)
(上の”タイトル”と似たようなコード。$t が $hに、$xt が $xhに、等)
0689nobodyさん
2005/07/01(金) 14:30:27ID:???$sql = "select * from table1 where ";
if($wt<>"") {$sql = $sql . $wt;}
if($wh<>"") {
if($wt<>"") {$sql = $sql . " and ";}
$sql = $sql . $wh;
}
//ここからが本検索
$result = mysql_query($sql);
$rows = mysql_num_rows($result);
if($rows == 0) {
print "検索データが見つかりませんでした。";
exit;
}
else {
echo "<font color=\"red\">" , $rows, "件のデータがヒット<br></font>\n";
echo "<a href=\"zemken.php?s=", $sql ,"\" target=\"main\">全検索</a><br>\n";
while($row=mysql_fetch_array($result)) {
echo $row["title"];
}}}
?>
以上です。フォーム(「タイトル」と「本文」)に入力された文字列を自身へポストし、
検索をかけ表示するというものです。
「//データ検索結果の実行部分」の「if($sig == "kb") {」と、その数行前の「echo "<input
type=\"hidden\" name=\"sig\" value=\"kb\">\n";」の意図が分かりません。
「if($t <> "") {」だとecho文の一行もいりませんよね? またその後の
$wt ==""; $wh ==""; $wk =="";
が何のためにあるのかも良くわかりません。試しに削ってみましたが、ちゃんと機能するようです。
0690nobodyさん
2005/07/01(金) 15:00:48ID:???$wt ==""; $wh ==""; $wk =="";
は
$wt =""; $wh =""; $wk ="";
としたかったんだと思う
formからpostされたときだけ
if($sig == "kb") { 以下の処理を行うということでしょう
(タイトルや本文などの他の項目は任意でこの値だけは必ずセットされている)
0691nobodyさん
2005/07/01(金) 15:04:03ID:???で、質問書いてからコード引用しろよ。
0692690
2005/07/01(金) 15:06:18ID:???にしたら$sigはいらないかな
入力値が無いときの動作についての仕様しだいだけど
0693689
2005/07/01(金) 15:36:24ID:???>(タイトルや本文などの他の項目は任意でこの値だけは必ずセットされている)
あぁ、そういうことか。フォームは2つ有るんですもんね(´・ω・`)
でも
$wt =""; $wh =""; $wk ="";
はいまだに?です。なんか要らないような・・。
0696695
2005/07/01(金) 15:44:57ID:???です
0698nobodyさん
2005/07/01(金) 16:20:28ID:???感じとしては
print hogehote.txt
でhogehoge.txtの内容をそのまま表示してくれるような・・。
分かりにくかったらごめんなさい
0700nobodyさん
2005/07/01(金) 16:28:01ID:???0702nobodyさん
2005/07/01(金) 16:45:45ID:uNU+fZm1ファイルオープン
flock($fp,LOCK_EX);
fputs
ファイルクルーズ
としてるのが多いんですが
flock($fp,LOCK_UN);は書かなくても勝手に解除されるんでしょうか?
0703nobodyさん
2005/07/01(金) 16:55:57ID:???0705nobodyさん
2005/07/01(金) 17:07:49ID:???ありがとうございます
readfile("./test.txt")
で表示するだけは出来ました。
ちょっと
$fp = readfile("./test.txt"):
print "$fp";
としてみたんですが結果が
----------------
hoghoge.com
hogyohogyo.com
87
----------------
となりキャラクター数が最後に付いてしまっているようです。
えーと変数をテキストだよって宣言する作業をすればいいのかな・・
0707nobodyさん
2005/07/01(金) 17:17:12ID:uNU+fZm1ありがとうございます。
レッツのカウンタを使ってたら壊れたのでロック関係の処理を検索してました。
wでなくでr+で開いてftrancate($fp,0);でファイルサイズ0にして書き込み
に変更すれば大丈夫でしょうか?
0708nobodyさん
2005/07/01(金) 17:17:29ID:???また違う方法を探さないと駄目なんですね・・
0711707
2005/07/01(金) 17:34:29ID:???$fp = fopen($file,"w");
flock($fp,LOCK_EX);
fputs($fp,$data);
fclose($fp);
を
$fp = fopen($file,"r+");
flock($fp,LOCK_EX);
ftruncate($fp,0);
fputs($fp,$data);
flock($fp,LOCK_UN);
fclose($fp);
にしたら大丈夫でしょうか?
ディレクトリとかを使いたくありません。
0712nobodyさん
2005/07/01(金) 17:52:40ID:???0713nobodyさん
2005/07/01(金) 18:13:36ID:???なるほどでも
readfile("./test.txt");
だけだとファイルの中身だけが表示されるのは何故?
もと分かって無いと怒られそうかな・・ ;-;
で
<a href=http://hogehoge.com>hogehoge</a>
ってurlが羅列されているテキストをHPの色んなページにチョコっとリンクとして表示させたかったので。
$lines = file("./test.txt");
foreach ( $lines as $val){
print $val . "<br>";
}
って感じにしてみました。
今後は元テキストが
http://hogehoge.com<>hogehoge
urlとリンク先HPのみを自動でリンクにとして表示するようにしようかなぁと
0714nobodyさん
2005/07/01(金) 19:11:14ID:???0716nobodyさん
2005/07/01(金) 19:24:23ID:???つ[http://jp2.php.net/manual/ja/function.readfile.php]
0717nobodyさん
2005/07/01(金) 19:52:51ID:???何回も読みました・・w
動作は分かったのでひとまずいいです
動けばいい趣味スクリプトなんで
プログラムの基礎が無いので読んでも大まかにしか分かって無いようです。
0718nobodyさん
2005/07/01(金) 19:57:19ID:???0719717
2005/07/01(金) 20:03:10ID:???ありがとうございました <(_ _)>
分かりたいんですが、何が分かって無いのか分からないので。
phpいじくりながら勉強します
0720nobodyさん
2005/07/01(金) 20:58:06ID:???0721nobodyさん
2005/07/01(金) 22:33:46ID:???閲覧者が検索ワードを入力し結果を表示させるだけのものををphpとmysqlで
作りたいんですけど、やはりセキュリティと言うものに気を配らなければ
ならないのでしょうか。全く気を配らなかったとして、どのような被害が
考えられますか?
0722nobodyさん
2005/07/01(金) 22:45:17ID:???0723nobodyさん
2005/07/01(金) 23:02:28ID:???0724721
2005/07/01(金) 23:16:38ID:???急に自身が無くなって来ました。最低限これだけはやっとけって事にどんなもの
がありますか?答えづらい質問で申し訳ない。
0727nobodyさん
2005/07/01(金) 23:58:56ID:???fopen( "hogehoge.log" , "w" )
などで作成されたファイルの文字コードは何になるのでしょうか。
0728721
2005/07/02(土) 00:10:50ID:???回答ありがとうございます。
XSSでググって見たらジャンジャンひっかかりますね。これだけでも進歩です。
これを足がかりに勉強します。
0729nobodyさん
2005/07/02(土) 00:14:54ID:???hogehoge.logが画像だったとして、それがchmodやfopenで左右されると思う?
書き込もうとする内容が文字コード(さらに言えばテキストに限らず画像のようなものまで)を決定します。
そしてその内容は、phpへの入力・php.iniの設定・スクリプト内のコード変換等 いろいろな場所で文字コードを変換される可能性があります。
0732nobodyさん
2005/07/02(土) 18:04:14ID:???下記でエラー(T_ECHO)になります。何処がいけないのでしょうか。
<?php
extract($_GET);
mysql_connect('localhost','root','xxxxxx');
mysql_select_db('lesson');
if($i<>"") {
$sql = "select * from tbl where id=$i";
$result = mysql_query($sql);
$row = mysql_fetch_array($result)
echo $row["id"];
}
?>
『$rows = ・・・』以下を下記のように直せば大丈夫なんですが。
while($row = mysql_fetch_array($result)){
echo $row["id"];
0735nobodyさん
2005/07/03(日) 00:40:30ID:???flock($file,LOCK_EX);
$line =date("Y年 m月 d日 H:i:s")."\t";
fputs($file,$line."\n");
flock($file,LOCK_UN);
fclose($file);
複数のファイル名で保存するにはどうしたらいいですか?
(aaa.dat , bbb.dat , ccc.datで保存)
0737nobodyさん
2005/07/03(日) 01:34:54ID:???このPHP版JoyfulNoteで新規投稿が着たら
メールで知らせてくれる機能使ってるんですが、
なぜか???だらけのメールが着ます。
このメールを普通の文体のメールに変えるためにはどうしたら良いですか?
ちなみにサーバーはXREAのs151鯖です。
よろしくお願いします。
0739nobodyさん
2005/07/03(日) 10:19:30ID:???0740nobodyさん
2005/07/03(日) 13:07:47ID:???文字コードをいじるためにはどこを弄ればいいんですかね?
Joyful.phpのメール発射するらへんを見てみたんですが、
イマイチわかりませんでしたorz
0741nobodyさん
2005/07/03(日) 18:10:19ID:???mb_language ("ja");
mb_internal_encoding("sjis"); //この行を追加
mb_send_mail($mailto,$MailSub,$MailBody,"From: $email");
0743nobodyさん
2005/07/03(日) 19:23:17ID:sGU6ge/dfunction & hoge()
と、
受け取り側の参照受け取り指定
$moge =& hoge()
の関係がいまいち分かりません。
・両方とも記述しなければいけない
・関数側だけでも同じ結果
・受け取り側だけでも同じ結果
どうなっているのでしょうか?
0744nobodyさん
2005/07/03(日) 19:45:27ID:6wIeYBytたとえばベースとなるフォームをPDFや画像を用意しておき、
そのフォームの特定位置に対応する情報を出力する
差込印刷のようなことは可能なのでしょうか?
それともすべてをPHPで出力するか、
あるいはこういう差込印刷をしようと思ったらOpenOfficeなりを利用するほかはないのでしょうか?
0745nobodyさん
2005/07/03(日) 20:11:28ID:???たとえば、fpdf+fpdiのような外部ライブラリを使えば、差込印刷っぽいことはできる。
んでも、細かな調整等は自分で実装しなきゃいけないよ。
0747nobodyさん
2005/07/03(日) 21:56:45ID:6wIeYBytひとつのFORMにsubmitボタンを複数設置することは可能なのでしょうか?
具体的には、掲示板を表示するphpにおいて各書き込みに「編集」「削除」のボタンを設置し、
共通のphpで処理したいのです。
例えば
<TR><TD>774:nanashitaso</TD>
<TD>本文:ちょっと1聞いて(ry</TD>
<TD><FORM method='POST' action='sakujonin.php'>
<INPUT type='submit' value='編集' name='editflg'>
<INPUT type='submit' value='削除' name='editflg'>
<INPUT type='hidden' value='774' name='kakikoid'>
</FORM>
</TD></TR>
このような記述をしておき、sakujonin.phpではeditflgの内容によって処理を切りかえることが可能か?という疑問です。
あるいはsubmitボタンそれぞれのnameを変えておき、セットされている変数(name)によって処理を変えるのでもよいのですが。
よろしくおねがいします。
0749nobodyさん
2005/07/03(日) 22:09:58ID:???sakujonin.php を以下のようにして実験してみたらすぐ判ることを
なぜワザワザ聞くんだ?
友達が居なくてかまって欲しいのか?
<?php
echo $_POST['editflg'];
?>
0750nobodyさん
2005/07/03(日) 23:38:09ID:???編集と削除、それぞれを違うnameに汁。
それから、それぞれのボタンを押した際の$_POSTの中身を見比べて見る
0751747
2005/07/04(月) 00:50:43ID:???どうもありがとうございました。
■ このスレッドは過去ログ倉庫に格納されています