【PHP】質問スレッドpart18【php】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
04/06/14 14:36ID:???・新規質問の方は上げてください。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
抜けているものがあったら補足願います
0577nobodyさん
04/07/04 00:49ID:???脳ミソの変わりにくらげとか入ってないか調べたい。
0578nobodyさん
04/07/04 01:22ID:???メールの件名は特別だから。
詳細をググって調べるべし。
↓と同じ感じでjcodeつかってできるようにがんがれ。
$title = "件名";
$title = "=?iso-2022-jp?B?" . base64_encode(i18n_convert($title, "JIS")) ."?=";
0579576
04/07/04 01:49ID:???以下2行の追加で直りました。
$title = base64_encode($title);
$title = "=?iso-2022-jp?B?" . $title . "?=";
ありがとうございました!
0580nobodyさん
04/07/04 06:26ID:???「100円のものを1000個買いました。全部でいくらですか」
という問題を100を1000回足して答えを出すのに近いな
0581nobodyさん
04/07/04 07:41ID:???釣りか?
なぜネストの話が
つーかALUでは加算の繰り返(ry
0582nobodyさん
04/07/05 10:41ID:???0583nobodyさん
04/07/05 13:28ID:???0584nobodyさん
04/07/05 16:02ID:???$LV3 = $LV2 - $LV
$STR3 = ($STR2 - $STR) / $LV3;
$CON3 = ($CON2 - $CON) / $LV3;
$DEX3 = ($DEX2 - $DEX) / $LV3;
$INT3 = ($INT2 - $INT) / $LV3;
$LUCK3 = ($LUCK2 - $LUCK) / $LV3;
$CHA3 = ($CHA2 - $CHA) / $LV3;
?>
↑
Parse error: parse error, unexpected T_VARIABLE
と出るのでしょうが・・・
T_VARIABLEというのは何でしょうか?
0587584
04/07/05 16:09ID:???Division by zero in とはどういう意味なのでしょうか・・・ガクガクブルブル
0588nobodyさん
04/07/05 16:11ID:???それくらいの英語読め
0589nobodyさん
04/07/05 16:14ID:???$LV2に8、$LVに4入れても同じエラーが・・・
0590nobodyさん
04/07/05 16:22ID:???確認の仕方はマニュアル読んで調べろ
0591nobodyさん
04/07/05 16:30ID:???print "レベルが入力されていません。";
}else if($STR2 < $STR or $CON2 < $CON or $DEX2 < $DEX or $INT2 < $INT or $LUCK2 < $LUCK or $CHA2 < $CHA){
print "入力した値がおかしいです。";
}else{
}
これを使ったあと全部に0が入ってた〜(なぜだ
0593nobodyさん
04/07/05 16:36ID:???ttp://cgi.f44.aaacafe.ne.jp/~phpworld/002/seityo.php
値を出した後、ページが表示されない・・・
ソースを見ればHTMLがあるのに
0595nobodyさん
04/07/05 17:14ID:???もし$LV2=0で$LV=0なら じゃないんですか!?
0596nobodyさん
04/07/05 17:18ID:???★ ☆
☆ 質問者が返信する時は名前欄に「最初に質問したレス番号」を入れろ ★
★ ☆
☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
>>595
お前はアホか・・・
$LV2=0、$LV=0にして>>584の計算をしてみろよ
0599nobodyさん
04/07/05 17:31ID:???<TITLE><TITLE>
を
<TITLE></TITLE>
とすれば解決。
何が原因が分からない時は問題の絞込みってやつをするといいyp。
0600nobodyさん
04/07/05 17:56ID:???0604nobodyさん
04/07/05 21:01ID:???>>595
= は代入演算子だから比較の意味では使えない。
比較には == や === などを使う。詳しくは下記を読め。
http://www.php.net/manual/ja/language.operators.comparison.php
http://www.php.net/manual/ja/language.operators.assignment.php
0606nobodyさん
04/07/05 21:02ID:???0607nobodyさん
04/07/05 21:07ID:???unexpected T_IF
ってなんだYO!
0608nobodyさん
04/07/05 21:18ID:???0609nobodyさん
04/07/05 21:25ID:???ファイルに保存されないぽ
これのエラーを直せたら教えてやる
if($action == "action"){
if(($NAME != "") && ($COMMENT != "")){
$NAME = htmlspecialchars($NAME);
$MAIL = htmlspecialchars($MAIL);
$COMMENT = htmlspecialchars($COMMENT);
$COMMENT = nl2br($COMMENT);
$COMMENT = str_replace("\r", "", $COMMENT);
$COMMENT = str_replace("\n", "", $COMMENT);
$input_msg = implode(",", array($NAME,$MAIL,$COMMENT,$time,$host));
$message = file($data);
$fp = fopen($data, "w"); //書き込みモードでファイルを開く
rewind($fp);
fputs($fp, "$input_msg\n");
if($data_max <= sizeof($message))
$msg_num = $data_max - 1;
else
$msg_num = sizeof($message);
for($i = 0; $i < $msg_num; $i++){
fputs($fp, $message[$i]);
}
fclose($fp);
unset($message);
}
}
0610609
04/07/05 21:30ID:???fputs($fp, "$input_msg\n");
これで保存したんだがデータが上書きされる・・・
0611nobodyさん
04/07/05 21:43ID:dk5OZx2a消す場合はどうしたらいいのでしょうか?
0612nobodyさん
04/07/05 21:45ID:???>$fp = fopen($data, "w");
あなたの書いた通りに動いているだけです。
PHPマニュアルのfopenのページをご覧あれ。
0615nobodyさん
04/07/05 21:51ID:???あれってPHPでもできんのけ?
0616nobodyさん
04/07/05 21:52ID:???>fputs($fp, $message[$i]);
上書きされるのはwriteでファイル開いてるんだから当然として
とりあえず改行コードが抜けているぞ。
0617nobodyさん
04/07/05 21:57ID:???JavaのSiteMeshみたいな?
できるかできないかでいえば「できる」けど書くのが面倒なら
そのCGIに任意のHTMLやPHPスクリプトを読み込ませてもいいんじゃない?
プロキシみたいなもんで、ブラウザの代わりにURIにアクセスして
レスポンスボディをレイアウトし直したり、リンクのURIを書き換えたりしてるだけだと思うから。
0618nobodyさん
04/07/05 21:58ID:???「PHP まぬある 付録 P. パーサトークンの一覧」
ttp://www.php.net/manual/ja/tokens.php
を読んでけれ。
"Parse error: parse error, unexpected T_VARIABLE" などという
エラーが表示された場合は、「私ってば PHP の構文解析をして
いるパーサですが、あなたの書いたソースを読んだら構文解析
に失敗しますた。予期せぬ位置に変数が表れたわよ。」と読む。
大抵の場合、パースエラーの出た変数の手前に問題があって、
セミコロン忘れてますた。括弧を閉じ忘れてますた。とかそういう
ことだたーりする。
だと思う。
0619618
04/07/05 22:04ID:???>大抵の場合、パースエラーの出た変数の手前に問題があって、
「正」
大抵の場合、パースエラーの出たイ "トークン" の手前に問題があって、
マチガエタ。サヨウナラ。サガサナイデクラハイ。
0620nobodyさん
04/07/05 22:07ID:???0621nobodyさん
04/07/05 22:20ID:???しってるよばーかマヌケ
>>620
スレとかんけーねーよ無能
0622nobodyさん
04/07/05 23:00ID:???多重投稿"ミス"なら、投稿履歴と照らし合わせて
「多重だったら」という処理をすることでもいい。
投稿履歴にはhiddenでユニークな投稿キーを埋め込んでおいて、
それを履歴リストに残して多重チェックするのが普通かな。
履歴リストの分量や、Webブラウザのキャッシュに入力フォームが
残らないようにするとか、細かいところは工夫してください。
0623nobodyさん
04/07/05 23:37ID:???投稿後にリロードして再投稿するミスを防ぐなら、header("Location {$_SERVER['PHP_SELF']}")
で同一ページに飛ばすテクもある。
0625620
04/07/06 00:16ID:???ttp://cgi.f44.aaacafe.ne.jp/~phpworld/
0626nobodyさん
04/07/06 00:25ID:???0630nobodyさん
04/07/06 03:48ID:???すでにApache2はインストール済みなのでPHP4.3.7のWinバイナリをインストーラーの方でe:\phpにインストール
http://www.php.net/manual/ja/install.apache2.php に従って
php4ts.dllをwindows/system32に移動
LoadModule php4_module e:/php/sapi/php4apache2.dll
AddType application/x-httpd-php .php
をhttpd.confに追加しましたがApacheを起動しようとすると
Apache.exe: module "c:\php4build\snap\sapi\apache2filter\sapi_apache2.c" is not compatible with this
version of Apache (found 20020628, need 20020903).
Please contact the vendor for the correct version.
というエラーが出てしまいます。
そもそも c:\php4build\snap\sapi\apache2filter\sapi_apache2.c なんでパスは存在しないのです
LoadModuleの部分をコメントアウトするとApacheは起動します
原因に心当たりのあるかたいらっしゃいますか?
php4.3.7 Apache2.0.43です
0631nobodyさん
04/07/06 04:28ID:???>Apache2.0.43
が古くて、最近のSAPIの仕様とは違ってるんじゃないの?
Apche2.0.50+PHP4.3.7でやってみな。
0632nobodyさん
04/07/06 07:53ID:???for文から抜け出すことは可能だろうか・・・
0634nobodyさん
04/07/06 09:30ID:???0635nobodyさん
04/07/06 10:28ID:???includeだとphpファイルの変数しか読み込めないので、txtファイルの中の変数を読み込みたいのです。
よろしくお願いします。
0637nobodyさん
04/07/06 10:46ID:???ttp://www.php.net/manual/ja/function.parse-ini-file.php
とか、どーですか。
0639nobodyさん
04/07/06 11:01ID:???普通に<?phpとか書いてない txtファイルを読み込んで
その中に入ってる$hoge とか言う変数を読み込みたいのです
0640638
04/07/06 11:05ID:???0641nobodyさん
04/07/06 11:08ID:???その程度の問題を自分で解決できないならプログラム組むのやめた方が良いね
とりあえずマニュアルのファイルシステム関数ページを読めよ
ttp://www.php.net/manual/ja/ref.filesystem.php
0642nobodyさん
04/07/06 11:46ID:???解決しました(^^
0643nobodyさん
04/07/06 12:04ID:Rny+MH6z<html>
<body>
<?php
print ("<a href = 'get.php?a=5'> Get</a>");
?>
</body>
</html>
▼get.php
<html>
<body>
<?= print($_GET['a']) ?>
</body>
</html>
上記のコードで、index.phpからget.phpへ移動すると、
ブラウザには「51」と表示されてしまいます。「5」と表示したかった
のですが、原因がわかりません。おわかりの方がいましたらご教授
お願いします。
0645nobodyさん
04/07/06 12:14ID:NBQAU1O/0646nobodyさん
04/07/06 12:15ID:NBQAU1O/0647nobodyさん
04/07/06 12:15ID:5MCxUUr8を
<?php print($_GET['a']) ?>
では?
0648nobodyさん
04/07/06 12:16ID:???質問の要旨とは関係ないけど、二重引用符と単一引用符を
入れ替えた方が良い。
どこに問題があるか見極めるには、静的な HTML を書いて、
get.php を呼びだしてみたりするとか。
とりあえず、index.php で生成される HTML を良く眺めることを勧める。
0649643
04/07/06 12:28ID:mpLQA1tZみなさん、レスどうもです。
<?php print($_GET['a']) ?>が正しいようでした。
>>648
二重引用符と単一引用符を入れ替えてみました。
ソースを見るとこちらのほうがよさそうですね(実はあまり意味がわかって
いませんが・・)
それにしても1時間くらい悩んでいたので助かりました。
ありがとうございました。
0650nobodyさん
04/07/06 13:12ID:???0651nobodyさん
04/07/06 13:13ID:???0652alvi
04/07/06 13:14ID:A6zHoUWtincludeされるファイル
function.php
と
実行する(function.phpをincludeさせる)ファイル
main.php
があるのですが、
万が一main.phpではなくfunction.phpにアクセスされた時にはfunction.phpがエラーを舶用に
htaccessは使わずにファイル名で判定できた筈だったのですが変数を忘れてしまいました。
function.phpをmain.phpに読み込んで$_SERVER["SCRIPT_NAME"]
とするとmain.phpになってしまいますが、これをfunction.phpと表示させる変数は何であるのか
教えて下さい。よろしくおねがいします。
0653nobodyさん
04/07/06 13:28ID:???<?="あいうえお"?>と<?php print "あいうえお"?>
は同じ結果が得られるわけだな。
0657nobodyさん
04/07/06 14:04ID:???<?=[var]?>は<?php echo[var]?>のエイリアス。
<?="あいうえお","かきくけこ"?>はできても
<?php print "あいうえお","かきくけこ"?>はできない
0658alvi
04/07/06 14:28ID:A6zHoUWtincludeするファイルがあり、そのincludeされるファイルをincludeするファイルのなかで使用する為に
includeされるファイルへ何を書くとそのincludeされるファイルのファイル名を取得できるのでしょうか?
>>656
今、外出する直前で確認出来ないのですが、__FILE__ですか?
phpinfoでは分かりませんでした。(include等は使っていない為)
0659nobodyさん
04/07/06 14:55ID:???こんな答え方をしている時点で、何も理解していない、理解する気もないって感じだな。
0661nobodyさん
04/07/06 15:31ID:???のだと想うのだが、そんな関数ありましたっけ?
0662nobodyさん
04/07/06 15:42ID:???HTMLタグの<TD>〜</TD>の中にPHP構文を入れるとエラー出るのか?
0663nobodyさん
04/07/06 15:43ID:???ぜんぜん簡単に書かれてないぞw
includeされた場合はmain.php、直接動かした場合はfunction.phpで切り分けできるでしょ?
何か問題でも
0665662
04/07/06 15:45ID:???0666nobodyさん
04/07/06 16:11ID:???計算結果が4になるんだがこれを4.00と表示したい
こんな時どうするか教えやがれぬるぽ
0667nobodyさん
04/07/06 16:21ID:???$値 = 4;
$桁 = 2;
echo number_format($値, $桁);
0669nobodyさん
04/07/06 16:30ID:???0670nobodyさん
04/07/06 16:35ID:???0671nobodyさん
04/07/06 17:18ID:???お前らがマニュアル引き係じゃぁ
と思っている輩が質問してる訳です
0672nobodyさん
04/07/06 17:22ID:???0675nobodyさん
04/07/06 18:24ID:???ob_start();
?>
<html>
<head>
<title>ログイン</title>
</head>
<body>
<h1 style="font-size:14pt;text-align:center;">
ログインtest
</h1>
<hr />
<form method="GET" action="index.php">
<table border="0" align="center">
<tr>
<th align="right">ユーザ名:</th>
<td>
<select name="id">
<?php
$db=mysql_connect("COMPUTER","root","root");
$rs=mysql_db_query("test_db","SELECT * FROM scheusr");
while($aryCol=mysql_fetch_array($rs,MYSQL_ASSOC)){
print("<option value='".$aryCol['id']."' ");
if(isset($id)){if($id==$aryCol['id']){print("selected");}}
print(">".$aryCol['nam']."</option>");
}
?>
</select>
</td>
</tr>
0676675
04/07/06 18:24ID:???<td>
<input type="password" name="passwd" size="10" />
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" name="sbm" value="ログイン" />
<input type="reset" value="取消" />
</td>
</tr>
</table>
</form>
<?php
if(isset($_GET['sbm'])){
print("if通過した");
$sql="SELECT * FROM scheusr WHERE id='".$id."' AND passwd='".
crypt($passwd,"ZZ")."'";
$rs=mysql_db_query("test_db",$sql);
if(mysql_num_rows($rs)==0){
print("<script language='JavaScript'>");
print("window.alert('パスワードが間違っています');");
print("</script>");
print("$rs");
}else{
$aryCol=mysql_fetch_array($rs,MYSQL_ASSOC);
header("Location: hello.php?id=".$id."&nam=".urlencode($aryCol['nam']));
}
}
print("</body></html>");
ob_end_flush();
?>
■ このスレッドは過去ログ倉庫に格納されています