くだすれPHP(超初心者用)4
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/06/13(金) 20:32:36ID:???もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
PHP使いが優しくコメントを返しますが、
お礼はPHPの布教と初心者の救済をお願いします。
PHP Home Page
http://www.php.net/
http://jp.php.net/
前スレ: くだすれPHP(超初心者用)3
http://pc11.2ch.net/test/read.cgi/php/1193295871/
適当に関連スレ(マルチはだめぽ)
【PHP】下らねぇ質問はここに書き込みやがれ 69
http://pc11.2ch.net/test/read.cgi/php/1211879073/
0231nobodyさん
2008/08/28(木) 19:41:11ID:???0233nobodyさん
2008/08/28(木) 23:12:59ID:???で、仮想マシンや引退したボロPCあたりで環境作っていじり倒す
0234nobodyさん
2008/08/28(木) 23:18:21ID:???それでも良ければご自由に。
0235nobodyさん
2008/08/28(木) 23:28:54ID:???じゃぁ、どんな風に勉強していけばいいですか?
>>233が言っているようにネットだと情報がかなり断片的で、
しかも、本と同じでネットで情報公開している人によって偏ってたり、訂正もされないまま放置されていたりするわけなんだけど。
0236nobodyさん
2008/08/29(金) 01:13:34ID:???0237nobodyさん
2008/08/29(金) 01:14:32ID:???0238nobodyさん
2008/08/29(金) 01:15:48ID:???0239nobodyさん
2008/08/29(金) 01:33:52ID:???ttp://help.goo.ne.jp/help/article/822/#08
0240nobodyさん
2008/08/29(金) 11:55:19ID:???確かにネットも本と同じで書き手次第だが
本と違うのは書き手の数
より多くの情報を知ることで信頼出来る情報や誤解を判断出来る
(本では数読むには金がががががが)
それに基本はオープンソースなのだから、公式のドキュメントもネットにある、
ある程度の認識が身についたら、公式を押さえることを忘れるな
そして糞ブログ滅べ(特に半端な日記系)
0241nobodyさん
2008/08/29(金) 15:09:59ID:???DocumentRootにphpinfo関数が書かれたindex.phpファイルを置き
PHPの情報をブラウザで表示させるところまで成功しました。
次にPOSTの勉強のために以下のform.htmlファイルをつくり
<html><head>
<title>テキスト送信のテスト</title>
<META http-equiv="Content-Type" content="text/html;
charset=Shift_JIS"></head>
<body bgcolor="#FFFFFF" text="#000000">
<font size="4">テキスト送信のテスト</font>
<form name="form1" method="post" action="view.php">
名前:<br>
<input type="text" name="onamae"><br>
<input type="submit" value="送信">
</form>
</body>
</html>
以下の内容のview.phpと一緒にDocumetRootにつっこんで
<html><head>
<title>PHPによるテキスト送信・受信・表示</title></head>
<body>
<?php
print $_POST["onamae"];
?>
</body>
</html>
ブラウザでhttp://localhost/form.htmlを表示させ名前を入力し送信ボタンを押したのですが
IEの"WEBページが見つかりません"のHTTP404エラーが出ます。
ネットで調べて色々php.ini、httpd.confの設定を書き換えてやっているのですが解決しません。。
どこの設定を直せばいいのでしょうか。お助けください。
0242nobodyさん
2008/08/29(金) 15:24:11ID:???ttp://localhost/view.php
直接呼び出して見てはどうだろう
404エラーってことはファイルがないってことだから設置場所が間違っているか
formのaction指定が正しくないかのどっちかになると思う
0243nobodyさん
2008/08/29(金) 15:44:07ID:???直接view.php呼び出しても404エラーが出ます。
設置場所はDocumentRootに指定してあるC:\Apache2.2\htdocsの中に
form.htmlとview.php二つつっこんでます。
action指定については間違ってないと思うのですが。。
0244nobodyさん
2008/08/29(金) 16:04:48ID:???htmlとphpが同じ場所にあって、htmlしか呼び出せないってのは変
(header関数でどこかに飛ばしてない限り)
htmlとphpを削除して、ブラウザで両方404になるか見てから、もう一度設置してみて
0245nobodyさん
2008/08/29(金) 16:10:56ID:???view.php.txt
大丈夫そうなんだけど、こういう事例も多いからいちおう。
0246242
2008/08/29(金) 16:21:02ID:???phpファイルに変更したらちゃんと呼び出せました。
どうも皆さんすいません。
0247nobodyさん
2008/08/29(金) 16:55:09ID:???0248nobodyさん
2008/08/30(土) 01:23:15ID:xhTnmRsdランダムテキストを使い「random.php」に例えば10個のリンク先を設定し、
ページの上中下で <?php require "random.php"; ?>で呼び出して使いたいんですが
ページの広告全てが同じものが表示されてしまいます。
ランダムテキストをcgiで作り、SHTMLファイルで呼び出してた時には
すべてきちんと違う広告がランダムに表示されてました・・。
1っのrandom.phpできちんとページ内の広告がバラバラに出るにはどうすればいいでしょうか?
0249248
2008/08/30(土) 01:23:35ID:???↓
<?php
// hitには相対確率を入れる。完全にランダムにするなら全部"1"にする
// rtxtには、テキストを入れる。改行はしないようにする
// テキストを増やしたりする場合は、"[ ]"の数字が0から順になるようにする
$hit[0] = 1; $rtxt[0] = '<a href="...">1</a>';
$hit[1] = 1; $rtxt[1] = '<a href="...">2</a>';
$hit[2] = 1; $rtxt[2] = ''<a href="...">3</a>';
$length = count($hit) - 1;
for($i=0; $i<=$length; $i++) {
$m += $hit[$i];
}
srand( (double)microtime()*1000000 );
$n = round(rand(1,$m) );
for($i=0; $i<=$length; $i++) {
$x = $y;
$y += $hit[$i];
if($x<$n && $n<=$y) $ad = $rtxt[$i];
}
print("$ad");
?>
よろしくお願いします。
0250nobodyさん
2008/08/30(土) 01:53:03ID:???0251nobodyさん
2008/08/30(土) 03:04:20ID:???別の方法として
簡単にやりたければshuffleで配列($rtxt)をシャッフルしてarray_shiftで配列の先頭を取り出せばいい
array_shiftで取ると配列は1つ減るから2回目、3回目で重複することはない(同セッション内)
0252250
2008/08/30(土) 04:09:13ID:???(double)microtime()*1000000
が同じ値をシードに与えてんじゃないの?
0253235
2008/08/31(日) 18:33:17ID:???>>240
レスありがとうございます。
ネット上は断片化された情報が多くて、取捨選択が難しい上に、
あっちの情報とそっちの情報での差異が出る理由が明確に分からなくて悩ましいです。
それを調べるってことが、公式ドキュメントを読めっていうということなんですかね。
技術情報を読める程度には英語勉強しろってところですね。
板違いですんませんでした。
0254nobodyさん
2008/09/12(金) 15:34:40ID:???今のままだと例えば<b>文字</b>で登録されているデータは太字で表示されてしまいます。
SQLはpostgresです。
現在のコード↓
$passmd5 = md5('$pass');
$sql = htmlspecialchars("SELECT * FROM table1 INNER JOIN table2 ON table1.id=teble2.id WHERE
table1.id='$id' AND table1.pwd='$passmd5';");
$rs = pg_query($conn, $sql);
$rows = pg_num_rows($rs);
if($rows==0){
print("IDかパスワードが正しくありません。<br />");
print('<a href="#" onclick="history.back(); return false;">戻る</a>');
exit;
}
print("<table border=\"1\">");
print("<tr><td>ID</td><td>パスワード</td><td>項目1</td><td>項目2</td><td>項目3</td></tr>");
while($row = pg_fetch_array($rs)) {
print("<tr>");
print("<td>".$row["id"]."</td>");
print("<td>".$row["pwd"]."</td>");
print("<td>".$row["koumoku1"]."</td>");
print("<td>".$row["koumoku2"]."</td>");
print("<td>".$row["koumoku3"]."</td>");
print("</tr>");
}
print("</table>");
0255nobodyさん
2008/09/12(金) 15:39:24ID:???0257nobodyさん
2008/09/12(金) 16:12:31ID:???だな
出力の直前にやるのがいい
それ以前は加工する可能性があるからな
0258254
2008/09/12(金) 16:18:13ID:???本当にありがとうございました!!
0259nobodyさん
2008/09/14(日) 09:44:04ID:B7I6GMpnphpを勉強するのに何をしたら「俺すげぇ進化したぁ」と感じたかを教えてください。
0260nobodyさん
2008/09/14(日) 09:52:22ID:???0261nobodyさん
2008/09/14(日) 12:14:00ID:???0262nobodyさん
2008/09/14(日) 13:35:42ID:???車輪の〜って言われるだろうが、利用するかはともかく仕組みを考えて実装することに意味がある
と、言いつつ愛用してるが・・・
0263nobodyさん
2008/09/14(日) 21:23:06ID:jIYlcJD1が理解できるようになったとき。
あとショッピングカートとかブログとかその辺
のアプリができたとき。
0264nobodyさん
2008/09/14(日) 22:46:57ID:B7I6GMpn観念的で曖昧な質問に答えてくださってありがとうございます。
ちょっと(いや、かなり)質問の仕方が悪かったかもしれません。
「コレを頑張ったら結果をより早く導出できるようになった」という体験を伺ったのです。
「頭打ち状態からブレイクスルーした」という体験はありませんでしょうか?
>>262さんのレスを参考に「フレームワーク 車輪の」でググってみました。
「車輪の再発明」ということですね。
自分でもそういうことをしてしまっている可能性があるので参考になりました。
ありがとうございます。
0265nobodyさん
2008/09/14(日) 22:54:51ID:???0266nobodyさん
2008/09/14(日) 23:41:45ID:???メール送信でPHPが標準でsendmailしか使わんことに気付いた時
大量に送信するにはオーバーヘッドがウザいからSMTP送信をしたいのに出来ない・・・
仕方なくpopenで実装って時にSMTPっつうプロトコルの仕組みを知ってて良かった〜ってことはあった
0267nobodyさん
2008/09/15(月) 00:02:57ID:???0268nobodyさん
2008/09/15(月) 00:03:46ID:???0269nobodyさん
2008/09/15(月) 22:32:29ID:???中の仕組みを知っていたほうが良いのは当然だな。
ある程度理解していればプロトコルの詳細はRFC斜め読みでなんとかなる。
0270nobodyさん
2008/09/17(水) 12:48:50ID:JTQWTwl/substrとか これなんだっけ ってなる
0271nobodyさん
2008/09/17(水) 12:52:42ID:???0272nobodyさん
2008/09/17(水) 12:57:46ID:???プログラミングの勉強となると紙のノートじゃなくPCに依存して勉強したくなるよね
でもメモソフトと紙のノートには雲泥の差の自由度があるから勉強のためのメモとしてはあまり利用出来ないよね
0273nobodyさん
2008/09/17(水) 12:59:19ID:???0274nobodyさん
2008/09/17(水) 16:13:37ID:???0275Noone
2008/09/17(水) 16:59:26ID:???0276nobodyさん
2008/09/18(木) 00:02:52ID:X0thX7wZ0277nobodyさん
2008/09/18(木) 07:48:56ID:eOfu22hGファイルのアップロードをしているんですが、php.iniやhttpd.confが直接いじれなくて
.htaccessに
php_value post_max_size 100M
php_value upload_max_filesize 100M
php_value memory_limit 100M
と書いてそれぞれの値を変更しています。
問題は、これらの値がページをリロードする度にサーバのデフォルト値である
post_max_size 32M
upload_max_filesize 32M
memory_limit 90M
になったり、
post_max_size 100M
upload_max_filesize 100M
memory_limit 100M
になったりすることです。
こういった現象を経験された方いらっしゃいませんか?
各値の確認は、
ini_get()関数で確認しています。
0278nobodyさん
2008/09/18(木) 08:58:15ID:???0279nobodyさん
2008/09/18(木) 09:48:54ID:eOfu22hGレンタルサーバが、リソースが不足している場合.htaccessが有効にならないような設定がされているということでしょうか?
0280nobodyさん
2008/09/18(木) 09:51:27ID:???プロセスが別なのにPARDIRのディレクティブが上書きされるなんて聞いたことがない
0281nobodyさん
2008/09/18(木) 10:42:43ID:???これの真ん中の||とissetの前の!はどういう意味?
0282nobodyさん
2008/09/18(木) 10:50:24ID:???! は反転を意味する。
issetは「初期化されていればtrue」で調べたいことは「定義されていない場合」だからfalseとなるところを!で反転して評価してるんだな
0284nobodyさん
2008/09/18(木) 10:54:39ID:???!は反転するということなんですね。
0285nobodyさん
2008/09/18(木) 12:44:53ID:???0286nobodyさん
2008/09/18(木) 13:27:00ID:???// 値がセットされてなければecho
echo '';
}
こういうことですよね?
0287nobodyさん
2008/09/18(木) 13:37:33ID:???0288nobodyさん
2008/09/18(木) 13:50:01ID:???> // 値がセットされてなければ
empty() と isset() の説明や比較例を見ると良いです。
?aaa=&bbb=hoge というクエリが飛んできた場合、isset($_GET['aaa'])==TRUE。
言われてるように急がずにゆっくり取り組めばいいと思うよ。
0289nobodyさん
2008/09/18(木) 13:51:32ID:???isset($_GET['aaa'])がTRUEだと言いたいんだろうがその説明の仕方はだめだw
0290nobodyさん
2008/09/18(木) 14:20:02ID:???言いたかったことはその通りなので、「isset($_GET['aaa']) は TRUE を返す」に訂正します。
0291nobodyさん
2008/09/18(木) 14:34:48ID:???0292nobodyさん
2008/09/18(木) 14:42:09ID:eOfu22hGレンタルサーバの会社に問い合わせたところ詳しくは教えてもらえませんでしたが
>>277で書いたような負荷がかかることはことはしないでくれとのことでした。
根本的な解決はできませんでしたが、こういった現象もあるってことで・・・
しかし、今度はどうやって高負荷時は.htaccessを無視するようなことができるのか
そっちに興味がわいてきました。
Apacheの設定にそういうことができるようなオプションがあるのかな?
0293nobodyさん
2008/09/18(木) 14:46:31ID:???0294nobodyさん
2008/09/18(木) 14:56:27ID:???基礎を勉強したいと思います
0295nobodyさん
2008/09/18(木) 15:14:50ID:???0296nobodyさん
2008/09/18(木) 15:15:16ID:???0298nobodyさん
2008/09/19(金) 03:16:00ID:???サーバー側が php4 → php5 にしますよ
と言ってきました。
バグってどれくらい出るものでしょうか。
移行された人いらっしゃいますか?
0299nobodyさん
2008/09/19(金) 05:25:52ID:???そんなんアプリによってまちまちとしか言えん
ていうか手元で移行検証くらいしようよ
0300nobodyさん
2008/09/21(日) 15:55:59ID:G8wZRX1Estrip_tags()を使用してコメントタグだけを残したい場合はどうしたらよいでしょうか?
$html = strip_tags($html, "<!---->");
という書き方だとコメントタグも削除されてしまいます。
0301nobodyさん
2008/09/21(日) 16:35:13ID:???プログラミング経験は無いわけではなくC,C++でマルコフ連鎖モンテカルロ法
の実験などを大学の研究でしたりもしているのですが、最近なんとなく
PHPのようなウェブアプリを簡単に作れる言語に興味があります。
が何を作ったらいいかわかりません。
自作で、実用レベルまで比較的に簡単に作れるもの、
というとどういうものがあるでしょうか。お願いいたします。
0302nobodyさん
2008/09/21(日) 16:36:57ID:???まぁ何にするにせよ実用性とは程遠いだろうが気にするな
0303nobodyさん
2008/09/21(日) 17:51:38ID:???何かのウェブアプリを作りたいからphp学びたいんじゃないの?
せめて作りたいものの目標くらい無いとモチベーション続かないと思うんだけど。
なんか目的と手段が逆になってるような気がする。
0306nobodyさん
2008/09/21(日) 18:30:48ID:???マニュアルに書いてあるぞ、無理ってな
strip_tagsの前後でHTMLコメントの置き換えて逃げるしかないだろうな
0307nobodyさん
2008/09/21(日) 18:31:56ID:???誤:strip_tagsの前後でHTMLコメントの置き換えて逃げるしかないだろうな
正:strip_tagsの前後でHTMLコメントを置き換えて逃げるしかないだろうな
0308nobodyさん
2008/09/21(日) 20:19:14ID:uUB1weY6.htmlファイルの中に
<?php
include('file.php?pass=123');
?>
としましたが、includeが実行されません
拡張子は常に.phpでなければいけないんでしょうか?前に試した出来たような気がしたんですが、、
また、上記のようなインクルードファイルに引数をつけた場合、
file.phpの中で$_GET['pass']としてを解釈することは出来るでしょうか?
どなたかご回答お願いします
0309nobodyさん
2008/09/21(日) 20:28:27ID:???0310nobodyさん
2008/09/21(日) 20:29:10ID:???俺の経験では出来ない。
file.phpの中に関数f_fileを書いて以下の様にすればいい。
<?php
include('file.php'); f_file('123');
?>
0311308
2008/09/21(日) 20:49:34ID:uUB1weY6ありがとうございました
phpは .htmlの拡張子のファイルでは動かないということでいいでしょうか?
また、二つ目の質問に関しては
http://okwave.jp/qa4336105.htmlという解決法を見つけました
>>310さんの答えと合わせて考えたいと思います
0313300
2008/09/21(日) 22:14:17ID:G8wZRX1Eありがとうございます。
自分の持ってるPHP辞典には記載されてなかったでわかりませんでした。
なんとも中途半端な仕様ですね。
0314nobodyさん
2008/09/21(日) 22:33:44ID:aDAFCUyFttp://jp.php.net/manual/ja/functions.arguments.php
> 注意: PHP 5以降、デフォルトで値はリファレンス渡しとなります。
の、主語というか目的語というか、ナニのデフォルトが参照渡しになるんでしょか。
function alter($str){
$str = $str . '!';
}
$nya = 'nya';
alter($nya);
echo $nya;
は PHP 5.2.0-8+etch9~bpo31+1 (cli) では $strを 変更せずに nya が表示されました。
0315nobodyさん
2008/09/21(日) 23:03:33ID:???原文読むといいかと。
http://jp.php.net/manual/en/functions.arguments.php
0316nobodyさん
2008/09/21(日) 23:22:56ID:???やってみれば分かるが&付けなくても参照元の値も変わるぜ
余談だが
PHP4では 「&$arg=null」なんてデフォルト引数が使えないんだが、PHP5から問題なく通る
呼び出し時に引数指定したかどうかでスイッチしてんだろうなぁ
0318nobodyさん
2008/09/22(月) 01:05:35ID:???変数$aに1が入ってる時だけ変数$bに入ってるIP以外からのアクセスがあった場合にifコマンド使って、
他の内容を表示するの。
0319nobodyさん
2008/09/22(月) 01:09:02ID:???0320318
2008/09/22(月) 01:10:00ID:???これ使っていけるかな・・・・・・?
0322318
2008/09/22(月) 02:51:53ID:???どうすればよいですか?
0323nobodyさん
2008/09/22(月) 03:00:08ID:???0324318
2008/09/22(月) 03:15:17ID:???<?php
$ip = $_SERVER['REMOTE_ADDR'];
$str = "$ip";
$len = strlen($str);
$handle = fopen('ip.txt','r');
$contents = fread( $handle, $len );
fclose( $handle );
echo $contents."<br />\n";
if($ip==$contents){
echo "成功";
}
else{
echo "失敗";
}
?>
ipアドレスの文字数分引っ張り出して比較することで回避できた。
0325nobodyさん
2008/09/22(月) 03:21:01ID:???0327318
2008/09/22(月) 03:27:42ID:???処理が終われば解除されるようなかんじで。
0328nobodyさん
2008/09/22(月) 03:39:53ID:???と
212.134.32.143
0330nobodyさん
2008/09/22(月) 12:43:54ID:???0331nobodyさん
2008/09/22(月) 15:10:26ID:EKIEGJ69■ このスレッドは過去ログ倉庫に格納されています