くだすれ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/
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>
とか場合わけしる
0622nobodyさん
2009/01/31(土) 00:43:50ID:???0623nobodyさん
2009/01/31(土) 01:07:34ID:Zjr5MV5Eあくまで表示したいのはindex.phpなので、そこんとこどうなんかなーと思いまして。
>>620
と、いうことは$_SERVER['PHP_SELF']を$_SERVER['index.php']にしたらいいってことですか?
0624nobodyさん
2009/01/31(土) 01:09:00ID:???0625615
2009/01/31(土) 01:27:06ID:myPf0iH/<?php
$temp = "http://epg.2ch.net/tv2chwiki/subject.txt";
$html_f=file_get_contents($temp);
$replace = "(2)";
$scriptphp = "<br />";
$word = str_replace($replace, $scriptphp, $html_f);
$hogeru = ".dat<>";
$gogeta = "<br />";
$yabai = str_replace($hogeru, $gogeta, $word);
print $yabai;
print($word1_a);
?>
から、偶数行だけ表示するにはどうしたらいいんでしょうか?
0626nobodyさん
2009/01/31(土) 01:27:12ID:Zjr5MV5E$_SERVER['PHP_SELF'] これ書かなきゃいいんですね。
じゃあそのかわりformのactionにはなんて書けばいいんですかね?
0627nobodyさん
2009/01/31(土) 01:28:37ID:???0628nobodyさん
2009/01/31(土) 01:30:22ID:Zjr5MV5E0629621
2009/01/31(土) 01:35:09ID:???$rtn = file( 'http://epg.2ch.net/tv2chwiki/subject.txt ' );
for ( $n = 0; $n < count( $rtn ); $n = $n + 2 ) echo $rtn[$n];
0631nobodyさん
2009/01/31(土) 01:46:56ID:Zjr5MV5E0632nobodyさん
2009/01/31(土) 01:55:22ID:???<? // index.php
if ( $_POST['textbox' != '' ) { なんか処理 }
?>
<html><body>
<form action="index.php" method="post>
<input type="text" name="textbox" value=""><input type="submit"
</form>
</body></html>
と
<? // kanri_index.php
if ( $_POST['textbox' != '' ) { なんか処理 }
?>
<html><body>
<form action="kanri_index.php" method="post>
<input type="text" name="textbox" value=""><input type="submit"
</form>
</body></html>
を作れ
0633nobodyさん
2009/01/31(土) 01:59:14ID:???0634nobodyさん
2009/01/31(土) 02:06:10ID:???0635nobodyさん
2009/01/31(土) 13:18:26ID:Zjr5MV5Eこれでなんとかなりそうです。ありがとうございました!
0636nobodyさん
2009/01/31(土) 19:25:28ID:???下記のコードを実行すると
Call to a member function prepare() on a non-object
とエラーが返ってきます。
$sql = "insert into table (column2,column1) values(?,?)";
$sth = $this->db->prepare($sql);
$result = $this->db->execute($sth, array($column2_value,$column1_value));
プレースホルダを使わずqueryを発行すると問題なくdbが更新されるのですが、
どこかおかしいのでしょうか
0637nobodyさん
2009/01/31(土) 19:26:42ID:???php5,postgresです
0638nobodyさん
2009/01/31(土) 19:28:26ID:???どのクラスのprepareだよこの馬鹿馬鹿まんこ!
$this->dbが接続失敗か何かで初期化されていないように思われる。
0639nobodyさん
2009/01/31(土) 20:01:51ID:???そのあたりを探ってみます。
0640nobodyさん
2009/01/31(土) 20:02:31ID:???0641nobodyさん
2009/01/31(土) 20:16:52ID:???さっきのエラーは昔書いたクラスコピペして直したら出なくなったのですが、
dbが更新されなくて悩んでいたら文字コードの違いが原因でした。
mb_convert_encodingで挿入する値をdbの文字コードに直して解決しました。
お世話様でした。
0642nobodyさん
2009/01/31(土) 20:23:42ID:QDNvJIlq登録メールアドレスの重複チェックをしたいのですが、うまく動きません。
if(!$db=sqlite_open("database/database.sqlite",0666,$err)){
die("データベース接続エラー".$err."<br>");
}
////////////////////////////データベース二重登録防止////////////////
$check_sql="SELECT * FROM add_table WHERE add = '$mailadd'";
if($abc = sqlite_query($db,$check_sql)){
header("Location: mail.php?miss=miss&miss_naiyou=sumi");
//登録済みの場合は飛ばす
}
sqlite_close($db); //データベースクローズ
0643nobodyさん
2009/01/31(土) 20:26:51ID:???http://jp2.php.net/sqlite_query
0644nobodyさん
2009/01/31(土) 20:31:10ID:lgngjuqH$temp = "http://epg.2ch.net/tv2chwiki/subject.txt";
$html_f=file_get_contents($temp);
$br = "<br />";
$replace = "(2)";
$word = str_replace($replace, $br, $html_f);
$replace = ".dat<>";
$word = str_replace($replace, $br, $word);
$replace = "res/min";
$word = str_replace($replace, $br, $word);
$replace = "] ";
$word = str_replace($replace, $br, $word);
$a = explode( "<br />", $word );
$b[0]= "g";
print $a[2]; print $br; //…(1)
print $b[0]; print $br;
$strs[0] = "srename :"+ $a[2] +",";//…(2)
$strs[1] = $b[0];
print $strs[0]; print $br;//…(3)
print $strs[1];
?>
出力
[NHK総合]探検ロマン世界遺産
g
0
g
(3)の$strs[0] が0になってしまうのはなんでですか?
おねがいします。
0645nobodyさん
2009/01/31(土) 20:33:43ID:QDNvJIlqマニュアル見てもさっぱりわかりません
0649nobodyさん
2009/01/31(土) 20:59:19ID:QDNvJIlq解決しました。
if(sqlite_fetch_array(sqlite_query($db,$check_sql))){
header("Location: mailmagazine.php?miss=miss&miss_naiyou=sumi");
}
>>643
ありがとうございます
0650nobodyさん
2009/02/01(日) 21:04:08ID:???elseif (preg_match("/^\d{8}$/", $_GET["id"])){
$id = $_GET["id"];
}
GETで8桁の数字のみ受け取るように↑のようにしましたが
if文でマッチしてても変数に代入する際はpreg_matchなりで
GET変数内を数字のみとなるように変換した方がいいものなんでしょうか
0651nobodyさん
2009/02/01(日) 21:10:26ID:???0652nobodyさん
2009/02/01(日) 21:11:12ID:???俺ならctype_digit($str) && strlen($str) === 8
まあそれはそれとして、別にいいんじゃね。その正規表現にマッチしてるなら間違いなく数字だけだし。
0653nobodyさん
2009/02/01(日) 21:16:32ID:???0654nobodyさん
2009/02/01(日) 22:42:37ID:???>>652
matchに漏れがなければ問題ないように思たんですが
あげてもらった関数の方が確実 でしょうか
>>653
正規表現はまだよくはわかってないのですがググったところ
\r\nのことでしょうか。
http://scripting.cocolog-nifty.com/blog/2008/12/post-c9b4.html
ここを参考に一応"/^\d{8}\r?$/"としてみましたが
>hoge$に掛かりません
の理屈が今一わかりません。
0655650
2009/02/01(日) 22:56:05ID:???もとの"/^\d{8}$/"で問題なしな気がしますがどうなんでしょう
0656652
2009/02/01(日) 23:22:37ID:???パターンがよほど複雑な時以外は正規表現は避けたほうがいい。
>653-654
改行とか忘れてたわ。
if(preg_match("/^\d{8}$/", "12345678\n")){
echo 'match';
}
0657nobodyさん
2009/02/03(火) 00:43:02ID:???もうPHP諦めることにした。さっぱり分からん。
このスレのどこが超初心者用なんだ。
0658nobodyさん
2009/02/03(火) 01:51:58ID:???0659nobodyさん
2009/02/03(火) 02:00:14ID:???プログラムなんて嫌いだ。
0660nobodyさん
2009/02/03(火) 09:47:26ID:???0661nobodyさん
2009/02/03(火) 10:34:27ID:???0662nobodyさん
2009/02/03(火) 14:10:58ID:???このスレだけ読み続けても、超初心者が分かるようにはならないと思う。
このスレは、超初心者も質問していいというだけで、来る質問が全部、
超初心者向けというわけではないから。
もう見てないかもしれないけれど、入門書を図書館とかで借りてきたほうが
いいと思うよ。
0663nobodyさん
2009/02/03(火) 14:18:03ID:???半年もROMってわからないなんて、ネタに決まってるだろ
もしネタじゃないなら、10年はROMるべき。
そうして人生が終わるさ
0664nobodyさん
2009/02/03(火) 20:28:48ID:???0665nobodyさん
2009/02/04(水) 06:33:54ID:???全く原因が分からないのでお聞きしたいのですが…
$im=createimagefromjpeg(image.jpg);
imagejpeg($im);
destroy
上記の様な単純な記述で画像を開きたいのですが、
ローカルならできるのになぜかインターネット経由だと
できないのです…
実行すると半角で「リ」と表示されるだけで
print hoge;などを付け足しても何もかわりません
phpinfoでGDが使えることは確認したのですが、
他に原因が思いつきません
初心者丸出しすいませんが教えていただければ尻丸出しにしますのでどうかお願いします
0666nobodyさん
2009/02/04(水) 06:34:18ID:???全く原因が分からないのでお聞きしたいのですが…
$im=createimagefromjpeg(image.jpg);
imagejpeg($im);
destroy
上記の様な単純な記述で画像を開きたいのですが、
ローカルならできるのになぜかインターネット経由だと
できないのです…
実行すると半角で「リ」と表示されるだけで
print hoge;などを付け足しても何もかわりません
phpinfoでGDが使えることは確認したのですが、
他に原因が思いつきません
初心者丸出しすいませんが教えていただければ尻丸出しにしますのでどうかお願いします
■ このスレッドは過去ログ倉庫に格納されています