くだすれPHP(超初心者用)5
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/11/22(土) 06:36:02ID:???もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
PHP使いが優しくコメントを返しますが、
お礼はPHPの布教と初心者の救済をお願いします。
PHP Home Page
http://www.php.net/
http://jp.php.net/
くだすれPHP(超初心者用)4
http://pc11.2ch.net/test/read.cgi/php/1213356756/
適当に関連スレ(マルチはだめぽ)
【PHP】下らねぇ質問はここに書き込みやがれ 69
http://pc11.2ch.net/test/read.cgi/php/1211879073/
0522nobodyさん
2009/01/25(日) 05:59:54ID:???例えば
$test['a'][1];
$test['a'][2];
$test['b'][1];
$test['b'][2];
$test['b'][3];
この配列で要素数5を返したいのですが
countでは3が返ってきます。
何かほかの関数や手段はありますか?
0524nobodyさん
2009/01/25(日) 06:08:42ID:???すまんこっちのほうだ
0525nobodyさん
2009/01/25(日) 07:39:19ID:???ttp://jp2.php.net/manual/ja/function.count.php
0526nobodyさん
2009/01/25(日) 08:17:33ID:???>>515
だからさ、login.phpのファイルはあるけど何らかの問題で読めてないんだって。
たとえば、お前らのサーバでも試せるからやってみ。
test.php作ってパーミッションを000にしたファイルにアクセス。
したら、
Warning: Unknown: Failed opening ・・・
になるから。
0527nobodyさん
2009/01/25(日) 08:29:44ID:???0528476です。
2009/01/25(日) 11:45:32ID:esMzMmSNなんででしょうか?
0529nobodyさん
2009/01/25(日) 11:56:54ID:???login.phpの中身を空っぽにしてアクセスしてみ?
0530nobodyさん
2009/01/25(日) 12:04:32ID:???原因はパーミッション以外にいろいろあるよ。
パーミッションだってあってるのかどうか。
他にはopen_basedirとかsafe_modeとか、
CGIで動いてるレンサバなんかならそれに合わせた設定が必要だし。
0533nobodyさん
2009/01/25(日) 12:14:51ID:???Hello Worldが動くかどうかなんて、エスパーじゃあるまいしわからないさ。
が、とりあえず、それを試せば問題は次に移るってこと。
Warning: Unknown: Failed opening '/var/www/html/login.php' for inclusion (include_path='.:/usr/local/include/php/libs') in Unknown on line 0
冗長だけどもっかい書くとね。
Apache:login.phpにリクエスト来ました。ファイルありました。phpハンドラー、後はよろしく。
php:了解、じゃ、ファイルをインクルードして処理します〜。あ、ファイル、インクルードできません。
で、エラー
from:不明なリソース to: login.php action:include result:無理
0534nobodyさん
2009/01/25(日) 12:19:12ID:???パーミッションが間違ってる。
open_basedirの設定にtypoがあって動かない。
include_pathに問題がある
safe_modeの設定に問題がある
PHPがsuexecで動いてて、ファイルの所有ユーザーかグループに問題がある
などなど。
0536nobodyさん
2009/01/25(日) 12:21:27ID:???とでも書いて結果を貼ってもらうってのがいいのかもしれないね。この場合。
0538476です。
2009/01/25(日) 13:36:25ID:esMzMmSNphpinfo(INFO_CONFIGURATION);
かいたやつを入れましたのでよろしくお願いします。
0539476です。
2009/01/25(日) 13:42:05ID:esMzMmSN0540nobodyさん
2009/01/25(日) 13:44:10ID:???ところで、login.phpでecho "Hello World!";はしてみたの?
0541nobodyさん
2009/01/25(日) 13:44:40ID:???0543nobodyさん
2009/01/25(日) 13:49:36ID:???0544nobodyさん
2009/01/25(日) 13:50:22ID:???0545476です。
2009/01/25(日) 14:46:06ID:esMzMmSNはできました。
source.zipアクセスできるようになりましたので、よろしくお願いします。
>>マルウエアをインストールさせるための釣りだな。たぶん。
変なこといわないでください
0546nobodyさん
2009/01/25(日) 14:53:00ID:???そしたら、元のソースにして、エラーが出る個所を特定すればいい。
1行でも解釈できれば例のエラーにはならないから。
で、リダイレクトループとかで問題が出ているケースもあるから、
error_log(__LINE__);とかを怪しいところにはさんで行って、どこまで処理が進んでるかチェック。
0547476です。
2009/01/25(日) 15:00:45ID:esMzMmSNの使い方がわかなんね。
どうやって使うの?
0548nobodyさん
2009/01/25(日) 15:04:41ID:???コマンドラインが使えるならエラーログでtail -f /var/log/httpd/error_logとかで見張ってればよくわかる。
エラーログが見れないんならechoでもいいけど、要するにどこまで処理が進んでるかチェックして
そのエラーメッセージを出せば、新しい情報がとれるでしょ?
0549nobodyさん
2009/01/25(日) 16:08:16ID:???Hellow World→動く
サンプルコードをそのまま挙げた→動かない
これしかやってないでできないできない言うとかありえないっす
0550476です。
2009/01/25(日) 20:01:42ID:esMzMmSNerror_log(__LINE__); でいろいろ調べてみたいと思っています
0551476です。
2009/01/25(日) 20:12:36ID:esMzMmSNPHP Fatal error: require_once() [function.require]: Failed opening required 'config.php' (include_path='.:/usr/local/include/php/libs') in /var/www/html/login.php on line 3
だそうです。
調べてみてもわからん。
0552476です。
2009/01/25(日) 20:13:47ID:esMzMmSNSELINUXは切ってありました。
0553476です。
2009/01/25(日) 20:51:19ID:esMzMmSN無事動いたのですが....動いたといえるのか。
HTTP/AUTH.PHPが作動したのですが、
Member Area のサーバーにはユーザー名とパスワードが必要です。
と普通でます。
で、db_login.phpのデータを入れたんですがだめでした。
もしかして
$AuthOptions = array(
'dsn'=>"mysql://$db_username:$db_password@$db_host/$db_database",
'table'=>"users", // テーブル名
'usernamecol'=>"username", // ユーザ名の列
'passwordcol'=>"password", // パスワード列
'cryptType'=>"md5", // パスワードの暗号化形式
'db_fields'=>"*" // 他の列も取得可能にする
のどこかにデータを入れなくてはいけないのでしょうか?
0555476です。
2009/01/25(日) 21:24:21ID:esMzMmSNとでるんですがユーザー名とパスワードを入れてもうごきません。
初歩的ですいませんが、
>>553のどの部分に自分のデータを記載すればいいのでしょうか?
僕はdb_login.phpにデータが入っているのでなにもいれてなく>>553
のままなんですが。
ここの部分がおかしいんですよね?
0556nobodyさん
2009/01/25(日) 21:31:42ID:???usernameっていうユーザいるの?
0557nobodyさん
2009/01/25(日) 21:35:07ID:???ここはお前専用の質問スレじゃないんだ。
で、login.phpが動かないとか、そもそも入力されたユーザ名・パスワードが間違ってた時の挙動が
どうなるのかを把握してんのか?
それと自分でうpした中のDB.txtの中身を理解してるのか?
具体的には62・63行目。
…もしかしてNG推奨だったのか
0558nobodyさん
2009/01/25(日) 21:35:50ID:???db_login.phpにはそのデータベースにアクセスするための権限情報を保存
0559476です。
2009/01/25(日) 21:38:41ID:esMzMmSN'passwordcol'=>"password", // パスワード列 ←変更
すればいいですか?
あ、mysqlに入っているusernameとpasswordはすでに試しましたが
だめでした。
それがいまいちよくわからないんですよね
なんでだめなのか
0560nobodyさん
2009/01/25(日) 21:39:56ID:???0561nobodyさん
2009/01/25(日) 21:47:18ID:???0562476です。
2009/01/25(日) 22:23:02ID:esMzMmSNマスまずパスが違っていました。
僕のパスはinclude_path = ".:/usr/local/include/php/libs"
なので、ここにpearとconfig.phpを入れてやりました。
そしたら動きました。
>>560さんへ
パスワードはちゃんとハッシュしていますよ。
0564476です。
2009/01/25(日) 22:43:40ID:esMzMmSN0565nobodyさん
2009/01/25(日) 23:06:00ID:???0566522
2009/01/26(月) 01:07:02ID:Ihgtqp1Kそれだと、a・bという項目もカウントしてしまい、7を返すようです。5を返す方法はないですか?
0568522
2009/01/26(月) 05:09:38ID:Ihgtqp1Kすみません、バージョンが4なのでarray_walk_recursiveは使えないみたいです。
他にありませんか?
0569nobodyさん
2009/01/26(月) 05:10:14ID:???0570nobodyさん
2009/01/26(月) 05:48:20ID:???$count = 0;
foreach ($test as $value) {
$count += count($value);
}
echo $count;
0571570
2009/01/26(月) 05:58:46ID:???それ以上になると再帰(リカーシブ)でやったほうがいい
(foreachのネストでも可能だが読みやすさに限界がある)
ただし再帰は頭の回転が速くないと何やってるかわからなくなるので
苦手なら無理して使う必要はない
0573nobodyさん
2009/01/26(月) 06:26:30ID:???http://pc11.2ch.net/test/read.cgi/php/1231850905/
0574nobodyさん
2009/01/26(月) 06:30:54ID:???0575nobodyさん
2009/01/26(月) 10:12:51ID:???わざわざそんなことしなくてもこれでいけるっぽ
echo count($test, 1) - count($test);
0576nobodyさん
2009/01/26(月) 10:29:32ID:???404エラーの際に自作エラーページを表示させるには
どうすれば良いかご存知の方いませんでしょうか。
.htaccessで「AddType PHP5-script html」を指示してしまうと
「ErrorDocment 404 error.html」で指定したページが表示されません。
PHP4の時は両立できたんですが…
0577nobodyさん
2009/01/26(月) 10:41:26ID:2xglnPYyAddType php5-script .html
0579nobodyさん
2009/01/26(月) 11:03:14ID:???あー大文字で書いてしまったのはここに書き込む際の記載ミスです。
実際の.htaccessではご指摘のように記載してます。html拡張子でPHP5は動いてます。
でもそうすると404エラーで自作ページが表示できなくて困ってます。
AddTypeでやってもAddHandlerでやっても結果は同じで、
「AddType application/x-httpd-php .html」でPHP4の環境では両立できるんです。
0580nobodyさん
2009/01/26(月) 11:05:47ID:???まっちろ?
0582nobodyさん
2009/01/26(月) 11:19:56ID:???0583nobodyさん
2009/01/26(月) 11:22:02ID:???自作エラーページのサイズが小さ過ぎるとか。。。
0584nobodyさん
2009/01/26(月) 11:27:03ID:???変化ありませんでした。
IEのHTTP 404 未検出の画面が出ます。
>>583
ファイルサイズは1Kbありました。
0586nobodyさん
2009/01/26(月) 11:46:12ID:???単純なHTMLページの1行目に↓をぶち込んだんですが…
<?php
header("HTTP/1.0 404 Not Found");
php?>
.htaccessで拡張子指定しているのは今は.htmlだけなのですが
存在しない.htmファイルを探させると自作エラーページへ行くことがわかりました。
が、.htmlファイルだとIE規定のページになっています。
.htmlでPHPが動くように指定してしまうとErrorDocmentが
狙った動きをしてくれない、という事でしょうか。
ちなみに今、直接自作エラーページを指定したらIE規定のページが出ましたので
404headerはちゃんと返ってきているようです。
0587nobodyさん
2009/01/26(月) 11:54:43ID:???0588nobodyさん
2009/01/26(月) 12:06:45ID:???PHPで何とか似たような事をやる技があったりしないかなーと
思ったりしたんですが、やっぱ無理すよね。スイマセンでした。
Apacheスレの方で聞いてみます。ありがとうございました。
0589nobodyさん
2009/01/26(月) 14:26:16ID:7H1IWdV1> php?>
何これ。
0590589
2009/01/26(月) 14:27:55ID:???0591nobodyさん
2009/01/26(月) 21:42:45ID:???0592nobodyさん
2009/01/26(月) 23:07:21ID:???なんて言うと思ったか
0593nobodyさん
2009/01/27(火) 06:21:30ID:???0594nobodyさん
2009/01/27(火) 10:00:43ID:???タケヤブヤケタ
山本山?>
0595nobodyさん
2009/01/29(木) 04:21:55ID:???こことおなじものを自分のローカルサーバに設置したいのですがどこかに置いてないでしょうか?
0596nobodyさん
2009/01/29(木) 04:32:25ID:???0597nobodyさん
2009/01/29(木) 07:06:35ID:???サイトの中身良く見りゃわかんだろ・・・
evalは、文字列の中身をphpのコードとして解釈して実行するもの。
base64_decodeしてからgzinflateしてるんだから
base64_encodeしてからgzdeflateすれば、期待の物が出来るんじゃね?
これでわからないんだったら、プログラミングやめた方が良いかもな
0598nobodyさん
2009/01/29(木) 10:51:02ID:???0600nobodyさん
2009/01/29(木) 12:10:04ID:???http://pc11.2ch.net/test/read.cgi/php/1221471692/l50
ここの995=997だろ
0601nobodyさん
2009/01/29(木) 13:24:49ID:???フイタww
淡々と技術情報の交換を2chでしたいってそりゃ無理だろw
2chってそういうとこだとおもうべきだな
0602nobodyさん
2009/01/29(木) 17:55:36ID:???サーバーがPHP5になってしまい
今まで使っていたフリーのメールフォームが使えなくなりました。
PHP5のフリーのメールフォームを探したのですが全然わからず
ここにたどり着きました。
フリーのメールフォームのサイトを教えて頂けないでしょうか?
0603nobodyさん
2009/01/29(木) 18:20:03ID:???0604nobodyさん
2009/01/29(木) 18:24:41ID:???//$_SESSION['abc']; は前ページで123を代入
//ここから
$_SESSION = array();
if (isset($_COOKIE[session_name()])) {
setcookie(session_name(), '', time() - 42000, '/');
}
session_destroy();
echo $_SESSION['abc'];//123
と表示したいのですが何か方法はないのでしょうか?クッキーとか使わずに。
0605nobodyさん
2009/01/29(木) 18:29:17ID:???要点をまとめてくれないか
0606nobodyさん
2009/01/29(木) 18:40:48ID:???$_SESSION = array();
if (isset($_COOKIE[session_name()])) {
setcookie(session_name(), '', time() - 42000, '/');
}
session_destroy();
とすると123も消えるけど、それを消さずに
echo $_SESSION['abc'];//123
と後でも表示させたい。
理想としては
$abc = $_SESSION['abc'];
$_SESSION = array();
if (isset($_COOKIE[session_name()])) {
setcookie(session_name(), '', time() - 42000, '/');
}
session_destroy()
$_SESSION['abc'] = $abc;
echo $_SESSION['abc'];
と表示できればいい。
0607nobodyさん
2009/01/29(木) 19:53:27ID:???「どうしても$_SESSION['abc']を使いたい理由」ってのがわからんと、普通のPGは他の手段を考えると思うぞ。
>>606 の中で $abc に入れてるんだったら、そのまま echo $abc; すりゃ良いじゃん、的な。
つーかsession_start()しなくて良いんかな。
長ったらしくない程度に、もう少し質問の背景を含めて、かつ要領良くまとめて質問すれば回答が返って来ると思う。
0608nobodyさん
2009/01/29(木) 20:07:16ID:???ttp://oshiete1.goo.ne.jp/qa3224862.html
0609nobodyさん
2009/01/29(木) 20:25:30ID:???http://pc11.2ch.net/test/read.cgi/php/1231850905/880
理由はどうあれこういうマルチするアホは相手にしないほうがいい
0611nobodyさん
2009/01/29(木) 23:37:26ID:???0612nobodyさん
2009/01/29(木) 23:41:37ID:???「ログイン・ログアウトとは別にセッションデータを引きまわしたい」ってことだろ。
で、普通は>>604みたいなソースにはならないのに、わざわざ教えてgooだか、
phpのマニュアルでセッション破壊用のソースをそれだと勘違いして質問してるだけ。
すでに回答ついてるのに、人の意見を聞けない困ったチャンか、単なる荒し
0613nobodyさん
2009/01/30(金) 10:09:33ID:???ログインログアウトとは別に、スタイルシートをセッションで持ち歩いていて、
ログアウト>>606で書いたようにログアウトとしたときセッションに保存してあるスタイルシート変数も消えてしまいます。
なので、セッション(ログアウト)を消す前に$abc = $_SESSION['abc']; として消した後再び、$_SESSION['abc'] = $abc; などにして再度セッションにいれればなと考えていますが、
うまくいきません。
そこで何かいいほうほうは無いものかと。
0614nobodyさん
2009/01/30(金) 12:27:38ID:???>>613
cookie使えよ。sessionなんかにそんなん入れんな。
sessionに入れるならログアウト=専用スタイルシート破棄として使え。
$_SESSION と session_*()を勉強し直して来い
0615nobodyさん
2009/01/30(金) 23:37:15ID:gxYTwHzLから、別サーバー(自分のブログとか)に
スレの勢いと局、番組名だけを取得して表示させることってできますか?
0616nobodyさん
2009/01/30(金) 23:39:57ID:???0617nobodyさん
2009/01/31(土) 00:20:10ID:Zjr5MV5E<input type="text" name="textbox" value="">
<input type="submit" value="送信">
</form>
<?php
$text = htmlspecialchars( $_POST["textbox"] );
if ( get_magic_quotes_gpc() ) {
$text = stripslashes( $text );
}
print $text;
?>
これ、ゲストの人がコメント書き込むくらいならいいんだけど、自分が投稿しようと思った時に
$_SERVER['PHP_SELF'];が入っているからエディットページ(管理人専用の編集ページ)かなんかでindex.phpに書き込めないと思うんだ。
エディットページでindex.phpに反映させる方法ってない?
0618nobodyさん
2009/01/31(土) 00:28:12ID:???0619nobodyさん
2009/01/31(土) 00:41:31ID:Zjr5MV5E0620nobodyさん
2009/01/31(土) 00:42:37ID:???0621nobodyさん
2009/01/31(土) 00:42:41ID:???>>617 漏れは神様でもエスパーでもないんだから、
おまいのやりたいことを補完して理解なんかできない。
質問は相手に理解できるように書こう。
でも <input type=hidden name=action value=edit>
とか場合わけしる
■ このスレッドは過去ログ倉庫に格納されています