トップページ⇒php
1001コメント314KB

【PHP】質問スレッドpart21【php】

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん04/08/27 18:00ID:???
・PHP全般の質問スレです。
・新規質問の方は上げてください。age進行でお願いします。
・質問する際には環境も明記。
・正しい日本語で分かりやすく。
・レスがつかないからって逆切れする厨お断り。
・解決しなくてもこたえてもらったら礼を。


■本家
 http://www.php.net/

■日本 PHP ユーザ会
 http://www.php.gr.jp/

■PHP マニュアル
 http://www.php.net/manual/ja/

■PEAR マニュアル
 http://pear.php.net/manual/ja/

過去スレ, 関連スレ等>>2-4
0598nobodyさん04/09/07 21:51ID:???
>>597
header()でLocationを使う

・・・というのはFAQですが
0599$key="php"→ ◆BhTTgvJlYk 04/09/07 21:53ID:???
>>579
つか、にちゃんと同じならぐぐればいくらでもソース出てくるだろ
下はトリップ生成ツールで生成されるトリップと一致することは確認した奴
trip(str トリップキー, int トリップ桁数)

function trip($key, $digit=10){
  $salt = substr($key."H.", 1, 2);
  $salt = ereg_replace("[^\.-z]", ".", $salt);
  $salt = strtr($salt,":;<=>?@[\\]^_`","ABCDEFGabcdef");
  return("◆".substr(crypt($key, $salt),-1*$digit));
}
0600nobodyさん04/09/07 22:17ID:???
> is_proxy_access
分かってると思うがまんまBBSに実装すんなよ
0601nobodyさん04/09/07 22:23ID:???
>>597
他にも、ジャンプ先のページを丸ごとincludeするとか。
060259704/09/07 22:30ID:???
>>598
headerにそんな使い方が。。。
ありがとうございます。

>>601
なるほど。考えつきませんでした。
変数がそのまま使えていいですね。
ありがとうございます。
0603nobodyさん04/09/07 22:36ID:Z5/Re9xz
http://script.s16.xrea.com/2ch/
これの携帯表示部分にすれたい検索を実装したいのだが…全くわからん。
ライフライン使わせてくれ。
0604nobodyさん04/09/07 22:44ID:???
そんなのないです
0605nobodyさん04/09/07 22:55ID:???
>>603
やる気ない奴は丸投げスレいけよ
0606nobodyさん04/09/07 23:01ID:???
可変変数ってどういう時に使ってますか? 
0607nobodyさん04/09/07 23:12ID:oC+AH/dT
画像を貼り付けたExcelを出力することはできますか?
0608nobodyさん04/09/07 23:28ID:???
そんなのないです
0609nobodyさん04/09/07 23:28ID:???
画像を、貼り付けた、Excelを、出力することは、できません。
0610nobodyさん04/09/07 23:28ID:???
header("ごにょごにょ");
readfile("画像付きExcel");
0611nobodyさん04/09/07 23:43ID:???
>>610
お前頭いいな!
0612nobodyさん04/09/07 23:58ID:???
どうなるかまで考えてないんだから頭がいいとは(ry
0613nobodyさん04/09/08 01:10ID:???
>>595
windowsでやるならapache2のほうがいいのかな?
apache1はssl使うのにちょっと怪しいとこのを使うので
ちょっと不安。
IIS6でやろうかと思ったんだけど
権限の設定ではまった。。。
0614nobodyさん04/09/08 01:41ID:???
>>613
Windows2003で動かすには
IIS5分離モードとかいうのにしないと
PHPは使えないんじゃなかったっけ?
0615nobodyさん04/09/08 01:41ID:???
自己責任でApache2でもなんでもお好きなのを
0616nobodyさん04/09/08 02:27ID:???
PHPのURLにひっつける引数?はどのように取り出すのでしょうか?
http://www.hoge.com/hoge.php?hoge=hogehoge
みたいな奴のことなんですが。
0617nobodyさん04/09/08 02:42ID:???
>>616
マニュアル読んだ事ある?
言語リファレンス〜機能と必要そうな関数のページぐらい目を通しとけ
0618nobodyさん04/09/08 02:56ID:???
>>616
マニュアルで探し出すのは困難なので、
$_GET['hoge'] で取ってみ。
0619nobodyさん04/09/08 03:04ID:???
ていうかクエリとかいう言葉が出てこない時点で
本一冊くらい買ってみたらいいんじゃないかと思う。
0620nobodyさん04/09/08 03:51ID:???
>>606
アイデアを直感的に実現する(した)時にしか使ってないな。
他ので代用聞くし、プログラムの見た目が逆に直感的でなくなる(気がする)。
0621nobodyさん04/09/08 05:13ID:???
逆に読まれづらいスクリプトを書く時とか
0622nobodyさん04/09/08 08:02ID:???
>>606
DBからデータ拾ってくるときとか使ってる
0623軟式PHP04/09/08 12:49ID:???
まぁ、なんつーかいまだにregister globalのサーバーが多いなぁ…。
0624nobodyさん04/09/08 13:16ID:???
PHPファイルにアクセスできません。
スクリプトをコメントにして消していくと読み込めるんですが、
それを元の状態に戻すとまたアクセスできないようになります。
こういう場合は、どういったことが考えられるんでしょうか?
0625nobodyさん04/09/08 13:17ID:???
>>624
恐らくミス
062662404/09/08 13:22ID:???
>>625
中身のコーディングによって変わってくるのだから、コーディングのミスだとは思いますが
エラーが出るのではなく、アクセスできないようになるというのはどういったことが考えられるのでしょうか?
0627nobodyさん04/09/08 13:48ID:???
>>626
恐らくミス
0628nobodyさん04/09/08 13:58ID:???
>>626
アクセスできないってどんな状態?
Not Found? Forbidden? それとも空白画面?
とりあえずその辺を書いてみよう。
0629nobodyさん04/09/08 13:59ID:1bxarjSQ
>>626
「アクセスできない」が何を意味するかによる。
何を見てアクセスできないと判断したのか?

apacheのエラーログとか・・・。
0630nobodyさん04/09/08 14:00ID:???
想像では空白画面だと思うんだけどな。
で、
display_errors = Off
になってる。
0631nobodyさん04/09/08 15:53ID:???
こんにちは。
質問があります。

$url = $item[link];

というリンクがあるのですが、新しいウインドウで開くにはどうすればよいのでしょうか?
的外れな質問だったら申し訳ないです。
0632nobodyさん04/09/08 15:59ID:???
>>631
的外れです。つーか、的すら見えない。
さいようなら。(-_-)/~
0633軟式PHP04/09/08 16:01ID:???
<a href="<?=$url?>" target="_blank">ほげほげ</a>
063463104/09/08 16:04ID:???
PHPに関してほぼ何も分かっていない初心者が質問をしてしまいました。
申し訳ないです。 m(_ _)m
では。

063562404/09/08 16:08ID:???
Not Foundです。
時間なかったので問題のあるところは削除して、
別の方法でコーディングやり直しました。
お騒がせしてすいませんでした。
063663104/09/08 16:13ID:???
633さん、ありがとうございます。(^^
でも、target="_blank"ではないんです。
説明不足でしたが、
あるHTMLの中で<iframe>を使い、そのフレームの中に
index.phpをリンクさせているです。
そのindex.php中に

<?php
・
・
・
$url = $item[link];
・
・
・
?>

というものを埋め込んでいます。
「・」は自分の質問では無関係だと思われる部分なので、ここでは省略しました。
そして、この<iframe>の中のリンクをクリックすると、
フレームの中にリンク先が表示されてしまうのです。
そうではなく、新しいウインドウを開くにはどうしたらよいかが知りたかったんです。
0637nobodyさん04/09/08 16:15ID:???
>>631

<?php
$item[link] = "http://www.2ch.net";
$url = $item[link];
echo "<a href='".$url."' target='_blank'>リンク</a>";
?>

はい、どうぞ。
0638nobodyさん04/09/08 16:16ID:???
<iframe>かあ
0639nobodyさん04/09/08 16:18ID:???
>>631
HTMLとか勉強しろ
064063104/09/08 16:24ID:???
637さん、ありがとうございました。
他の皆様もありがとうございます。
<a href='".$url."' target='_blank'>で解決しました。
ご迷惑をおかけしました。
そして、本当にありがとうございました。 m(_ _)m
0641nobodyさん04/09/08 16:27ID:???
また一人ダメにしちまったなw
0642nobodyさん04/09/08 17:16ID:???
PHPはサーバ側で動作するものであり、HTMLを出力するしかできない。
(ブラウザの動作を直接制御することはできない)
その出力するHTMLを変える(target="_blank")ことで間接的に制御することはできる。

クライアント側であるウェブブラウザは、送られてきたHTMLをただただ表示するのみ。
PHPが動的に出力したHTMLなのか、静的なHTMLファイルそのままなのかは知ったこっちゃない。
ただただ送られてきたHTMLをのほほんと表示するだけ。

このへんのことを理解してないような人が定期的に来るなぁ。
このへんを理解してれば「新しいウィンドウで表示させる」って時点でPHPの話じゃなくてHTMLの話だってわかって自力で問題解決に向かえると思うんだが。
0643nobodyさん04/09/08 17:27ID:???
そもそも、HTMLを知らん人間も居るわけで、
無茶苦茶言ってるいわけでして。
0644nobodyさん04/09/08 17:38ID:???
 magic_quotes はconfigure時にenableしてたらphp.iniでOffに指定しても
Onのままですか?
0645nobodyさん04/09/08 18:03ID:???
PHPでWAP1用のサイトを作っています。
以下のwap1.phpだと端末で表示されません、シミュレーターですがBadSorceになります。
$wap1を文字列ではなくPHPコードとしているから(?)だと思い、$wap1内の「"」をエスケープしましたが駄目でした。
うまく表示させるにはどうすればよいでしょうか?
その下のtest.phpではうまく表示されました。

wap1.php--------------------
<?php
header('Content-type:text/x-hdml;charset=Shift_JIS .hdml');
  ・
  ・
(CHTMLで書いた文章をWAP1用に変換し$wap1に代入)
  ・
  ・
include($wap1);
?>
----------------------------

test.php----------------------
<?php
header("Content-type:text/x-hdml;charset=Shift_JIS .hdml");
$aaa = "<hdml version=\"3.0\" ttl=\"0\" markable=\"true\"><display title=\"テスト\">テスト</display></hdml>";
include($aaa);
?>
----------------------------
0646nobodyさん04/09/08 18:09ID:???
>>645
そのincludeってどういう意味で使ってんだ?
そもそも普通のブラウザで見たらどうなるんだ
064764504/09/08 18:18ID:???
>>646
うまく説明できませんが、
header関数でヘッダ情報を出力するために、includeで変数に入れたHDMLソースを出力しています。
wap2用のスクリプトはprint関数で変数に入れたXHTMLソースを出力しています。
普通のブラウザで見るとhdmlファイルは未定義(?)のためにダウンロードをします。
すいません、決定的に不足している部分があるのはわかりますが、よろしくお願いします。
0648nobodyさん04/09/08 18:23ID:???
>>647
ダウンロードしてテキストエディタかなんかで中身みてみな
064964504/09/08 18:27ID:???
>>647
中身は$wap1に格納してあった文字列でした。
0650nobodyさん04/09/08 18:33ID:???
なんでechoを使わないんだろう
065164504/09/08 18:38ID:???
>>650
printに変えてもBadSorceになってしまいます。
printに変え、PCのブラウザでDLして中身を見ると先ほどと同じでした。
0652nobodyさん04/09/08 18:41ID:???
>>651
$wap1の中身がbadsourceなんだろ
065364504/09/08 18:46ID:???
>>651
すいません、、、多分そうです。
エラー吐き出すソース書いてました。
これ全部直して、それでもうまく行かなかったらまた1時間ほど調べて、
それでも駄目ならまた戻ってきます、色々すいませんでした。
0654nobodyさん04/09/08 19:13ID:???
ini_set('display_errors','0');
でエラーを表示させないようにしたかったんですが
相変わらず普通にエラーが表示されてしまいます。
(ini_getで見ると一応変更されてるようなんですけど……)

php.iniのdisplay_errorsをoffにすればエラーは非表示になりました。
でもUPする先のはいじれないんで、どうしたら良いのでしょう。
windowsのapache2のローカル環境です。
0655nobodyさん04/09/08 19:32ID:???
マニュアルの27を読め
0656nobodyさん04/09/08 20:16ID:???
申し訳ない、何回か読んだはずなんですが、わからないのです。
0657nobodyさん04/09/08 20:19ID:???
嘘をつけw
釣りならよそでやれよカス
0658nobodyさん04/09/08 20:31ID:???
ここはひとつ、釣られやったと思ってヒントだけでも……
0659nobodyさん04/09/08 20:36ID:???
>>658
> ヒントだけでも……
(・∀・)ノ ttp://www.php.net/manual/ja/
0660nobodyさん04/09/08 21:30ID:???
そもそも>>655を見て、どこを見ればいいか判ったのか?
その上で、どうして>>656の回答になるのか良くわからん
0661nobodyさん04/09/08 21:42ID:???
ここです。
>XXVII. エラー処理およびログ記録関数
いや、本当に質問する前に何回か見たんですが。

php.iniのdisplay_errorsをoffにすれば、パースエラーとかでも
真っ白のページがでるじゃないですか? ああしたいんですよね……
もちろん、そんなエラーでないように作ってるんですけど、念のためってことで。
0662nobodyさん04/09/08 21:46ID:???
あ、パースエラーじゃないか。
0663nobodyさん04/09/08 22:11ID:???
>>661
開発中なら オンにしとけ
0664nobodyさん04/09/09 00:06ID:???
> いや、本当に質問する前に何回か見たんですが。

嘘をつくな
釣りはよそでやれ
0665nobodyさん04/09/09 00:14ID:???
もう池沼はほっとけ
0666nobodyさん04/09/09 00:25ID:FbdWBweA
ちょっとわからない質問です。

よくレンタルサーバーの仕様書に
/usr/local/bin/php
って明記している場合があるのですが
これはHTML内に記述して使えないと言うことですか?

普通HTML内に<?php 〜 ?>で使うことが多いですよね?
モジュールタイプとか言う意味がわからないのです。
0667nobodyさん04/09/09 00:30ID:???
>これはHTML内に記述して使えないと言うことですか?

No.

>普通HTML内に<?php 〜 ?>で使うことが多いですよね?

No.

>モジュールタイプとか言う意味がわからないのです。

調べれば?
0668nobodyさん04/09/09 00:32ID:???
>>666
CGIで動かしているだけでしょ。
Perlのように先頭に書いて以後は同じ

#!/usr/local/bin/php
<html><head>....
<?php
echo "なんたら";
...
?>
</body>
</html>
066966604/09/09 01:04ID:aXAHUhw0
サンクス。
0670nobodyさん04/09/09 01:16ID:???
>>664
(・∀・)ニヤニヤ
0671軟式PHP04/09/09 02:46ID:???
今日は久しぶりに仕事で徹夜でしゅ( ´−`)チュンチュン
0672nobodyさん04/09/09 06:49ID:???
FAQっぽいのですが
ヒアドキュメント内で定数を使う方法はないですか?
0673nobodyさん04/09/09 09:25ID:???
無い
散々外出だし
0674nobodyさん04/09/09 09:56ID:???
FAQ
Q.
Perl で便利だった定数や関数の埋め込み、q/qq はないの?
A.
残念ながらありません。要望を出しましょう。

0675nobodyさん04/09/09 10:59ID:IIwWnmVE
>>661
ApacheモジュールならApacheを再起動してないとか。
0676nobodyさん04/09/09 11:06ID:???
>>674 = >>406 = >>672
0677nobodyさん04/09/09 13:01ID:XV9g/9TM
フォームから受け取った文字列がhttp://から始まっているか
チェックするために
if(ereg("^http://", $_POST['url']))
と書いてみたのですが、これだと「test.http://〜〜」や
「test,http://〜〜」もスルーしてしまうみたいです。
どうやったらhttp://で始まっているかチェックできるのでしょうか?
0678nobodyさん04/09/09 13:13ID:???
>>677
うちの環境じゃ動くよ。ちゃんと確認したか?

<html>
<form>
URL : <input type="text" name="hoge" size="30"> <input type="submit" value="SEND">
</form>
</html>
<?php
$hoge = $_REQUEST[hoge];
if(ereg("^http://",$hoge)){
print "http://から始まる文字列です => \$hoge = $hoge";
}
?>
0679nobodyさん04/09/09 13:16ID:???
^
068067704/09/09 14:36ID:???
>>678
それをコピペしてみたら動いたので、どこか
他のところが悪かったっぽいです…
もう一度見直してみます。
ありがとうございました。
0681nobodyさん04/09/09 15:49ID:???
首から上が悪いんだろうなあ…
0682nobodyさん04/09/09 16:04ID:???
Perl で言うところの HTML::TableExtract のようなものは PHP にないでしょうか?
http://pear.php.net/package/HTML_Table は table の生成でした。
やりたいのは table を配列に変換したいのです。
0683nobodyさん04/09/09 16:22ID:???
自作してみて。
0684nobodyさん04/09/09 18:23ID:???
自作してもいいけど、会社の云々で公開できなくなるのが残念。
068567204/09/09 18:33ID:???
>673-674
外出すみません、ありがとうございました。

>676
perlは使ったことありません。
0686nobodyさん04/09/09 18:50ID:???
<?php
$link = mysql_connect("hostname", "user", "passwd")
or die("Could not connect\n");
print ("Connected successfully\n");
mysql_close($link);
?>

上のスクリプトで、hostnameがlocalhostのとき、
○シェルからCLI版のPHPで実行するとMySQLに接続できる。
○mod_phpからHTTP経由で実行してもちゃんと動く。

hostnameがlocalhostでない別ホストのとき、
○CLI版PHPではちゃんと動く。
×mod_phpではなぜか接続できない。

なんで別ホストで動くMySQLにmod_phpから接続できないんでしょう???

CLI版とmod_phpは同じコンパイルオプションで同時に作ったもの。バージョンは4.3.6。
./configure --with-mysql=/usr/local --with-apxs2=...
CLI版では接続できているのでネットワークや受け側MySQLの問題ではないと思う。
0687nobodyさん04/09/09 19:22ID:???
>>686
mysql_connectが吐くエラーメッセージはなんて言ってる?
0688nobodyさん04/09/09 19:29ID:???
>>686
実は、実行権限の違いの問題だったりして。
Apacheとコマンドラインの。

なにはともあれ 4.3.8にした方が良いと思います。
0689nobodyさん04/09/09 19:34ID:???
とりあえず、
die( "Could not connect. ".mysql_error() );
とでもやってエラー原因を確かめるべし
0690nobodyさん04/09/09 22:07ID:???
メールフォームを作ろうと思って、

<form action="<?php echo $PHP_SELF ?>" method="POST">
Name:<input type="text" name="name" size="16">
E-mail:<input type="text" name="mail" size="40">
<input type="submit" value="送信"></form>
<?php
if($_POST['mail'] and $_POST['name']){
mb_send_mail($_POST['mail'],$_POST['name'],本文だよ);
}
?>

という風に書いてみたところ
「Parse error: parse error, unexpected '{' in /~~~/mail.php on line 7」
と言われてしまいました。
変なところに{があるYO!ってことだと思うのですが、
どこを見ても余計な{は入っていないようにしか思えません。
どうすれば正常に動くのでしょうか…
0691nobodyさん04/09/09 22:10ID:+Va/ZOYc
phpの設置についてなのですが、
Vine Linux3 上のapacheでhoge.phpというファイルをアップし
ブラウザからアクセスすると、phpの中身がそのままテキストとして表示されてしまいます。
apacheのphp、php3、php4モジュールは読み込みされており
AddTypeもされています。

こういった場合どこか問題かわかる方よろしくお願いします。
0692nobodyさん04/09/09 22:16ID:???
mb_send_mail($_POST['mail'],$_POST['name'],本文だよ);
mb_send_mail($_POST['mail'],$_POST['name'],'本文だよ');
069369004/09/09 22:19ID:???
>>692
サンクスです!
0694nobodyさん04/09/09 22:47ID:???
>>691
--enable-versioningしてるの?それともcgiモジュールとapacheモジュールで分けてるの?
そのAddTypeは絶対間違ってない自信があるから、ここに書かないの?

>>693
Parse errorが出た時は show_source()を使うと
parserの気持ちになれてサクッと解決できることもあるよ。
0695カポコン04/09/10 00:02ID:???
>>686
AAA!CafeでのMySQL接続確認ならこの3行でOK
<?php
$link = mysql_connect("mysql?.aaacafe.ne.jp:3306","user","pass");
echo mysql_ping($link))?"MySQLと接続されています。":"MySQLと接続されていません。";
mysql_close($link);
?>
後は人に頼らず、自分でカスタ〜ムするべし。
後、MySQLでは正規表現探索が出来ますから、色々便利な部分も多いですよ。
0696nobodyさん04/09/10 00:20ID:GObesny2
プルダウンで選択されたものによって
そのページにあるテキストボックスの中に文字を変えたいのですが
どうすればいいのでしょうか?
あと、質問する場所がおかしいかもしれません。
申し訳ありません。
0697nobodyさん04/09/10 00:30ID:???
そういうのは普通クライアントサイドでやらないか?
■ このスレッドは過去ログ倉庫に格納されています