トップページ⇒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
0557nobodyさん04/09/07 14:24ID:???
これで無理かな
確認は取ってない

----string.txt------
<?php
echo "dear_".$mama;
?>
--------------------

<?php
$mama = "papa";
include("string.txt");
?>
0558nobodyさん04/09/07 14:24ID:???
>>556
string.txt の内容を

dear_<?=$mama?>

みたいにすれば、

<?php
$mama="papa";
include 'string.txt';
?>

でいけるけど、どうよ?
0559nobodyさん04/09/07 14:30ID:???
$hoge[$lob] これ回した時、エラーが山のようにでるのさ。
$hoge["$lob"] これでも、エラーが山のようにでるのさ。
$hoge['$lob'] これだとうごかないのさ。
$hoge[$lob[$i]] これだったらもうほんとねーとんでもないよ。

誰かエラーの取り方教えてください。
宜しくお願い致します<(_ _)>
0560nobodyさん04/09/07 14:33ID:???
>>559
どんなエラーが出るのさ。
エラー文の引用とソースの抜粋を貼り付けてみなよ。
0561nobodyさん04/09/07 14:34ID:???
>>559
おまいが何をしたいのか、どんなエラーがでるのか
それが分からんと何も分からん
というか、その配列の部分がエラー元だと思う根拠も聞きたい
056255604/09/07 14:55ID:???
>>558
素早いレスありがとうございます。

やり方についてはわかりました。
もしよろしければ、それが意味するところを知るには、
マニュアル等でどこを見れば良いかも教えてもらってもいいでしょうか?
0563nobodyさん04/09/07 15:04ID:???
>>559
>$hoge[$lob]
で出てくるエラーを提示してみ。それ自体が構文エラーを吐くことはないと思うが。
0564nobodyさん04/09/07 15:06ID:???
>>562
http://www.php.net/manual/ja/language.basic-syntax.php
<q><?= expression ?> は "<? echo expression ?>"のショートカットです</q>
0565nobodyさん04/09/07 15:06ID:???
>>562
<?=・・・?> の書き方についてなら echo かな。

include したらファイルの内容が表示されることについてなら・・・
どこだろう?
PHPスクリプトは、評価(実行)されるときには <? 〜 ?> の外側はそのまま出力される、ってことを思い出せば理解できるかな?
0566nobodyさん04/09/07 15:11ID:???
>>563
"Notice: Undefined variable"と予想。
056755604/09/07 15:13ID:???
>>562
>>565
またもや素早いレスありがとうございます。
よくよく勉強してみます。
0568nobodyさん04/09/07 15:17ID:???
>>565
includeの項でいいんじゃないかな。
|ファイルが読み込まれるときには、読み込まれるファイルの先頭で
|PHPモードを抜けてHTMLモードになり、最後に再びPHPモードに戻ります。
|このため、読み込むファイル中のPHPコードとして実行する必要がある
|コードは、有効なPHPの開始タグおよび終了タグで括る必要があります。
HTMLモード(そのままechoされる)で。

大元のやりたいことはテンプレートシステムのつくりを調べると
色々な実現の仕方があるということに気がつくと思う。
0569nobodyさん04/09/07 15:29ID:3rwpPIvY
>>556
俺も普通にテンプレートを勉強するのがいいと思う。
0570nobodyさん04/09/07 15:43ID:???
>>559です。

>>560 >>561 >>563 >>566
レスありがとうございます。
Notice [PHP]: Undefined index: in file c: ・・・ 
申し訳ないです。エラーではなかったです。

このメッセージ消す方法はありますでしょうか。宜しくお願い致します。<(_ _)>
0571nobodyさん04/09/07 16:03ID:???
既出の見たのですがよくわかりませんでしたので、再度質問。
掲示板で、串制限する方法おしえてください。
よろしくおねがいします。
0572nobodyさん04/09/07 16:09ID:???
>>570
$lobがundefinedのときにはどんな動作にしたいの?
無視するとか、$lobを0に見立てるとか、なんかあるでしょ?
0573nobodyさん04/09/07 16:10ID:???
>>570
出ている警告のとおりインデックス($lob)をきちんと設定してやればいい。
プログラム的に未設定だったら該当コードをスルーするようにするか。

エラーレポートレベルを下げて「見ない振りをする」という手もあるが、
プログラム初学者の場合、悪い癖が付くのでお勧めできかねる。
0574nobodyさん04/09/07 16:11ID:???
>>570
ていうかNoticeってデフォルトでは出ないはずじゃなかったか
Notice全部イラネってんならphp.iniで
  error_reporting = E_ALL & ~E_NOTICE
今だけ消したいならそのスクリプト中で
  error_reporting(E_ALL | ~E_NOTICE);
でいけると思われ
0575nobodyさん04/09/07 16:39ID:???
>>559です。
>>572 >>573 >>574
ありがとうございます。

ちと、小コードで再現できないので、再現できたらまた来ます。
0576nobodyさん04/09/07 17:22ID:???
noticeを無視するのは良くないクセだ
定義、未定義をしっかり確認するほうがいい
0577ぬるぽ ◆GmgU93SCyE 04/09/07 17:51ID:???
2ちゃんと同じ暗号化ってないかな?
Cryptでやってみたけど多すぎ
0578nobodyさん04/09/07 18:00ID:???
いや、Cryptだが
0579ぬるぽ ◆GmgU93SCyE 04/09/07 18:05ID:UlF+H5yz
$1$EQ2.763.$nLy55zBP12g8ms/abYLiC/と出た
これを10桁&2ちゃんとまったく同じ変換にするにはどうすればよいか・・・
0580nobodyさん04/09/07 18:09ID:???
丸投げスレをのぞいてみたら何か落ちてるかもよ。
0581ぬるぽ ◆GmgU93SCyE 04/09/07 18:09ID:???
>>580
詳細&ガッキボンヌ
0582nobodyさん04/09/07 18:37ID:???
>>571
ちょうどこんなの見つけた
http://headlines.yahoo.co.jp/hl?a=20040907-00000001-imp-sci
058353804/09/07 19:04ID:kzLAff5m
>>543 説明どうも
>>402ではないので あしからず
0584nobodyさん04/09/07 19:21ID:qMLjw9o/
1,2,3,4,5,6,7,8,9,a,b,c,...,z,10,12,13,14,15,...,1z,20,21
というように36進数を連続して生成するためには
なんという関数を使えばよいのでしょうか?
0585nobodyさん04/09/07 19:30ID:???
数字を1ずつ増やす方法が分からないのか、
基底を変換する方法が分からないのか、どっちか分からんけど、
base_convert使っとき。
0586nobodyさん04/09/07 19:34ID:???
>>579
それDESじゃないか?
0587nobodyさん04/09/07 19:36ID:???
>>579
ttp://php.s3.to/man/function.crypt.html
0588nobodyさん04/09/07 19:48ID:???
<?php
$password = CRYPT_STD_DES("abc"); # saltを生成
echo $password;
?>
0589nobodyさん04/09/07 20:00ID:???
WindowsServer2003でPHP使ってる人いる?
059058404/09/07 20:47ID:???
>>585さん
ありがとうございました。
こういうのは基底を変換と言うのですね。
0591nobodyさん04/09/07 20:47ID:???
>>579
// 昔作った関数だけど
function gettrip($tripkey) {
$tripsalt=preg_replace('/[^.-z]/','.',$tripkey);
$tripsalt=strtr($tripsalt,':;<=>?@[\]^_`','ABCDEFGabcdef');
$tripsalt=substr($tripsalt.'H',1,2);
$trip=substr(crypt($tripkey,$tripsalt),3,10);
return($trip);
}

// 2ちゃんと全く同じかは(゚�听)シラネ
0592nobodyさん04/09/07 20:55ID:???
串制限おしえて!!
0593nobodyさん04/09/07 21:02ID:???
>>592
う・る・さ・い!
0594nobodyさん04/09/07 21:17ID:???
>>592
まずは以下のページで串の基礎をおさらい
http://www.cybersyndrome.net/pg.html#4

そのあと「is_proxy_access」でググってみ。
前スレ289氏のサンプルが出てくるから。
0595nobodyさん04/09/07 21:19ID:???
>589
PHP 4.3.2 + Apache 2.0.48 でとりあえずは動いてる
0596nobodyさん04/09/07 21:38ID:???
>>592
http://www.ponycanyon.co.jp/dango/
0597nobodyさん04/09/07 21:49ID:???
PHPの関数で、他のページに飛ばすのはないでしょうか?
formでsubmitして、処理の結果次第で他のページに飛ばしたいのです。
metaタグでやるしかないんでしょうか?
よろしくお願いいたします。
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:???
申し訳ない、何回か読んだはずなんですが、わからないのです。
■ このスレッドは過去ログ倉庫に格納されています