【PHP】下らねぇ質問はID出して書き込みやがれ 105
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2011/03/17(木) 04:00:34.11ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 104
http://hibari.2ch.net/test/read.cgi/php/1297669559/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0039nobodyさん
2011/03/18(金) 14:13:08.59ID:???0040nobodyさん
2011/03/18(金) 14:26:06.33ID:Hc0y2Tc8PHP5.3.6からVC9しか提供されなくなったのでWinで使う方法を教えてください
VC9でビルドされたApache2.2があればいいのですが見つかりませんでした
0041nobodyさん
2011/03/18(金) 14:35:32.86ID:???0042nobodyさん
2011/03/18(金) 14:38:48.09ID:???0043nobodyさん
2011/03/18(金) 14:40:39.96ID:???0044nobodyさん
2011/03/18(金) 14:44:05.92ID:???0045nobodyさん
2011/03/18(金) 14:52:56.33ID:???0046。 ◆oDupeixhZv52
2011/03/18(金) 15:37:50.64ID:???0047nobodyさん
2011/03/18(金) 18:08:29.07ID:fDTTNbpj-123
1123.45
-123.45
などのように
整数、もしくは小数を含む数値で
正も、負もありうるような値が来るときに
それが数値であると判断するときに
正規表現を使う場合、
どの様に記述すれば良いのでしょうか
$hoge= '-12.abc34'
preg_match('/[^-]?\d+(\.\d+)?$/',$hoge);
としてもtrueとなってしまいました。
識者の方、よろしくお願い致します。
0048nobodyさん
2011/03/18(金) 18:10:50.52ID:???0050nobodyさん
2011/03/18(金) 18:19:54.63ID:???var_dump(preg_match('/^-?\d+(\.\d+)?$/',$hoge));
0051nobodyさん
2011/03/18(金) 18:20:34.37ID:???var_dump(preg_match('/^-?\d+?(\.\d+)?$/',$hoge));
0052nobodyさん
2011/03/18(金) 18:21:09.97ID:???0054nobodyさん
2011/03/18(金) 18:38:45.70ID:???005547
2011/03/18(金) 18:54:34.98ID:fDTTNbpjありがとうございます。
参考にさせていただきます。
>>49
それを言われると自信がありません。
いつも必要に応じてググっています。
どこか参考になるサイトがあれば教えて頂けないでしょうか。
>>.50-52
ありがとうございます。
参考にさせていただきます。
0056nobodyさん
2011/03/18(金) 19:31:51.98ID:1kOsEpMZ/ \
【検索した?】 NO → なら、ねぇよ死ね
\
NO → 死ね
0057nobodyさん
2011/03/18(金) 19:41:35.36ID:???0058nobodyさん
2011/03/18(金) 19:43:15.08ID:???0059。 ◆oDupeixhZv52
2011/03/18(金) 19:49:33.94ID:???[^-]?\d+(\.\d+)?$ だと c34がマッチ。
^先頭にあれば良かっただけだね。
0060nobodyさん
2011/03/18(金) 20:01:15.66ID:DcBm6Zyj0062nobodyさん
2011/03/19(土) 11:13:56.47ID:ML1lAEO2【PHPのバージョン】5.2
【連携ソフトウェア】MySQL
【質問内容】
PHPでサーバーのポートが開いてるかどうかを確認したいのですが可能でしょうか?
可能な場合にどういった関数を使えばいいのか教えていただけないでしょうか。
0063nobodyさん
2011/03/19(土) 13:02:39.63ID:gZevY3cxもし、可能ならformと連動されたいと考えています。
<?
mail (メアド,件名,本文);
?>
0064nobodyさん
2011/03/19(土) 13:06:48.95ID:ML1lAEO2>>63
sleep使うかcron
0065nobodyさん
2011/03/19(土) 14:47:34.35ID:???0066nobodyさん
2011/03/19(土) 15:29:12.88ID:???> サーバーのポートが開いてるかどうかを確認したいのですが
「サーバーのポートが開いている」とは、どの様な状態を述べていますか?
0068nobodyさん
2011/03/19(土) 23:35:32.37ID:g30gbwpGvar_dumpで確認したら、フォームに名前欄のみ入力してみたらバリデーションと入力不備用の変数$errorsにエラーが格納されるはずが何も入力されず
どういうことが考えられるかこれだけでわかりますか?
無視して進んじゃっていいんでしょうか
正誤表もないしソースを6章のはダウンロードできない(提供してない)ので困ってます
0069nobodyさん
2011/03/19(土) 23:40:04.65ID:hauq32hx0070nobodyさん
2011/03/19(土) 23:41:01.20ID:???0071nobodyさん
2011/03/20(日) 00:15:04.30ID:fsL3dPzn新しい本だから持ってる人少ないのかな
0072nobodyさん
2011/03/20(日) 00:46:52.59ID:4Ut5eVAZ0073nobodyさん
2011/03/20(日) 00:52:46.66ID:???0074nobodyさん
2011/03/20(日) 00:58:28.30ID:???0075nobodyさん
2011/03/20(日) 02:49:13.50ID:???0076nobodyさん
2011/03/20(日) 11:24:36.54ID:QRqyYTuN>> Fatal error: Call to undefined method DB_Error::query() in C:\www\foo.php on line 11
というエラーが出ます。
----- foo.php -----
07 $db = DB::connect(DSN, false) or die('db connection failed.');
08 if (DB::isError($db)) {
09 echo "DB接続エラー:" . DB::errorMessage($db);
10 }
11 $result = $db->query('SELECT * from product') or die('Query faild.');←ここでエラー
-------------------
9行目のエラーメッセージは
>> DB接続エラー:no database selected
です。
DB::connectのDSNは
>> sqlite://dummy:@localhost//tmp/foo.db?mode=0644
です。
フォルダの構成に問題があるのでしょうか?
c:\php5←php本体を置いている場所
c:\www←foo.phpを置いている場所
c:\tmp\←foo.dbを置いている場所
0077nobodyさん
2011/03/20(日) 11:39:12.10ID:???今はPearならMDB2
一般的にはPDOを使うもんなんだぜ?
悪いことは言わない
その本を窓から捨ててPDOでの接続方法をお勉強しましょう
0078nobodyさん
2011/03/20(日) 11:41:57.16ID:QRqyYTuN基礎もまだできてないので(^^;
php5のマンモス本のエキスパートです。
一応終わらせてから先に行きたいので・・・。
0079nobodyさん
2011/03/20(日) 11:51:14.56ID:QRqyYTuNsqlite3でやってたのが原因だったようです。
sqlite2に変えたらすぐできました!
参考にしたURL: http://www.phpbook.jp/pear/pear_db/index6.html
いろんなバグがあるみたいですね・・・。
0080nobodyさん
2011/03/20(日) 12:21:59.77ID:q0k2qzSgこんな質問駄目でしょうか
初心しゃです。
0081nobodyさん
2011/03/20(日) 12:54:00.20ID:???PHPでデータベースを操作するAPI
0082nobodyさん
2011/03/20(日) 16:07:40.38ID:FsqggCdGrequireするプログラムを教えて頂けませんか、先輩方お願いします。
0083nobodyさん
2011/03/20(日) 16:10:24.47ID:idrOIQeCちょっとくらい自分で考えろ
丸投げすんな
0084nobodyさん
2011/03/20(日) 16:10:58.44ID:FsqggCdGrequireするプログラムを教えて頂けませんか?
mt_randとswitch〜caseを駆使してやっていましたが
数が増えすぎて、流石にシンドくなってきました。
先輩方お願いします。
0085nobodyさん
2011/03/20(日) 16:12:33.93ID:FsqggCdGすみません、自分で>>82を書いた後、罪悪感があったので
>>84で書きなおしました。
仰るとおりです、すみません。
0086nobodyさん
2011/03/20(日) 16:14:23.32ID:idrOIQeC特定のディレクトリの中全部見ればいいんじゃね?
http://www.google.co.jp/search?hl=ja&source=hp&biw=1105&bih=438&q=php+%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA+%E4%B8%80%E8%A6%A7&aq=6r&aqi=g-r10&aql=&oq=PHP+%E3%81%A7%E3%81%83%E3%82%8C
0089nobodyさん
2011/03/20(日) 17:48:23.83ID:???しらんかったわ
0090nobodyさん
2011/03/20(日) 17:52:38.10ID:???0092nobodyさん
2011/03/20(日) 17:54:33.57ID:???009384
2011/03/20(日) 18:16:07.02ID:FsqggCdGアドバイスありがとうございます。
フォルダ内のファイルを一覧で表示する方法が理解できました。
<?
foreach (glob("*.dat") as $filename) {
echo "$filename" . "<br>";}
?>
しかしながら、そのファイル一覧からランダムで1つだけ
表示される方法に苦心しております。
0094nobodyさん
2011/03/20(日) 18:34:01.14ID:idrOIQeCだからその苦心の結果を書けつってんだよカス
完全に丸投げかよ
自分で試したことしてみろ
0095nobodyさん
2011/03/20(日) 18:37:06.37ID:???0096nobodyさん
2011/03/20(日) 18:39:51.25ID:???たぶん広告がいくつかあって
それをechoしてるだけのファイルをランダムでrequireみたいな感じなんだろうけど
0097nobodyさん
2011/03/20(日) 18:40:50.05ID:???そこまでできてて・・・
手元に参考書の一冊でもないのか?
ないならないで、ググレば分かるレベルだよ('A`)
0098nobodyさん
2011/03/20(日) 19:29:34.55ID:???0099nobodyさん
2011/03/20(日) 19:43:39.89ID:???$list = glob( "*.dat" );
if ( is_array( $list ) ) {
shuffle( $list );
foreach( $list as filename ) {
var_dump( $filename );
}
}
?>
0100nobodyさん
2011/03/20(日) 19:44:41.83ID:???× foreach( $list as $filename ) {
○ foreach( $list as filename ) {
0101nobodyさん
2011/03/20(日) 19:45:05.17ID:???0104nobodyさん
2011/03/20(日) 19:48:24.95ID:???$list = glob( "*.dat" );
if ( is_array( $list ) ) {
shuffle( $list );
foreach( $list as $filename ) {
var_dump( $filename );
break; /* これで1個だけ */
}
}
?>
0106nobodyさん
2011/03/20(日) 19:56:31.62ID:???どいつもこいつもレベルひきいな
0107nobodyさん
2011/03/20(日) 19:57:49.92ID:???010984
2011/03/20(日) 21:08:21.74ID:FsqggCdGあとは、一覧を取得するフィルダのパスを指定出来るように悩みたいと思います
<?php
//配列の初期化
$var = array();
//ディレクトリ・ハンドルをオープン
$res_dir = opendir( '.' );
//ディレクトリ内のファイル名を1つずつを取得
while( $file_name = readdir( $res_dir ) ){
//取得したファイル名を配列に追加
array_push($var, $file_name);
}
//ディレクトリ・ハンドルをクローズ
closedir( $res_dir );
//配列からランダムでファイル名を1つ取り出す
$rand_keys = array_rand($var, 1);
//取り出したファイルを表示
require "$var[$rand_keys]";
?>
0110nobodyさん
2011/03/20(日) 21:25:14.51ID:???0111nobodyさん
2011/03/20(日) 21:48:27.81ID:???011284
2011/03/20(日) 21:54:41.77ID:FsqggCdG皆さんありがとうございました。
<?php
//配列の初期化
$var = array();
//ディレクトリ・ハンドルをオープン
$res_dir = opendir( フェルダ名 );
//ディレクトリ内のファイル名を1つずつを取得
while( $file_name = readdir( $res_dir ) ){
//取得したファイル名を配列に追加
array_push($var, $file_name);
}
//ディレクトリ・ハンドルをクローズ
closedir( $res_dir );
//配列からランダムでファイル名を1つ取り出す
$rand_keys = array_rand($var, 1);
//取り出したファイルを表示
require "フェルダ名/"."$var[$rand_keys]";
?>
011384
2011/03/20(日) 21:56:21.71ID:FsqggCdG0114nobodyさん
2011/03/21(月) 01:45:59.13ID:???echo $dir[mt_rand(0, count($dir) - 1)];
0115nobodyさん
2011/03/21(月) 01:58:08.06ID:???0116nobodyさん
2011/03/21(月) 03:09:29.53ID:???0117nobodyさん
2011/03/21(月) 14:23:58.40ID:???0118nobodyさん
2011/03/21(月) 15:21:41.88ID:???0119nobodyさん
2011/03/21(月) 21:34:16.27ID:cxZfxrlHキャッシュさせない設定(掲示板など)をするとき、
<meta http-equiv="Pragma" content="no-cache">
みたいなやつでいけますか?
header("Cache-Control: no-cache, must-revalidate");
を書くのとどう違うのかよくわかりません
教えてください
0120nobodyさん
2011/03/22(火) 00:21:07.83ID:???<meta http-equiv="Cache-Control" content="no-cache, must-revalidate">
と同等
また下のは
header("Pragma: no-cache");
と同等
よって
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache, must-revalidate">
あるいは
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
ようは両者は別物
この辺はhtmlヘッダの話なのでPHPは関係ない
ちなみに質問の最初の2行を見ると
掲示板をGETパラメータで操作するのではなく
静的なhtmlを吐くっていう意味と捉えられるので注意
0121120
2011/03/22(火) 00:36:17.00ID:???「上のは」って言ってるのは下のほうのことで
「また下のは」って言ってるのは上のほうのことね
逆だった
0122nobodyさん
2011/03/22(火) 06:28:24.63ID:8oP+/2xeaaaaa.php
<?php
require_once("*******/Smarty.class.php");
$smarty = new Smarty();
$smarty -> display("tmp_b/index.tpl");
$smarty -> assign("page","aaaaa");
?>
index.tpl
{include file="tmp_b/header.tpl"}
{include file="$page.tpl"}
{include file="tmp_b/footer.tpl"}
という風に書いてあります。
階層やパーミッションとは関係ないと思われます。
$pageの部分に各ページのHTMLが入るんですが、
そのHTMLの量が少ないと、ちゃんと表示されるんですが、
HTMLの量が多いと、そのpage部分全てが表示されなくなります。
何が原因なんでしょうか?教えてください。
0123nobodyさん
2011/03/22(火) 06:35:31.29ID:???0124nobodyさん
2011/03/22(火) 06:50:53.47ID:???aaaaa.php
<?php
require_once("*******/Smarty.class.php");
$smarty = new Smarty();
$smarty -> display("tmp_b/index.tpl");
$smarty -> assign("page","aaaaa");
?>
index.tpl
{include file="tmp_b/header.tpl"}
{include file="$page.tpl"}
{include file="tmp_b/footer.tpl"}
という風に書いてあります。
階層やパーミッションとは関係ないと思われます。
$pageの部分に各ページのHTMLが入るんですが、
そのHTMLの量が少ないと、ちゃんと表示されるんですが、
HTMLの量が多いと、そのpage部分全てが表示されなくなります。
何が原因なんでしょうか?教えてください。
0125nobodyさん
2011/03/22(火) 22:12:28.54ID:mmCJS+/mバイナリからいちいち確認するしかないですかね?
0126nobodyさん
2011/03/22(火) 22:32:17.46ID:???バイナリからいちいち確認するしかないですかね?
0127nobodyさん
2011/03/23(水) 02:33:11.47ID:yBezdspD写真をアップするとき、ファイルの形で保存して、その保存パス+ファイル名までの情報を
DBに登録する方法があると思います。
例えば、
カラム構造> id | comment | fileType | path
データ例 >123 | りんごです | jpg | /upfile/user1/gallery/xyz
このとき、ファイル名(xyz)はどういう風に決めたら良いでしょうか?
乱数でも何でも良いのはわかるんですが、自分としてはカラムのID123をファイル名の
一部にでも使って決めたいんです
その場合、クエリを2回に分けて、lastinsertidを使って入れるしかないでしょうか?
変にこだわりなんでしょうか。
画像ファイルのパスをDBに入れていく方法をとるとき、みなさんは乱数とかで名前決めてますか?
ファイル名の定義は賢いやり方があるんでしょうか?
0128nobodyさん
2011/03/23(水) 04:11:28.72ID:???0129nobodyさん
2011/03/23(水) 06:54:32.23ID:???クエリを二回に分ける意味が分からんが、普通にID名をタイムスタンプの頭につけた文字列にrenameしてから保存すればいいのでは。
0130nobodyさん
2011/03/23(水) 08:49:19.12ID:???<meta http-equiv="Pragma" content="no-cache">
header("Pragma: no-cache");
これは同等とも取れるし、まるで異なるともいえるよ。
>>119の最初の2行を見て静的なHTMLを出力するように見えるかっていうと
そうでもないし、何を注意すればよいのか。
0131nobodyさん
2011/03/23(水) 09:28:32.96ID:???idがオートインクリメントなら、直前に登録したidを出力する関数があるはず。
mysql_insert_idだったかな。それ使えばクエリ一度のみ、一発でいける。
0132nobodyさん
2011/03/23(水) 09:45:07.56ID:???SHOW TABLE STATUS WHERE Name = 'table'
カラム Auto_increment が次の値
0134。 ◆oDupeixhZv52
2011/03/23(水) 10:35:47.46ID:???ブラウザによる。キャッシュするサーバーなんかはタグなんか見ないんじゃないかと。
いろんなブラウザでテストしてよしとするか、ダミーのパラメータつけるとか。
>>127
自分の好きなようにやればいいが、ファイル名にIDいれてそのファイル名をDBに保存するのは賢くない。
0135nobodyさん
2011/03/23(水) 13:32:45.18ID:???0136nobodyさん
2011/03/23(水) 15:24:23.20ID:???簡単な検索エンジンを作ろうと思い、本のサンプルデータを改造しようと思ってデータを展開したところ、データベースへの接続がうまくいかなくなってしまったので質問させてください。
出ているエラーは次のとおりです。
Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'root'@'localhost' (using password: YES) in C:\xampp\htdocs\PHP_Samples\samples\chapter15\15-5\link.php on line 207
タワツウ・ィ・鬘シ
このサンプルデータは外部ファイル(config.php)からデータベース名、ユーザー名、パスワードを取得しているらしく複雑です。
まず、cnfig.phpにて、
define("DBSV", "localhost");
define("DBNAME", "link");
define("DBUSER", "root"); // ユーザ名(要変更)※変更しました。
define("DBPASS", "secret"); // パスワード(要変更)※変更しました
このように設定します。
次にlink.phpにて
<?php require "config.php"; ?> でconfig.phpに接続したのち、
// =================================================
// ----- db接続
// =================================================
function db_conn() {
$conn = mysql_connect(DBSV, DBNAME, DBPASS) or die(mysql_error());
mysql_select_db(DBNAME, $conn);
return $conn;
}
このようにしてconfig.phpからデータベース名、ユーザー名、パスワードを取得しているようです。
そしてMySQLの方の設定でもlocalhost, root, secretの設定は行なっております。
ここでlink.phpにアクセスすると、上記のエラーが生じる状況です。まだ設定したりない部分があるのでしょうか?
ちなみに「PHPによるWebアプリケーションスーパーサンプル第2版」の15章のリンク集の項を使っています。
長くなってしまいましたが、どうかよろしくお願いします。
0137nobodyさん
2011/03/23(水) 15:27:46.83ID:???$conn = mysql_connect(DBSV, DBNAME, DBPASS) or die(mysql_error());
この行を指しています。
連レスになってしまいすみません。
0138nobodyさん
2011/03/23(水) 15:36:23.39ID:???■ このスレッドは過去ログ倉庫に格納されています