【PHP】くだらねぇ質問はここに書き込みやがれpart7
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001966
2005/07/12(火) 01:47:09ID:qOoYFCn7ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは>>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/
【PHP】くだらねぇ質問はここに書き込みやがれpart6
http://pc8.2ch.net/test/read.cgi/php/1117945031/
立ってなかったんで>>970に近かった自分が勝手に立てちゃいました。
0855nobodyさん
2005/08/05(金) 00:15:36ID:9OK6LhSH例えば
define("hoge","aiueo");
print "あいうえおはローマ字でhoge";
などとして「あいうえおはローマ字でaiueo」と出力させたいのです。
print "あいうえおはローマ字で" . hoge;
というのは避けたいのですが、他にやり方はあるものでしょうか?
よろしくお願いします。
0856nobodyさん
2005/08/05(金) 00:16:25ID:9OK6LhSH$string = "abc.def.ghi.";
$string = substr($string,0,strlen($string)-1);
0859nobodyさん
2005/08/05(金) 01:21:39ID:???ブログなんかでたまにある、
なんたらかんたらなんたらかんたらなんたらかんたらなんたらかんたら...続きを読む、みたいな感じにしたいのです。
0863nobodyさん
2005/08/05(金) 08:37:06ID:xefaOJlUinternal server errorがでしまいます。
OSはフェドラコア4でapacheとphpはyumでインストールしてきました。
このとき設定は特に変える必要はないそうなのですが、何か変更が必要ですか?
すれ違いなら誘導お願いします。
0864nobodyさん
2005/08/05(金) 09:01:49ID:???0865nobodyさん
2005/08/05(金) 09:19:40ID:???0866863
2005/08/05(金) 09:43:21ID:tHV4jGl/エラーは
security alert This PHP CGI cannot be accessed directry
まずこれがあります。
ほかにもあるんですが、いまコピペできる環境にないんで。
0867nobodyさん
2005/08/05(金) 09:47:17ID:???; cgi.force_redirect = 1
↓
cgi.force_redirect = 0
0868863
2005/08/05(金) 10:05:20ID:tHV4jGl/できたーーーーーーーー
俺>>867さんのことダイスキ。ありがとうございました。
0869nobodyさん
2005/08/05(金) 10:45:27ID:???結果を変数に取り込むにはどうすればよいのでしょうか?
exec関数では結果が返ってきませんし、passthruやsystemでは
直接画面(ブラウザ)に表示されてしまいます。
$result = system($file_name);
↑みたいな感じで書いてみたのですが・・
0870nobodyさん
2005/08/05(金) 11:04:18ID:???画面に出ちゃうのは、ob_* を使えば 変数に取り込めるよ。
ob_start();
system('test.bat');
$str = ob_get_contents();
ob_end_clean();
echo "<p><font color="#ff0000">$str</font></p>";
まぁ、batファイル内でecho したものを $str=` ` や $str=exec() で変数に入れちゃえますけど。
0871nobodyさん
2005/08/05(金) 13:17:03ID:???なるほど。やってみます。
取りあえずバッチファイル内の各行末でパイプ使ってリダイレクトさせてみましたが、
余計なファイルを作らなくて良いならそれにこしたこと無いので。
0873nobodyさん
2005/08/05(金) 14:56:29ID:vB1WCgKJ0875nobodyさん
2005/08/05(金) 15:13:20ID:???ブラウザが取得するのは単なるhtmlで、それがPHPを経由してるかどうかなんて気にしないよ。
違いがでる場合の(htmlの)ソースを見比べてみ。
0876nobodyさん
2005/08/05(金) 16:41:48ID:jDJVMZFRpostメソッドで検索語句を変数$keyに渡しすのですが、語句が1語であれば
select * from TABLE like '"% . $key. "%'";
で出来るのですが、複数のキーワード(and検索)の場合はどうすればいいんでしょうか。
0878nobodyさん
2005/08/05(金) 17:07:08ID:???で検索してみようかな
0879nobodyさん
2005/08/05(金) 17:14:45ID:DYX+HJMi接続しています。ntext型のデータをphpからselectする際、データが
大きいと「Warning: mssql_query(): message: Unicode のみの照合順序の
Unicode データまたはNTEXT データを、DB-Library (例 ISQL) または
ODBC バージョン 3.7 以前を使用しているクライアントに送信できません。」
と表示され、selectが行えません。
色々と試した結果、255バイトまでであれば取得できるようです。
上記症状の解決方法をご教えて頂け無いでしょうか。
実行環境はWindowsServer2003StandardEditionSP1
MicrosoftSQLServer2000
php4.4.0
を使用しています。
0880nobodyさん
2005/08/05(金) 17:21:35ID:???南海ですか・・・。
一応、こういった処理までいきました。
全角スペース→半角スペースに変換
半角スペース→カンマに変換
検索語句をカンマ区切りで配列化させる
後はSQL文で複数のキーワードをどうやって入れるかなんですけど…。
like $key1 and $key2 and $key3 …
みたいな感じでできますか?
0881nobodyさん
2005/08/05(金) 17:53:30ID:???いや、はっきり言えばコードの抜粋の仕方も日本語もおかしいってことだ。
SQLの質問ならずばり板違い
where col like '%a%' and col like '%b%' and col like '%c%'
0882nobodyさん
2005/08/05(金) 23:17:16ID:???$img_ref .= '<img src="'.$a_path.'img/'.$_POST['key'].$imgnum.$tail.'" width="'.$W.'" height="'.$H.'" align=left></a>';
を
画像だけじゃなくファイル全般のリンクとしたいのですが
<img srcを <a href に
width height を消去
<a href=xxxxx>と</a>の間に 文字を挿入でよいかと思われるのですが間違ってるでしょうか?
$img_ref .= '<a href="'.$a_path.'img/'.$_POST['key'].$imgnum.$tail.'" align=left>"'.$a_path.'img/'.$_POST['key'].$imgnum.$tail.'"</a>';
ちなみにやろうとしていることは画像UP掲示板をファイル全般UP可能に変更しようとしてます。情報お待ちしてます
0883nobodyさん
2005/08/05(金) 23:33:42ID:???えらく見づらいけど、あってると思うよ。ただのリンクなんでalign=leftはいらないだろうけど。
動かないからカキコしたのかな。だったらどう動かないか書いた方がいいかも。
老婆心だけど直接 $_POST['key'] を埋め込むのはあまり良くないな。
理由が判らなければサニタイジングでググって味噌。
0884882
2005/08/05(金) 23:51:58ID:???通常表示はindex.htmlを表示
書き込みがあった場合にbbs.php さらにbbs2.phpを参照してるっぽいんです。
で、UPロード関連の処理が書いてあるのは bbs2.php
そして、実際に書き込みをして、正常ならば更新されたindex.htmlが表示されるようなんですが、手を加えていない bbs.phpにアクセス中にとまってしまうんです。
・・・・何言ってるかわかり辛いと思うんで
改造しようとしているやつ
ttp://script.s16.xrea.com/2ch/
改造しようとしているのは、UP可能なファイルを画像だけでなく
その他の拡張子も受け付けるようにしたいのです。
サイタニシングという名の特殊記号による文字化け注意了解です
0886nobodyさん
2005/08/06(土) 00:08:26ID:???0887nobodyさん
2005/08/06(土) 01:05:47ID:???年・月ごとにフォルダを作って、一日分ずつログを作っていく形式にしようと思ってる。
・・・のだけど、レン鯖のPHPがセーフモードOnみたいで、mkdirとchmodが動作しない。
回避策を教えてくれエロい人。
0889nobodyさん
2005/08/06(土) 01:12:01ID:???年月ごとだったら、別にスクリプトで生成しなくたって、
予めFTPとかで作っておけば?
3年分でもたかだか36個だしょ?
0890nobodyさん
2005/08/06(土) 01:16:31ID:???0891887
2005/08/06(土) 01:18:47ID:???PathInfoってのが初耳。
ちょっとマニュアル見てくるっす。
>>889
ん、それでもいいかも。
もうちょっと格闘してみようかな。
ありがとうエロい人達。
0892nobodyさん
2005/08/06(土) 04:41:55ID:zdmG/ySSデータを渡すことは可能なのでしょうか?
0893892
2005/08/06(土) 04:48:42ID:???自動にジャンプするときです。たとえばログインボタンなどを押して、自動的にジャンプするときに
さらにデータを送るということです。
0894nobodyさん
2005/08/06(土) 05:56:02ID:???0895nobodyさん
2005/08/06(土) 06:07:53ID:???phpファイルが二つあるある場合にそれどれのファイルから違うファイルにデータを渡すということです。
自動ジャンプは header(Location: *******); しか知らない上に使い勝手が悪いので困っています。
0897nobodyさん
2005/08/06(土) 07:06:12ID:???下記のプログラムで、一つ階層の下のXXXというフォルダの
下の(中の?)フォルダのリスト名を取得したいのですが、どうすればできますか?
<?php
if ($handle = opendir('./')) {
while (false !== ($file = readdir($handle))) {
if (is_dir($file)) {
if ($file != "." && $file != "..") {
echo "$file\n";
}
}
}
closedir($handle);
}
?>
0899nobodyさん
2005/08/06(土) 08:11:04ID:???opendirとis_dirの引数の両方変更しないとあかんやろ。
<?php
if ($handle = opendir('XXX/')) {
while (false !== ($file = readdir($handle))) {
if (is_dir('XXX/' . $file)) {
if ($file != "." && $file != "..") {
echo "$file\n";
}
}
}
closedir($handle);
}
?>
0900nobodyさん
2005/08/06(土) 08:26:13ID:???つ
<html><head></head>
<body>
//input系のbox
<form method='post' action='データを渡す先の.php'>
<input type='submit' value='ログインボタン'>
</form>
</html>
0901nobodyさん
2005/08/06(土) 09:18:26ID:???・自動的に
どっちやねん(´_ゝ`)
0902nobodyさん
2005/08/06(土) 09:44:31ID:???まぁなんにせよ、>>894だが。
0903nobodyさん
2005/08/06(土) 11:35:30ID:???あるスクリプトの一部で作成した画像をそのスクリプト内で表示することはできないのでしょうか?
調べてみたところ、この用法としては
・ヘッダーに画像情報を入れて*.phpを画像としてIMGタグで指定する
・画像ファイルを作成する
の二つのようですが、ファイルを作成することなく一時的な画像を同スクリプト内で表示することはできないものでしょうか?
0904nobodyさん
2005/08/06(土) 11:48:48ID:???1つのリクエストに対して、複数の内容のレスポンス(html + 画像)を返すというのは、
仕様としては存在してるんだけどブラウザ側で対応しているものがほとんど無い。
0905nobodyさん
2005/08/06(土) 12:01:23ID:???引数で表示画像内容を指定できるスクリプト(.php)と、
その.phpを<img>で呼び出すHTMLを吐き出す.php
の二つの.phpを作成汁
0906nobodyさん
2005/08/06(土) 12:02:01ID:???たぶんこんな感じのことをやろうとしてるのだろうか?
--- gd_and_img_tag.php ---
<?php
// リクエストパラメータに応じてGDでごにょごにょ
imagePngとかimageJpegあたりで出力みたいなこと
?>
<img src="自分の出力">
-----------------------
いやでもね、単純に
--- img_tag.php ---
<img src="gd.php?リクエストパラメータ">
-----------------
--- gd.php ---
header('Content-type: image/png');
// リクエストパラメータに応じてGDでごにょごにょ
imagePngとかimageJpegあたりで出力みたいなこと
-------------
でいいんで内科?
パラメータがデカイならセッションなりなんなりで。
0908903
2005/08/06(土) 12:04:58ID:???ためしに一時的にファイルを作成してIMGタグで指定したあとでunlink()で削除したら
ブラウザには壊れた画像アイコンが出てきました。
直後に消すのもまずい様子。
・・・ってことはファイルに保存してもIMGタグで読み込むまでのタイミングで他の人が上書きしても
それは反映されてしまうかもしれないってことかな?
(実際に画像を読み込むタイミングはIMGで指定したよりずいぶん後になるのか?)
この辺はどういう仕様になってるんだろ??
0909nobodyさん
2005/08/06(土) 12:06:25ID:???検証もしていないし、IE限定っぽいんだけど、
phpでmhtファイルを送出したらどうなんでしょうね?
画像はbase64でエンコードして埋め込むことになる。
今度暇になたら検証してみよう。
0910903
2005/08/06(土) 12:14:35ID:???言われてみれば最初から別ファイルにすればよかったorz。
いや、あまり細々とファイルをいっぱい作るのが嫌なので
同カテゴリのページはすべてフラグを設定して一つの.phpの中でやってたんですが、
よく考えたら画像生成用関数を外部につくるくらいなら画像生成用.phpを作っても大して変わらない・・・。
みなさんレスどうもです。
これまたよく考えたら>>908は当たり前すぎてorz。
クライアントに届く前に削除してるんだから見えるわけがないよな・・・。
0911nobodyさん
2005/08/06(土) 12:14:57ID:???○すれ違い
0912nobodyさん
2005/08/06(土) 13:47:37ID:???$ary01 = array("鈴木","20");
$ary02 = array("田中","18");
$ary03 = array("渡辺","19");
$ary04 = array("田中","21");
.
.
.
$aryN = array("佐藤","21");
重複している『田中』を削除して
$ary01 = array("鈴木","20");
$ary02 = array("田中","18");
$ary03 = array("渡辺","19");
.
.
.
$aryN = array("佐藤","23");
にしたいんだが、どうすればできますか?
0913nobodyさん
2005/08/06(土) 13:53:04ID:???0914nobodyさん
2005/08/06(土) 14:24:30ID:???913のいうように二次元配列を使ったほうがいい。
$ary = array();
$ary[1] = array('名前', '年齢');
$ary[2] = array('名前', '年齢');
・
$ary[N] = array('名前', '年齢');
for($i=1;$i<=count($ary);$i++) if($ary[$i][0]=='田中') unset($ary[$i]);
そのデータのままやるんなら、
$aryNがいくつまであるのかっていうデータが必要。
それをforで同じように回してunsetする。
0916nobodyさん
2005/08/06(土) 14:27:23ID:???0917914
2005/08/06(土) 14:29:55ID:???あ、良く読んでなかった。
「田中」を全て削除するもんだと思って>>914書いてしまった、すまん。
それこそ、二次元配列でデータを入れる段階で、
$ary['田中']='18';とかにしていけばいいんじゃないか?
ちなみに、あなたの質問の仕方にもちょっと足りないところが。
「重複している『田中』を削除して」って、どういう削除だ?
最初に出てきた『田中』が残るのか、後に出てきたのが残るのか。
上記のように二次元配列を使うと、後に出てきたのが残るんだが…
>>915
ワロスwwwwwww
0918nobodyさん
2005/08/06(土) 14:36:03ID:???削除されるのは常に後から来た方なのか?
0919912
2005/08/06(土) 14:43:07ID:???>>913-918 詳しくありがとう。
説明不足で申し訳ない、
削除するのは前でも後ろでも構わない、片方どちらか残せば、
重複しているの『田中』だけじゃなく、仮に『高橋』『伊藤』『小林』....
がでてきた場合も削除したいんだ、できますか?
0920nobodyさん
2005/08/06(土) 14:47:17ID:???for ($i = 1; ; $i ++)
{
$aryname = sprintf("ary%02d", $i);
if (! isset($$aryname)) break;
$ary = $$aryname;
if (! isset($tmp[$ary[0]])) $tmp[$ary[0]] = array($i, $ary[1]);
unset($$aryname);
}
foreach ($tmp as $n => $v)
{
$aryname = sprintf("ary%02d", $v[0]);
$$aryname = array($n, isbirthday($n) ? (string)($v[1] + 2) : $v[1]);
}
まわりくど・・・・
0921nobodyさん
2005/08/06(土) 14:50:46ID:???0922nobodyさん
2005/08/06(土) 15:46:43ID:???みたいに
$fp = fopen("hoge.txt") or return;
とやりたいけど当然うまくいかない
ここをかっこよく書く方法を
0923nobodyさん
2005/08/06(土) 17:57:55ID:???かっこよいかどうか判らんが
if (!$fp = fopen('hoge.txt', 'r')) return;
ぢゃあかんのか?
0924nobodyさん
2005/08/06(土) 19:16:22ID:???0925nobodyさん
2005/08/06(土) 22:33:54ID:if+rBJOC自動的にユーザーに0000とか、自動でユーザーIDを付加し、
DBに登録したいんだけど、どうやって処理つくればいい?
0926nobodyさん
2005/08/06(土) 23:00:32ID:???0928nobodyさん
2005/08/07(日) 00:30:30ID:???DBMSで自動でユーザーID(連番)を付加してやればいい。
まあPHPで連番の採番処理してやってもいいと思うけど。
(カウンターと同じようなの)
0929nobodyさん
2005/08/07(日) 02:50:31ID:OZokRLKOprint "<A HREF="http://www.google.com/intl/ja/">google</A>";
?>
すいません。PHPの中で、リンクタグを貼ることは出来ないんでしょうか?
↑のようなことをやっても、parse error, unexpected T_STRINGとなります。
0930nobodyさん
2005/08/07(日) 02:59:14ID:???0931nobodyさん
2005/08/07(日) 03:04:35ID:???レスありがとうございます。
$test = "<A HREF="http://www.google.com/intl/ja/">google</A>";
print "$test";
↑みたいな事しても出来ません。
なにか代替処置みたいな事がありませんでしょうか?
0933nobodyさん
2005/08/07(日) 03:08:15ID:???0934nobodyさん
2005/08/07(日) 03:27:42ID:???print "<A HREF=\"http://www.google.com/intl/ja/\">google</A>";
0936優しい人
2005/08/07(日) 09:35:58ID:???覚えとけ(´_ゝ`)
0937nobodyさん
2005/08/07(日) 11:01:55ID:???その中で変数使っても問題ないんじゃないの?
print "<A href='$linkurl'>";
って大丈夫でしょ?
これってまずいの?
0938nobodyさん
2005/08/07(日) 11:51:26ID:???例えば入力フォームにて<INPUT type='textbox' name='hoge'>としておき、
あとで何も入力されなかったらエラー表示させたいのですが、
if (!$hoge) print "だめぽ";
としたところ、テキストボックスに0を入れた場合でもエラーが表示されてしまいます。
issetやis_nullを試したところ何も入力しなくてもエラーは表示されません。
if (strlen($hoge)==0) とやるしかないのでしょうか?
他になにかやり方がありましたら教えてください。
0939nobodyさん
2005/08/07(日) 11:52:57ID:???0940nobodyさん
2005/08/07(日) 11:53:38ID:???0941nobodyさん
2005/08/07(日) 11:57:21ID:???htmlの属性値は " ' のどちらで囲んでも良い。
属性値を引用符で囲まなくても良い場合もあるが、その条件とURIの表記とは一致しないので引用符を使った方がよい。
URIで使う文字に " ' のどちらも含まれていないので、(入力チェック等を通過した後は)どちらの引用符を使ってもよい。(RFC3986)
[phpのお話]
" "の中に$があれば、そこからできるだけ長い文字が変数名になるように探される。
つまり、変数名に使えない文字が出るまでが遠足^h^h変数名として利用される。 " ' は変数名の対象外。
で、>>937 それでもいいよ。
0942nobodyさん
2005/08/07(日) 12:06:59ID:LvZBGVlbfunction u(){
$host="host";
$user="user";
$pass="pass";
}
としてメインのphpファイルで
<?php
require_once("test.php");
u();
$x=mysqli_connect($host,$user,$pass)
...
?>
としてもエラーとしてaccess denied for user 'nobody@localhost'(using password:no)
とけられてしまいます。何がまずいとですか?
0943nobodyさん
2005/08/07(日) 12:14:08ID:???そういう時は物事を簡単にしていく。
function u(){ 〜元と同じ〜 }
<?php
require_once("test.php");
u();
print "$host $user $pass";
?>
やってみれば、分かるけど $host等が未定義のままになっている。
これは、変数のスコープの問題。(どの範囲まで変数が有効か)
ttp://www.php.net/manual/ja/language.variables.scope.php
0947nobodyさん
2005/08/07(日) 13:41:15ID:???これが最強
0948nobodyさん
2005/08/07(日) 13:59:33ID:???MagpieRSSというRSSパーサー(http://www.hyuki.com/yukiwiki/wiki.cgi?MagpieRSS)を
設置したのですが、RSS0.92を取得して、RSS1.0へ出力するにはどのPHPファイルに
どのような記述をすればいいでしょうか?
サイトに埋め込む方法はよく取り上げられているのですが、
そのままRSSに書き出す方法が見つからないので・・・
0949912
2005/08/07(日) 15:54:11ID:???できませんか?
2005-08-07T15:38:10+09:00
Sat, 6 Aug 2005 12:55:00 CDT
20050804T00:00:00
0950nobodyさん
2005/08/07(日) 16:04:52ID:Comr+/IIGETでもPOSTでもいいんだけど、SQLインジェクションというのを調べてたら
そのまま渡されたデータをSQL文に入れたりするのがちょっと怖くなってきた。
もちろん数値ならctype_digit、半角英数字ならctype_alnumとかでチェックはしてるんだけど、
たとえば半角全角オールオッケーなデータ(掲示板の投稿内容とか)はどうすればいいんだろう?
SQL文で使われそうな英単語を弾くというわけにもいかないし。
誰か安心できるいい方法教えてplz。
0951nobodyさん
2005/08/07(日) 16:10:10ID:???お好きな物を用途にあわせてドゾ
http://jp2.php.net/manual/ja/function.htmlspecialchars.php
http://jp2.php.net/manual/ja/function.strip-tags.php
http://jp2.php.net/manual/ja/function.addslashes.php
0952950
2005/08/07(日) 16:22:35ID:Comr+/II即レスどうもです。
確かにSQL文中の変数をシングルクォートでくくっておいて、
入れる変数を全てhtmlspecialcharsで処理すれば問題はなさそうですね。
ところで最近買った本には
「入力した値をデータベースに格納する場合には、スクリプトの無効化はデータを表示するときに行う」
と書いてありました。
格納時にエスケープしてしまうと
「ブラウザを経由せずにデータ入力した場合にエスケープが行われない」
「ブラウザ以外に出力する場合にエスケープしたキャラクタを元に戻す必要がある」
だそうです。
言ってることは正しいけど、意図しないSQL文を入力されてしまう可能性を考えたら
SQL文発行前に処理しておいた方がいいのでしょうか?
0953950
2005/08/07(日) 16:25:57ID:???0954nobodyさん
2005/08/07(日) 16:33:31ID:???とりあえず自分はアドスラッシュだけして格納、表示の時点で
nl2br($str);またはnl2br(htmlspecialchars($str));
BBSで特定のタグを許したければstrip_tagsのオプションで指定しています。
ただ、マヌアルによるとstrip_tagsは構文チェックはしないらしいのでhtmlが壊れる可能性はある
レス数が950を超えています。1000を超えると書き込みができなくなります。