【PHP】下らねぇ質問はここに書き込みやがれ 68
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/05/03(土) 22:52:16ID:???PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは970が立ててください立たなかった場合は980よろ
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 67
http://pc11.2ch.net/test/read.cgi/php/1207863515/
◆質問する時の注意
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を必ず明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
・偽者防止に必ずIDを表示(メール欄に何も記述しない)、若しくはトリップをつける事。
◆質問後の注意
・偽者防止に必ずIDを表示(メール欄に何も記述しない)、若しくは質問時のトリップをつける事。
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0389nobodyさん
2008/05/10(土) 21:04:08ID:???0391nobodyさん
2008/05/10(土) 21:17:42ID:ZfUSU8TDログインチェック用に別ファイルの.phpをすべてのページに読み込ませたいと
思っています。
個別に include()させるほかにどんな方法があるでしょうか?
アドバイスお願いします
もしかしたらphpの話題からずれてるかもしれませんが、もちろんphpでも
うまいやり方があれば教えてください。よろしくお願いします
0392nobodyさん
2008/05/10(土) 21:20:53ID:???0393nobodyさん
2008/05/10(土) 21:34:39ID:batXv2Osxdebugをインストールし、有効にすると、
zend debuggerがphpinfoに表示されなくなりました。
zend debuggerとxdebugは同時に使うことが出来ないのでしょうか?
同時に使う方法があれば教えてください
0394nobodyさん
2008/05/10(土) 21:42:03ID:???0395nobodyさん
2008/05/10(土) 22:22:47ID:???エラー時のスタックトレースはxdebug
って感じに両方の機能を使いたいんですが
やっぱり無理ですかね〜
0396nobodyさん
2008/05/10(土) 22:37:07ID:???0398nobodyさん
2008/05/10(土) 22:47:07ID:???0399nobodyさん
2008/05/10(土) 22:57:37ID:???0401nobodyさん
2008/05/10(土) 23:14:52ID:???0402nobodyさん
2008/05/10(土) 23:22:14ID:???zend studio+zend debuggerを使ってデバッグをしていましたが、
xdebugをインストールし、有効にすると、
zend debuggerがphpinfoに表示されなくなりました。
zend debuggerとxdebugは同時に使うことが出来ないのでしょうか?
同時に使う方法があれば教えてください
395 名前:nobodyさん[sage] 投稿日:2008/05/10(土) 22:22:47 ID:???
デバッグはzend debugger
エラー時のスタックトレースはxdebug
って感じに両方の機能を使いたいんですが
やっぱり無理ですかね〜
397 名前:nobodyさん[sage] 投稿日:2008/05/10(土) 22:44:15 ID:???
>>396
お前に聞いてねーよデブ
400 名前:nobodyさん[sage] 投稿日:2008/05/10(土) 23:01:55 ID:???
>>399
ゴリラは動物園に帰れよ
0403nobodyさん
2008/05/10(土) 23:48:22ID:0rIgLgLyフォームの(POST)データをデータベースに入れる際
何か処理(htmlspecialcharsなど)をしたほうがいいのでしょうか?
それとも何も処理無しでも問題ないのでしょうか?
もしよろしければデータベースに入れるまでの処理をご教授ください。
よろしくお願いします。
0404nobodyさん
2008/05/10(土) 23:49:50ID:???0405nobodyさん
2008/05/10(土) 23:50:55ID:DfRnQgur0406nobodyさん
2008/05/10(土) 23:53:09ID:???htmlspecialcharsはDBに入れるときじゃなく表示するときに処理する
DBには生データを入れて問題はないんじゃね
もちろんSQLインジェクション対策だけはしてな
0407380
2008/05/11(日) 00:19:51ID:???携帯3キャリア共通でうまくセッションを持ちまわる方法をいろいろ試し中です。
SIDを用いることはわかったのですが
クッキーが残ったりでうまくいってないように感じます。
よろしくおねがいします。
0409nobodyさん
2008/05/11(日) 00:39:36ID:lx6MvMXPありがとうございます、それってどういうことですか?
済みませんが良くわからないのでもう少し解説お願いします
0411nobodyさん
2008/05/11(日) 01:25:39ID:???ログインチェックファイルがあるじゃん?
あとそれぞれの個別コンテンツがあるじゃん?
前者の中で後者をincludeするってこと。
0412377
2008/05/11(日) 03:45:04ID:KEs91aIs>>385
ありがとう〜!
両方試してみました。
>>385のリンク先のソースを利用することにしました。
どもです!
0413nobodyさん
2008/05/11(日) 06:14:53ID:4J9HPCgP$_POST["hoge"]
の違いってなんなんでしょうか?
サンプルで
if (isset($_POST["submit_resdel"])){
$res_no = key($_POST[submit_resdel]);
って記述があったんですが、これって2個目の$_POST[submit_resdel]は
$_POST["submit_resdel"]でもいいんじゃないかという気がするのですが・・・。
0414nobodyさん
2008/05/11(日) 07:04:04ID:???0415nobodyさん
2008/05/11(日) 07:09:19ID:LZ9HoYsn__construct()が問題なく呼び出されているのですが、
PHP4系でも対応してるんですか?
0416nobodyさん
2008/05/11(日) 07:09:30ID:???0418413
2008/05/11(日) 07:18:18ID:4J9HPCgPこんな時間にありがとうございます。
>>414さん
やっぱりそうなんでしょうか・・・。
ここの例では、submitするとき、以下のように組んで配列っぽく
セットしてるんですが、
while($row = $mysql->fetch()){
$no = $row["no"];
$name = $row["name"]
echo <<<EOT
$no:
<input type="text" name="name[$no]" value="$name" size="10">
<input type="submit" name="submit_resdel[$no]" value="削除">
<br>
EOT;
}
このときだけは特別、とかいうことは・・・ないですよね。。
>>417さん
動作はするんですね!
でも、どっちも[submit_resdel]にしちゃうとそれはそれで動作しませんよね?
0420413
2008/05/11(日) 07:43:03ID:4J9HPCgPありがとうございます。やはり書き間違いですか・・・
今回のこの件をググってる最中に↓のようなページをみつけたんですが、
ttp://oshiete.coneco.net/qa4004454.html
このページでの質問者も同じように記述してるんですよね・・・わざわざダブルクォーテーション外して・・・。
key関数を使うときだけ・・・?とか色々考えたんですが、
とりあえず書き間違いと思って進めていこうと思います。
皆様ありがとうございました。
0421nobodyさん
2008/05/11(日) 08:08:48ID:???runkit_method_redefine
これじゃできないん?
もうちょっと具体的にやりたい事書かないとわからん
0422nobodyさん
2008/05/11(日) 08:10:14ID:???カメレスであれだけど、一応。
書き間違えとは思うが、文法的には未定義の定数の動作。
PHPは好きだけど、さすがにこの仕様はどうかと思う。
http://www.php.net/manual/ja/language.constants.php
>未定義の定数を使用した場合、ちょうどstringとして コールしたかのように(CONSTANT vs "CONSTANT")、
> PHPはその定数自体の名前を使用したと仮定します。
0423413
2008/05/11(日) 08:19:46ID:4J9HPCgPおおっ!ありがとうございます!
なるほど、未定義の定数として使用され、さらにそのものの名前を使用したと解釈されて
動作しちゃうわけですね・・・。。
私自身、現在習作を作る過程でPHPに慣れようとしているのですが、
確かにこの仕様には違和感がありますね。
書き間違えだったとしても、きちんと動作したものとして公開されていた理由がわかって、
やっとスッキリしました。
やっと寝られます。笑 ありがとうございました!
0424nobodyさん
2008/05/11(日) 08:24:05ID:???どっちかってーと
http://www.php.net/manual/ja/language.types.array.php#language.types.array.foo-bar
こっちだな
>>415
__constructを使ったコンストラクタはphp5からで
php4の場合はただのメソッドになる
class Hoge {
function __construct() {
echo 'A';
}
function Hoge() {
echo 'B';
}
}
これを実行したらphp4の場合はBが出てphp5の場合はAが出る
で、php5で__constructが無い場合はHogeが呼ばれる
0425415
2008/05/11(日) 08:33:54ID:LZ9HoYsn確かにそうでした!
>PHP4.4.4(サーバはxrea)で、
>__construct()が問題なく呼び出されているのですが、
というのは、自分のテストコードに間違いがあったための、勘違いでした。
0426nobodyさん
2008/05/11(日) 12:51:45ID:t1T6pRlq「1が出る確率は50%、2が出る確率は30%、3が出る確率は20%」
と言う風に、確率として表示する場合、どういう計算式にすればいいのでしょうか?
0427nobodyさん
2008/05/11(日) 12:55:27ID:???567・・・2
89・・・3
0428nobodyさん
2008/05/11(日) 12:55:49ID:???0429nobodyさん
2008/05/11(日) 13:28:56ID:???/*
現在理論しか通じないパソコンとプログラミングで対話中です。
人様との円滑な対話モードへの切り替えが少々上手くいかない場合や遅い場合が多々ありますので、理屈や理論以外をお求めの方はご遠慮頂くか少々お待ち頂くか生暖かい目で見守ってくださるようお願い致します。
*/
0430nobodyさん
2008/05/11(日) 13:41:54ID:???$a = array(1,1,1,1,1,2,2,2,3,3);
echo $a[array_rand($a)];
0431nobodyさん
2008/05/11(日) 13:55:36ID:???PHP5 PEAR image_graph7.1
でjpg画像を作りたいのですができません(PNGはできる)
$graph =& Image_Graph::factory("graph", array(array("width" => 400, "height" => 400, "canvas" => "PNG")));
ここの最後の方の部分をJPGにする以外に変更が必要なのでしょうか?
下記の方法だと画像JPG画像はしっかり保存されてはいます。
$out = $Graph->done(array(
'tohtml' => TRUE,
'border' => 1,
'filename' => 'tes.jpg',
'filepath' => './',
'urlpath' => './'
)
);
0432nobodyさん
2008/05/11(日) 14:05:58ID:???0434nobodyさん
2008/05/11(日) 14:57:33ID:???Apache/2.0.52
PHP 4.3.9 (cgi) (built: Sep 20 2007 19:31:11)
mysql Ver 14.7 Distrib 4.1.20
phpmyadmin-2.11.6-1.el4.rf
という環境です。この環境で、
クライアントマシンから phpmyadmin にアクセスすると、
mcrypt 拡張をロードできません。PHP の設定を確認してください
と警告を受けます。mcrypt 関係は
libmcrypt-devel-2.5.7-2.el4.kb
libmcrypt-debuginfo-2.5.7-1.2.el4.rf
libmcrypt-2.5.7-2.el4.kb
mcrypt-2.6.4-2.el4.kb
がインストールしてあるのですが。
この問題はどのようにフィックスすべきなのでしょうか?
それとも何も問題がないのでしょうか?
0435nobodyさん
2008/05/11(日) 15:12:25ID:???0436nobodyさん
2008/05/11(日) 15:15:43ID:???のRHEL4用php-mcryptを入れても大丈夫かもしれんが試してない
0438nobodyさん
2008/05/11(日) 18:57:26ID:???0439nobodyさん
2008/05/11(日) 20:39:47ID:???0440nobodyさん
2008/05/11(日) 21:00:47ID:???そんな時代にあって、俺はその天才的な人間の1人なのかもしれない。
俺のせいで、仕事がなくなって首になった奴が相当いる。
もちろん、その中には潰れた会社もある。
でも、それが自然淘汰、適者生存であり自然の摂理なのだから・・
0441426
2008/05/11(日) 23:21:03ID:t1T6pRlqありがとうございます。上手くできました。
ただ、細かい%で区切りたい場合はどうなるのでしょうか?
array内の数が増えすぎると思うのですが・・・。
if文と倍数を使う方法も考えたのですが、数学が苦手でわかりません。。
何か良い関数はないでしょうか?
0444nobodyさん
2008/05/11(日) 23:37:06ID:???0445426
2008/05/11(日) 23:42:46ID:???教えて貰ったのを参考に、以下のソースを作りました。
たぶん、行けるのではないかと思っていますが、おかしい場合は指摘して下さい。
$item = array("aaa"=>"50","bbb"=>"30","ccc"=>"20");
$num_max = array_sum($item);
foreach($item as $keys => $values){
$number = $values/$num_max*10;
for($i=0;$i<$number;$i++){
$array[] = $keys;
}
}
echo $array[array_rand($array)];
0446nobodyさん
2008/05/11(日) 23:48:23ID:???0447nobodyさん
2008/05/12(月) 00:05:59ID:???0448nobodyさん
2008/05/12(月) 00:17:13ID:???0449nobodyさん
2008/05/12(月) 00:59:12ID:???http://jp2.php.net/manual/ja/simplexml.examples.php
$obj = new SimpleXMLElement($xml);
PEARのXML_Serializerを使わないで、PHP5の関数を使って
オブジェクト$objを配列に変換するにはどうしたらいいですか?
0450449
2008/05/12(月) 01:01:55ID:???0451449
2008/05/12(月) 01:45:29ID:???秋元さんのブログの解説?
http://akimoto.jp/blog/2008/01/05/php%E3%81%A7%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%82%92%E9%85%8D%E5%88%97%E3%81%AB%E5%A4%89%E6%8F%9B%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AFget_object_vars/
よく分からなかったので、とりあえずPEAR::XML_Serializerを使うことにしました!^^
…便利すぎて勉強にならん><
0452449
2008/05/12(月) 01:49:26ID:???$unserializer = new XML_Unserializer();
$unserializer->unserialize($xml);
$array = $unserializer->getUnserializedData();
print_r($array);
これでOK
$obj = new SimpleXMLElement($xml);
でも値を取り出せるのでOKなんだけど、データ型はオブジェクトのまま
配列と同じ操作で扱うのは何か変だなーと思った
おやすみなさい
0453nobodyさん
2008/05/12(月) 01:53:48ID:???0454nobodyさん
2008/05/12(月) 07:24:54ID:o0vmBy2P今運営しているPCサイトの携帯版を作ろうと思っています。
携帯用にするとき、元のサイトのサイズが大きいため分割する必要があると思い自分なりにやってみましたが、
分割のやり方が悪いため、htmlタグの途中で切れたりして変になってしまいます。
//1ページあたりの文字数(ページのサイズ)
$pagesize=1000;
元の文字列をページサイズで割り、合計のページ数を出す
$totalpage=ceil($str/$pagesize);
//↓1ページ目の場合は、テキストが0〜1000までの部分文字列になる
$text=mb_substr($str,($page-1)*$pagesize,$pagesize);
上記のようにやってみたのですが、下記のようになったりします。
----------------------------------------------------
nページ目のテキスト終わり部分
・・・・・・・・
<a href="http:
---------------------------------------------------
n+1ページ目のテキスト始め部分
//hoge.com">ホゲドットコム</a>
---------------------------------------------------
タグの部分で分割させないためには、
1000文字を超えたところで一番最初に出てくる \n で分割したりすればいいと思うのですが、
それはどのようにやればいいのでしょうか。
アドバイスお願いします。
0455nobodyさん
2008/05/12(月) 07:42:33ID:???. が1バイトになるのか1文字になるのかは、よく知らないから自分で確認してね。
0456454
2008/05/12(月) 08:19:16ID:o0vmBy2Pアドバイスありがとうございます
やってみます
0457454
2008/05/12(月) 08:30:04ID:o0vmBy2Pすいません
ずうずうしいですが、何の関数を使ったらよいか教えてもらえないでしょうか
0458nobodyさん
2008/05/12(月) 08:50:40ID:???なんで検索すらしないの?
http://www.google.co.jp/search?hl=ja&q=php+%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE+%E9%96%A2%E6%95%B0&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=
0459nobodyさん
2008/05/12(月) 09:07:53ID:???こんなかんじにしたときに、
携帯(DoCoMo)だとSIDが100%付与されるのですが、
PCだと付与されるときとされないときがあります。
原因は何でしょうか・・?
0460nobodyさん
2008/05/12(月) 09:54:38ID:???マニュアルぐらい調べろ。すっとこどっこい
http://www.php.net/manual/ja/session.idpassing.php
0461nobodyさん
2008/05/12(月) 12:23:50ID:???htmlの文字数で分割すると
場合によっては1ページ中に含まれるコンテンツがほんのわずかで
ユーザに余計なページ送りのストレスかけることにならないかい?
0462nobodyさん
2008/05/12(月) 16:05:32ID:1jI7+vyuvar_dump()をかけると以下の結果を返す配列があります。($data_list)
array(1) { [0]=> array(7) { ["id"]=> string(1) "5" ["title"]=> string(97) "ゴールデンボウル~ポール・アンカ・オリジナル・グレイテスト・ヒッツ"
["artist"]=> string(21) "ポール・アンカ" ["kaisetsu_text"]=> string(19) "おすすめのCD 1"
["url"]=> string(7) "testURL" ["myWork"]=> string(1) "1" ["musicGenre"]=> string(1) "5" } }
これに対して、titleを抜き出したくて echo $data_list["title"] としても何も表示されません
どうしてでしょう? ご意見お願いします
0463nobodyさん
2008/05/12(月) 16:08:00ID:???以下のようにするとよくわかります
echo "<pre>";
var_dump($data_list)
echo "</pre>";
0464nobodyさん
2008/05/12(月) 16:08:24ID:???×$data_list[7]['title']
○$data_list[0]['title']
0465nobodyさん
2008/05/12(月) 16:16:41ID:1jI7+vyuありがとうございます!
そっか、二次元になってたんですね 自分で作ったのに忘れてました
echo "<pre>";
var_dump($data_list)
echo "</pre>";
↑これも活用します ありがとう
0466nobodyさん
2008/05/12(月) 19:01:23ID:???ini in directory C:/xampp/php/PEAR/PhpDocumentor
-Is phpdoc in either the path or include_path in your php.ini file?
Xampp使ってるんですが、これはどういういみでしょうか。
0467nobodyさん
2008/05/12(月) 19:32:36ID:o0vmBy2P検索しましたが、preg_split()でうまくできませんでした
何時間考えても自分ではもうわからないので答えそのものを聞きたいところですが
そんなことしたら罵倒されるのはわかってるので、よそに行って聞いてきます
ありがとうございました
0469nobodyさん
2008/05/12(月) 19:42:34ID:???"/^.{1000}\n/"
確認してないけど正規表現で
0471nobodyさん
2008/05/12(月) 20:10:37ID:NEnrgbxPどうしてもエラーで出力自体が出来ません。
どのようにすればいいのでしょうか?
出力したいJavascriptはこのような感じです。
<SCRIPT language="JavaScript">
<!--
function OpenWin(url){
win=window.open(url,'sub','width=200,height=150');
}
// -->
</SCRIPT>
0472nobodyさん
2008/05/12(月) 20:12:23ID:???"/^.{950,1000}?.+\n/s"
0474nobodyさん
2008/05/12(月) 20:27:01ID:NEnrgbxPエラーはこのような感じです。
コードに関しては、上で書いたJavascriptをテンプレートとしてdisplayで出力するだけですから
0476471
2008/05/12(月) 20:41:04ID:NEnrgbxPなるほど
テンプレートで{}を出力する方法はありませんでしょうか
0477nobodyさん
2008/05/12(月) 20:55:31ID:1jI7+vyu記入>確認>登録 という流れを考えていて、
確認ページでは、
print $_POST['message']; の形で、記入ページでtextareaに
記入したものを確認できるようにし、
<input type="hidden" name="message" value="$_POST['message']" />として、
値を登録ページに渡すようにしています。
今まで、登録ページ(実際のSQL登録の直前)で、addslashes($_POST['message'])として
いたんですが、addslashes()は、確認ページですべきなんでしょうか?
<input type="hidden" name="message" value="addslashes($_POST['message'])" />という感じで。。
どなたか教えてください、よろしくお願いします
0479nobodyさん
2008/05/12(月) 21:01:26ID:???addslashesはDBに挿入する際のエスケープ。
HTMLタグ無効化はhtmlspecialshars
0480454
2008/05/12(月) 21:04:30ID:o0vmBy2Pでもダメでした
print_r(preg_split("/^.{1000}.*?\n/s", $str));
結果
Array ( [0] => [1] =>
[1]に$str全部がはいる
print_r(preg_split("/^.{950,1000}?.+\n/s", $str));
結果
Array ( [0] => [1] => )
空
正規表現ではなく私の関数の使い方がおかしいのかもしれません
お付き合いありがとうございました
0481nobodyさん
2008/05/12(月) 21:06:42ID:1jI7+vyuありがとうございます じゃ、上のケースだと、確認ページで
print htmlspecialchars($_POST['message']);
<input type="hidden" name="message" value="{htmlspecialchars($_POST['message'])}" />
という感じでしょうか?
使い分けがいまいちわからず困ってました ありがとうございました
0482nobodyさん
2008/05/12(月) 23:11:13ID:???もう見てないかもしれんが
preg_match_all('/.{1000}.*?\n|.*/s', $str, $matches);
ちゃんと動くかどうかは自分で確認して。
0483nobodyさん
2008/05/13(火) 00:16:15ID:???このCGIをそのままインデックスページにしたいんですけど
CGIですからURLがhttp://***/cgi-bin/gallerypro/gallery.cgi
っていう風になるのが気に食わないので
http://****/だけで済むURLでインデックスページにしたいんですけど
どうすればいいですか
0484nobodyさん
2008/05/13(火) 00:18:27ID:???http://ml.php.gr.jp/pipermail/php-dev/2005-June/001135.html
このページに出ているような現象が出ていますが、
session_idを見たところ、これといって問題はありませんし、
プログラム的にもそこまでがちがちのセキュリティをというものでもないので、
このエラーを回避するようにしたいのですが、
どのような処理を行えばいいか教えていただけないでしょうか
よろしくおねがいいたします。
0485nobodyさん
2008/05/13(火) 00:33:59ID:???0486454
2008/05/13(火) 00:42:34ID:dYo6M2/fできました!!
今日一日かかってもできなかったので、
とりあえず\nで分割して配列にいれて、処理させようと考えていたところでs
本当に感謝です!!
0488484
2008/05/13(火) 00:44:57ID:???あふぉはすぐそうやって知識のない人間を卑下するww
■ このスレッドは過去ログ倉庫に格納されています