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

【PHP】下らねぇ質問はID出して書き込みやがれ 84

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2009/04/27(月) 21:39:11ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 83
http://pc11.2ch.net/test/read.cgi/php/1238958898/

◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】

◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)

◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0484nobodyさん2009/05/20(水) 16:35:18ID:???
>>482
SELinuxは?
っていうかapacheのログに何か出てたりしないの?
0485nobodyさん2009/05/20(水) 16:54:07ID:???
apacheのログの見方は
apache/logs/error.log だよ
0486nobodyさん2009/05/20(水) 17:28:27ID:???
それは設定次第だろハゲ。
0487nobodyさん2009/05/20(水) 17:30:25ID:FO/+N7r7
>>483
はい、PHPを入れ直した後、eAcceleratorも再インストールしました。
PHPのバージョンアップ後、PHPのページだけ、アクセスが増加する時間帯になると重たくなると言われたので
もしかしたら5.2.9は評判がよくないのか、なんて思ったりしたのですが・・・
0488nobodyさん2009/05/20(水) 17:52:11ID:mk8mjF0l
userをテキストボックスで、docomo.ne.jpをプルダウンでsubmitを押すと
user@docomo.ne.jpとしてMySQLにインサートし、その後ブラウザに表示
させるような事はPHPで可能でしょうか?
user、docomo.ne.jpをそれぞれテキストボックスでsubmitしてインサートした
後に表示させる事はできたんですけど・・。

0489nobodyさん2009/05/20(水) 18:01:08ID:???
>>487
何だろうなぁ。5.2.9が重いとは聞いたことないが・・。

>>488
出来る。
<input type="text" name="host" value="">@
<select name="domain">
<option value="docomo.ne.jp">docomo.ne.jp</option>
</select>
あとは分かるな?
0490nobodyさん2009/05/20(水) 18:15:43ID:mk8mjF0l
>>489
あ、出来た。有難う御座います。
、というかなぜこんな事で2時間唸ってたんだと思うと恥ずかしくなりました。
0491nobodyさん2009/05/20(水) 23:11:32ID:???
>487
PHPやeAccの性能問題のほかに、PHP側の仕様変更/バグ修正によってコードに何らかの不具合が生まれた可能性もある。
俺なら実行時間のプロファイルを、いったんeAccを外した状態で取る。
人間が体感できるほどの差なら、5.2.6で検証するまでもなく、5.2.9の実行結果で明らかに時間のかかってる処理が見つかると思う。
0492nobodyさん2009/05/20(水) 23:25:46ID:???
>>482
とりあえず、考え方を変えて、
httpd.confのDirectoryをさ
例えば、
/var/www/htdocs
としてやって、htmlやPHPのルートを設定するじゃない。
んで、/var/www/libとか適当なディレクトリを作ってやって、
そこにincludeしたいライブラリとかを設置してやって
ついでに、phpのinclude_pathに、/var/www/libを設定してやるっていうのだと
ダメなの?
0493nobodyさん2009/05/21(木) 00:18:09ID:M2R0F+Cl
よくこちらのレスを利用しているものですが、
この写真に写っている果物は何ですか?
芸能人のブログの一部のものなのですが、
何の果物を撮ったか書いていないので分かりません。
ご教示お願いします。

http://stat.ameba.jp/user_images/20090520/15/hoshino-mari/7f/22/j/o0640048010183731596.jpg
0494nobodyさん2009/05/21(木) 00:19:32ID:M2R0F+Cl
直リンクで表示されようとすると駄目みたいです。
申し訳ありませんが、URLをコピーしてからアクセスして頂けませんでしょうか?

たびたびすみません。

ちなみに、本ページは、ここです。
http://ameblo.jp/hoshino-mari/
0495453,4562009/05/21(木) 00:26:29ID:dWSTP/J8
>>484-485
レス遅れてすみません

エラーログは以下です
[Wed May 20 07:40:28 2009] [error] [client 192.168.0.7] PHP Warning: include(config.inc.php)
[<a href='function.include'>function.include</a>]: failed to open stream:
No such file or directory in /var/www/html/hoge.php on line 2
[Wed May 20 07:40:28 2009] [error] [client 192.168.0.7] PHP Warning: include() [<a href='function.include'>function.include</a>]
: Failed opening 'config.inc.php' for inclusion (include_path='.:/php/includes:/usr/lib/php/pear:/var/www/php_libs:
/var/www/php_libs/Smarty/libs:/var/www/php_libs/config:/var/www/html:/var/www/html/test12345')
in /var/www/html/hoge.php on line 2

動かしてるhoge.phpは以下です
<?php
include(config.inc.php);
echo _HOGE_VAR;//inc.phpで定義されてる定数
?>

config.inc.phpを/var/www/html/test12345に置いたら動いて
/var/www/php_libs/configに置いたら動きません(上のエラーが出ます

/www関連のファイルは
/var/www/php_libs/config/config.inc.php と
/var/www/html/hoge.php しか存在していない状況でテストしてるんですがエラーが出てしまいます
0496nobodyさん2009/05/21(木) 00:30:25ID:???
include("./config.inc.php");
0497nobodyさん2009/05/21(木) 00:37:43ID:???
>>495
failed to open stream を日本語に訳せ
0498nobodyさん2009/05/21(木) 01:06:13ID:???
読み込み失敗
0499453,4562009/05/21(木) 01:17:40ID:dWSTP/J8
>>496
ありがとうございます。それを今試してみましたが、ダメでした
hoge.phpと同一ディレクトリにあるconfig.inc.phpを読み込むという意味でいいでしょうか?
実際にconfig.inc.phpがあるのは別のディレクトリです (/var/www/php_libs/config/config.inc.php)

>>497
読み込みに失敗したってことですよね?
Failed opening 'config.inc.php' for inclusion… はインクルードの設定のパスの中では
config.inc.phpは読み込めなかったって意味で、つまり指定したパスのなかに含まれてないということですよね?
実際にはあるんです…(/var/www/php_libs/config/config.inc.php)
./htmlよりも上位のパスでのphpの配置を許さない、プログラムを動かさないという指定がlinuxにはあるんでしょうか?
0500453,4562009/05/21(木) 01:50:13ID:???
今まで回答くれた方ありがとうございました、解決しました
対象のパスに含まれるディレクトリの権限設定が間違ってました
しょうもない理由でしたが勉強になりました 本当にありがとう
0501nobodyさん2009/05/21(木) 01:51:10ID:???
>>499

config.inc.phpを/var/www/html/test12345に置いたら動いて
/var/www/php_libs/configに置いたら動きません(上のエラーが出ます

この二つのディレクトリ、もしくはその配下に作られたファイルの
アクセス権限に違いはない?
05025012009/05/21(木) 01:53:51ID:???
ぐはww遅かったかwww
0503453,4562009/05/21(木) 02:10:17ID:???
>>502
ほんとすみませんw でも助かりました
ファイルそのもののアクセス権限しか見てなかったです
ありがとうございます!
0504nobodyさん2009/05/21(木) 19:00:49ID:M2R0F+Cl
>>493>>494です。

スレ違いで申し訳ないのですが、何とかご回答頂けないでしょうか?
前の席のものが気になってしょうがないと言っていて、私の方もちょっと困っています。
0505nobodyさん2009/05/21(木) 20:24:56ID:???
園芸板行って来いよ。スレ違いってレベルじゃねーぞ。
0506nobodyさん2009/05/21(木) 20:49:40ID:M2R0F+Cl
お返事どうもありがとうございます。
レスがつかないので心配していました。
すみません。その園芸板ってどこでしょうか?
そこの方が適切であれば、そちらでお聞きしたいと思います。
0507nobodyさん2009/05/21(木) 20:55:56ID:M2R0F+Cl
何度もすみません。昨日貼り付けたURLですが、ブログが更新されていたので、
ページの写真が変わってしまいました。大変失礼しました。

こちらのページに貼ってある写真にある果物の名前です。
甘酸っぱくて美味しいって書いてあるけど、名前が書いていない・・・。

http://ameblo.jp/hoshino-mari/page-2.html#main
0508nobodyさん2009/05/21(木) 21:19:39ID:3E8Yd+C8
PHPでブログ作りたいのですが
ログイン機能
記事編集
画像アップロード
必要なPEARはなんでしょうか?
0509nobodyさん2009/05/21(木) 21:37:18ID:???
>>508
その単位でpearを探すのは大変。(いっぱいある)
それぞれについてどんな機能が欲しいかを決めてからのほうがいいよ。
0510nobodyさん2009/05/21(木) 21:38:34ID:???
>>505 害基地だから触るな
0511nobodyさん2009/05/21(木) 21:50:04ID:???
Pearは中途半端だからいらない
勉強目的なら自作でやってみ 仕事ならZF
0512nobodyさん2009/05/21(木) 21:55:31ID:???
>>508
正直そのどれもpear要らない
0513nobodyさん2009/05/21(木) 22:24:42ID:A/e/PApt
>>508
Auth ,HTMLQuickform, peager, pearDB2, かなぁ・・・
これにSmartyをつかってぐぐっと大人っぽくなるかも(~'.'~)
0514nobodyさん2009/05/21(木) 23:09:31ID:3E8Yd+C8
>>509-513
皆さんありがとうございます。
勉強目的なので自分で作ってみます!
またよろしくお願いします
0515nobodyさん2009/05/22(金) 03:02:07ID:???
【性技を】お隣は幼馴染で彼女な某魔法使い5【色々お試し中】
http://ex14.vip2ch.com/test/read.cgi/part4vip/1240398459/
0516nobodyさん2009/05/22(金) 03:20:16ID:f6PVhhZ1
お願いします。submitボタンが押されて処理開始までに、あるいは処理中の待ち時間を
指定する事はPHP単体で可能ですか?イメージとしては買い物サイトなどの決済処理で
少し砂時計が回る間を待つような感じで。
0517nobodyさん2009/05/22(金) 03:26:03ID:???
sleep
0518nobodyさん2009/05/22(金) 03:31:10ID:f6PVhhZ1
>>517
超即レス有り難うございます。。こんな関数もあったんですね。
ぐぐったんだけどワードが悪かったのかなかなか見当たらなかった。
早速試したところうまくいきました。
05194882009/05/22(金) 10:46:02ID:9hIwxjrZ
【0.php】
<?php
extract($_POST);
echo "
<form action =\"0.php\" method=\"post\">
<input type = \"text\" name = \"host\" size = \"20\">@
<select name =\"dimain\">
<option value=\"docomo.ne.jp\">docomo.ne.jp</option></select>
<input type = \"submit\" value = \"送信\">
</form>";
$meruado = "$host@$domain";//★変数$meruadoは user@docomo.ne.jp のような形式にする★
if($host == null){//★テキストボックスがnullならメッセ出して処理中断★
echo "入力してください";
exit();}
if($host <>''){//空じゃなければ実行
mysql_connect('xxx','xxx','xxx');
mysql_select_db('xxx');
$sql = "select * from xxx where xxx = '$meruado'";//登録済かどうかチェック
$result = mysql_query($sql);
$rows = mysql_num_rows($result);
if($rows == 0){//登録済でなければ処理開始
session_start();
$_SESSION['test01']=$meruado;
echo "$meruadoは登録可能です<br>";
echo "$meruadoを登録しますか?<a href=\"./1.php\">登録する</a>";//クリックで1.php(DB登録)へ
}else{//登録済ならメッセ出して処理中断
echo "$meruadoは登録済みです";
}}?>
05204882009/05/22(金) 10:47:28ID:9hIwxjrZ
【1.php】
<?php
session_start();
$meruado = $_SESSION['test01'];
〜SQLコネクト中略〜//INSERT文
header("Location: ./0.php");
session_unset();?>
------------------------------------------------------------------------------------------
488ですが、追加でお尋ねしたい事があります。
一応の動作はちゃんとしているようですがUndefined variableが以下のようにソースに★を
つけた箇所で発生します。

Undefined variable: host in 0.php on line 18
Undefined variable: domain in 0.php on line 18
Undefined variable: host in 0.php on line 19

php.iniに手を加えて隠す事は都合が悪いので、できればソースを見直したいのですが
このような場合はどのように書けば発生しないのでしょうか?
環境は Fedora 8 Apache2.2 php5.16 Mysql5 です。
色んなHPを参考に拙い知識で書きましたので、ソースはおかしいですがよろしくお願いします。
0521軟式PHP2009/05/22(金) 10:56:24ID:???
extract($_POST);
癖になる前にこれはやめれ。
register_global onと同じくセキュリティがザルになるぞ。

あとUndefinedは変数が定義されていないのに使ってるからだ。
$host = "";またはvar $host = "";とかで宣言してから使え。
0522nobodyさん2009/05/22(金) 10:58:06ID:???
varはないだろ
0523軟式PHP2009/05/22(金) 11:01:15ID:???
>>522
すまそ。素で間違った。
varは無視しとくれ。
05244882009/05/22(金) 11:07:58ID:9hIwxjrZ
>>523
$host = "";で解決しました。

>癖になる前にこれはやめれ

ご指摘ありがとうございます。確かにセキュリティ上良くない事は色んなHPで
よく書いてましたから、ある程度理解してはいましたが、今の知識じゃサンプル
からソースを弄って書くのが精一杯でしたがこれを機会に癖になる前に治します。
0525nobodyさん2009/05/22(金) 18:38:53ID:JSavhF6R
WINDOWSのAPACHEで動かしてたプログラムがあります。
内容は、mb_strlen()でフォームの文字数をカウントするものです。
あいうえお なら 10文字で数えられていたんですが、今回LINUXの環境で動かしてみたら15文字とカウントされました。
どうして? UTF8でカウントされたってことでしょうか?
この場合、どこの文字コードを変更したら良いんでしょうか。最終的には、ブラウザにはUTF8で出力したいと思っています。
05265252009/05/22(金) 18:40:41ID:JSavhF6R
書き忘れました
httpd.conf も php.iniも Windowsの設定を引き継いだので、どうしてこうなったのかわかりません
05275252009/05/22(金) 19:08:17ID:???
すみません、解決しました
質問自体かなり変なこと書いていました、失礼しました
0528nobodyさん2009/05/22(金) 19:28:51ID:???
どう解決したのさ?
0529nobodyさん2009/05/22(金) 20:10:49ID:z1xOHJCG
以下のようなコードを書いてSQLiteのデータベースの情報を得ようとしているのですが、
全く何も返してもらえません。

SQLiteのバージョンは3、PHPは5.2.6でWindows環境のphp.exeを使用しています。
接続もクエリ送信もできるのになぜか帰ってきません。
どなたか分かる方回答or誘導をよろしくお願いします。

try {
$dbh = new PDO('sqlite:../wn.db','', '');
} catch (PDOException $exception){
echo "MAKEING PDO:";
echo $exception->getMessage();
echo "\n";
exit();
}
$query = "select * from sqlite_master;";
$stmt = $dbh->prepare($query);
$stmt->execute();
$cols = array();
while ($cols = $stmt->fetch(PDO_FETCH_ASSOC)) {
var_dump($cols);
}
echo "Completed \n";

実行結果:
R:\>php sqlite.php
Completed
0530nobodyさん2009/05/22(金) 20:27:01ID:???
$query = "select * from sqlite_master";
0531nobodyさん2009/05/22(金) 20:27:37ID:???
try {
$dbh = new PDO('sqlite:../wn.db','', '');
$query = "select * from sqlite_master;";
$stmt = $dbh->prepare($query);
$stmt->execute();
$cols = array();
while ($cols = $stmt->fetch(PDO_FETCH_ASSOC)) {
var_dump($cols);
}
} catch (PDOException $exception){
echo "MAKEING PDO:";
echo $exception->getMessage();
echo "\n";
exit();
}
にすればいいんじゃね?
0532nobodyさん2009/05/22(金) 20:30:49ID:???
>>530
セミコロンの有無は関係ないみたいです・・・

>>531
catchでエラーは出ませんでした・・・。
.dbファイルもちゃんと存在しますし、おかしくならないはずなんですけど。。


どうでもいいですがMAKEINGって酷いですねorz
0533nobodyさん2009/05/22(金) 20:42:52ID:???
>>532
出力結果は?
0534nobodyさん2009/05/22(金) 20:45:19ID:???
>>533
何も出力されませんでした。
多分tryの中にエラーが無かったからだと思います。

ttp://selfkleptomaniac.org/archives/1083

ここにphpでwordnetを使用するソースがあったので試したところ、
ブログにある例のような出力結果が得られなかったので、原因はPHPではsqliteかdbにありそうです。
のでそちらを当たってみます。。
0535nobodyさん2009/05/22(金) 20:48:20ID:???
じゃ結果セットが0件なんじゃね?
0536nobodyさん2009/05/22(金) 20:57:16ID:???
データが空っぽ
0537nobodyさん2009/05/22(金) 21:07:52ID:???
>>529
PDOはデフォルトだとエラー吐かないのでエラーモードの設定を。
$dbh = new PDO('sqlite:../wn.db',null,null,array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
ついでにPDOStatementオブジェクトはforeachで回せるよ。
0538nobodyさん2009/05/22(金) 22:03:57ID:???
一般で配布されているdbは異常がなくて、結果もsqlite_masterテーブルには必ず内容があることが保証されてるんですよね。
だから空ってことはないと思うのですが。。。

>>537
の通りエラーモードを設定した後、わざとdbのパスを間違えて指定しても、エラーが何も出ませんでした。
こんなことってあるんですかね?
05395292009/05/22(金) 22:17:48ID:???
すいません、存在しない名前を指定したら勝手にDBが作られるらしいです。
勘違い申し訳ないです。
0540nobodyさん2009/05/22(金) 22:26:34ID:???
どっ
0541nobodyさん2009/05/22(金) 22:43:22ID:???
んまい
05425292009/05/22(金) 22:46:58ID:???
>>529のwhile中にあるfetchの引数「PDO_FETCH_ASSOC」を取ると値が取れるようになりました。
どうしてか分かりませんが、Webのコードを鵜呑みにコピペすると酷い目に遭いますね・・・orz

以上解決です。ありがとうございました。
0543nobodyさん2009/05/22(金) 23:00:03ID:???
>>542
もうみてないとおもうけど
PDO_FETCH_ASSOC
ではなくて
PDO::FETCH_ASSOC
だな。

PDOのconst。
05445292009/05/22(金) 23:05:03ID:???
>>543
だったみたいですね・・・
そのように変えたら何事も無く動作しました;;
0545nobodyさん2009/05/22(金) 23:08:21ID:JSavhF6R
お願いします。php5です。別ファイルの読み込みで失敗してます。

以下の場合、読み込み失敗します
require_once('../hoge.php'); //相対パス。実際にはファイルはある
require_once('/hoge.php');

以下の場合は、読み込み成功します
require_once('hoge.php'); //読み込むスクリプトと同じディレクトリの場合
require_once('hoge.php'); //php.iniのinclude_pathで指定されたパスにある場合

何が原因でしょうか? 相対パスでの読み込みを許さない設定などがあるんでしょうか?
hoge.phpやそれを含むディレクトリのパーミッションは、成功時も不成功時も同じです。
0546nobodyさん2009/05/22(金) 23:29:03ID:???
そのrequire_onceは、実際に叩いたスクリプトに書いてあるの?

index.phpを叩いたら、index.phpの置いてある場所からの相対を引くよ。
つまりindex.phpから、別の「nantoka.php」をrequireして、そのnantoka.phpのなかで
requireしたファイルは、nantoka.phpからの相対ではなくてindex.phpからの相対だよ。
05475452009/05/22(金) 23:59:17ID:???
>>546
ありがとうございました。
原因がわかりました、パスの問題ではなかったです。
読み込み対象のファイルが、hoge.phpとHoge.phpのように名前の大文字小文字が違ってました
Windowsでは大文字小文字の判別してなかったのに、Linuxではエラーになっていました
ほんとにお騒がせしました
0548nobodyさん2009/05/23(土) 02:46:08ID:JnoRZVY9
すみません、if文覚えたて厨です。
<?php
$namae = $_POST['namae'];
$kana = $_POST['kana'];
$mail = $_POST['mail'];
if($namae == ""){
echo "警告:名前空っぽ";
}
if($kana == ""){
echo "警告:カナ空っぽ";
}
if($mail == ""){
echo "警告:メール空っぽ";
}
echo "テスト"
?>
1つ前のhtmlの送信ボタンから各POST値を受けています。
この晒したphpファイルを確認画面として使いたいのですが前画面の
3項目(名前 ふりがな メアド)のうち、一つでも不備があったら次の
ステップに進ませないようにしたいのですがどうすればよいですか?
3項目が全部空っぽでもecho "テスト"の文字が出てるって事は警告が
出た後でも処理はスルーされて最後まで進むようだし、
echo "警告:名前空っぽ";
exit();}
とかににすれば全て空でもスルーはされないけど1つしか警告は出せません。
空っぽの項目を的確に警告が出せて、かつecho "テスト"まで進ませない
ような書き方を教えてくれませんか?
if文でなくても良いです。
0549nobodyさん2009/05/23(土) 03:23:22ID:???
>>548

echo "警告:カナ空っぽ";
}
if(!$mail || !$kana || !$namae ){//ここから挿入
exit;
}//ここまで挿入
echo "テスト"


これで進ませないことはできる。
0550nobodyさん2009/05/23(土) 03:27:54ID:???
>>548
セキュリティがまずいですね
0551nobodyさん2009/05/23(土) 08:10:08ID:xzc/N9L3
// http://example.com/a.php
function go(){
senddata="from=index";
url="b.php";
httpoj = new XMLHttpRequest();
httpoj.open("POST",url,true);
httpoj.onreadystatechange = function(){
if(httpoj.readyState==4){clipboardData.setData("Text",httpoj.responseText);alert(httpoj.responseText);process(data,mode);}
}
httpoj.send(senddata);
}

// http://example.com/b.php
<?php phpinfo();exit;?>

各ファイルの中身はこうで、a.phpからgo();を実行し、postでデータを転送しているつもりなのですが
b.phpのphpinfoを見ると
PHP Variables
_SERVER["REQUEST_METHOD"] POST
_SERVER["QUERY_STRING"] no value
_SERVER["argv"] Array()
_SERVER["argc"] 0
と、データが全く受け取れていないようです。

// http://example.com/c.php でjsを使わず
<form method="post" action="./b.php">
<input type="hidden" name="from" value="index" />
<input type="submit" value="hoge">
</form>
と、すると正常に処理出来ているのですが。
0552nobodyさん2009/05/23(土) 08:10:56ID:xzc/N9L3
サイトー企画の横取り丸のInetspyを見ると
POST http://example.com/b.php HTTP/1.1
Accept: image/gif, image/jpeg, image/pjpeg, application/x-ms-application, application/vnd.ms-xpsdocument,
application/xaml+xml, application/x-ms-xbap, application/x-shockwave-flash, application/vnd.ms-excel, application/msword, application/vnd.ms-powerpoint, application/x-silverlight, */*
Referer: http://example.com/c.php
Accept-Language: ja
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.5.21022; .NET CLR 1.1.4322; .NET CLR 3.5.30729; .NET CLR 3.0.30618; Sleipnir/2.8.5)
Host: hushi.x0.com
Content-Length: 93
Proxy-Connection: Keep-Alive
Pragma: no-cache

from=index


POST http://example.com/b.php HTTP/1.1
Accept: */*
Accept-Language: ja
Referer:http://example.com/a.php
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.5.21022; .NET CLR 1.1.4322; .NET CLR 3.5.30729; .NET CLR 3.0.30618; Sleipnir/2.8.5)
Host: hushi.x0.com
Content-Length: 10
Proxy-Connection: Keep-Alive
Pragma: no-cache

from=index

と、ちゃんと両方b.phpにpost出来ているようにしか見えないのですが。
原因と解決策を教えて下さい。よろしくお願いします
0553nobodyさん2009/05/23(土) 13:26:42ID:???
よくわからんがPHPとJavaScriptが混ざってねーか?

Ajaxを勉強しているっぽいのはわかるけど。
0554nobodyさん2009/05/23(土) 13:58:49ID:xzc/N9L3
えと、では>>551の一番上の
http://example.com/a.php は
http://example.com/a.html と置き換えていただいて結構です。
そしてjsはスクリプトタグで囲って
<script language="javascript">
function go(){
senddata="from=index";
url="b.php";
httpoj = new XMLHttpRequest();
httpoj.open("POST",url,true);
httpoj.onreadystatechange = function(){
if(httpoj.readyState==4){clipboardData.setData("Text",httpoj.responseText);alert(httpoj.responseText);process(data,mode);}
}
httpoj.send(senddata);
}
</script>
こんな感じです。

そう、ajaxに挑戦しています。
しかしpostでデータが全く送られない
厳密には、送ってはいるらしいが、受け取れてない様子なのです。

jsは正常に送信しているらしく、phpの受け取りに異常があると思ったので、phpスレに質問させて頂きました。
0555nobodyさん2009/05/23(土) 14:27:01ID:???
>548
<?php
function validate(){
 $err = array();
 if(!isset($_POST['namae']) || '' === $_POST['namae']){
  $err[]= "警告:名前空っぽ";
 }
 if(!isset($_POST['kana']) || '' === $_POST['kana']){
  $err[]= "警告:カナ空っぽ";
 }
 if(!isset($_POST['mail']) || '' === $_POST['mail']){
  $err[]= "警告:メール空っぽ";
 }
 return $err;
}

$errors = validate();
if(count($errors) > 0){
 foreach($errors as $eachError){
  echo $eachError . '<br />';
 }
} else{
 echo '問題なし';
}
0556nobodyさん2009/05/23(土) 18:23:01ID:???
>>554
httpoj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
httpoj.send(senddata);
0557nobodyさん2009/05/23(土) 19:16:48ID:6DL8AN4q
すみません、変な質問ですが、
自分が作ってるアプリで、GDを使ってサイズ変更+複製したら
error.logに Allowed memory size of 1234567890 bytes exhausted と出たので
php.iniのmemory_limitで上限値を上げました。
たかがGDでメモリが足りないなんてことになるのは普通なんでしょうか?
作り方が悪いんでしょうか?
最大、一度に7ファイル画像UPしてそれぞれGDするんですが…
0558nobodyさん2009/05/23(土) 19:37:43ID:???
1ファイルずつ変換し、変換が終わってファイルに書き出した時点で変数をunset()すれ。
BMPとして丸ごとデータを持ってるようなものなので、それなりにメモリは食う。
0559nobodyさん2009/05/23(土) 19:38:33ID:???
と思ったが1.2GBはあり得ない気もするな。
無限ループとかしてんじゃね?
0560nobodyさん2009/05/23(土) 20:35:33ID:???
vista + xdebug がクラッシュしまくりで使い物にならないんだけど、なんとかなりませんか?
イベントログにはxdebug.dllが原因でapacheがクラッシュしたと残ってる。
ステップ実行でも、通常のリクエストでも起こって、再現性はない。
zend_extension_ts でロードしてるけど extension=xdebug.dll でロードすれば
ステップ実行はできないけど安定するみたい。
xdebug.dllは、オフィシャルとactivestate(KomodoIDE用)のバイナリで試したけど、大差なかった。
誰かお助けを

vista sp1 x86, apache 2.2, php 5.2.6-5.2.9-2, xdebug 2.03-2.04
0561nobodyさん2009/05/23(土) 20:53:51ID:???
変数はnull代入がおぬぬめ
0562nobodyさん2009/05/23(土) 22:44:07ID:???
コメントするにはログインする必要がありますってよくありますが
どんな感じになってるんですか?
0563nobodyさん2009/05/23(土) 22:44:58ID:HvWc9rw9
ID忘れました
0564nobodyさん2009/05/23(土) 23:46:03ID:6DL8AN4q
>>558-559
ありがとうございました
0565nobodyさん2009/05/24(日) 02:59:12ID:???
>>562
ログインっていうのは基本的にセッションを使って行っています。
セッションというのはそのユーザがWebサイトに入ったときにWebサーバから発行されるもので、
色々な情報を保持することができます。
このセッションは、ユーザがブラウザを閉じたりすると無効になります。

ログインするときに入力したIDとパスワードで認証を完了すると、そのユーザに発行されるセッションには、
「IDパス認証済み」という情報が付与されます。

一方、ユーザしか見れないページには『「IDパス認証済み」というセッション情報があるかどうか』を検査するコードが存在し、
存在する場合にはユーザにページを見せるような構造になっています。

ユーザがログインに使ったIDとパスワードをそのまま使わせているダメなサーバもありますが、
主にこんな形でメンバー制サイトは運用されていると思います。
0566nobodyさん2009/05/24(日) 03:30:47ID:???
>このセッションは、ユーザがブラウザを閉じたりすると無効になります。
ならねーよ、馬鹿。
0567nobodyさん2009/05/24(日) 03:52:50ID:???
なるよ、馬鹿。
0568nobodyさん2009/05/24(日) 04:49:35ID:???
セッションはブラウザを閉じると自動的に消去されます。
0569nobodyさん2009/05/24(日) 05:02:48ID:???
そんなのセッションの有効期限をいつにするかによって違うでしょ。
0570nobodyさん2009/05/24(日) 05:19:52ID:1c4u+X3P
それはクッキー?
0571nobodyさん2009/05/24(日) 05:50:47ID:???
クッキーですね
0572nobodyさん2009/05/24(日) 10:52:54ID:???
ならないようにもできる、が正解。
クッキーの有効期限を指定しない場合はブラウザを落とすと消える。
つうか、実際にブラウザ閉じてもセッションが継続するサイトなんぞ山のようにあるだろ馬鹿。
0573nobodyさん2009/05/24(日) 13:52:15ID:???
残念ながらそれはクッキーといいます
0574nobodyさん2009/05/24(日) 14:13:45ID:???
>>556
何も変化ありませんでした。
phpinfoで見ると、ちゃんと
_SERVER["CONTENT_TYPE"] application/x-www-form-urlencoded
と送信されています。
0575nobodyさん2009/05/24(日) 15:38:23ID:???
恵子かわいい
05765752009/05/24(日) 15:39:39ID:???
ごめん誤爆した
0577nobodyさん2009/05/24(日) 19:13:01ID:???
携帯で画像をランダム表示したいのですが
どのようなスクリプトが使えるのでしょうか?
0578nobodyさん2009/05/24(日) 19:32:22ID:???
マルチ乙
0579nobodyさん2009/05/24(日) 20:20:37ID:luv0xO7F
mb_strcutの挙動について確認させて下さい。
切り出す開始位置の値によって最後の一文字が欠落してしまいますが、これは開始位置が
文字の途中(バイトシーケンス中)と重なってしまうことにより起こる仕様なのでしょうか。

// SJIS-WINでのmb_strcut
mb_internal_encoding('sjis-win');
$str = "12345678901234567890ー";

echo mb_strcut($str, 15). "\n";
// 出力: 8901234567890

echo mb_strcut($str, 10). "\n";
// 出力: 678901234567890ー

// UTF-8でも同様でした。
mb_internal_encoding('UTF-8');
echo mb_strcut(mb_convert_encoding($str, "UTF-8", "sjis-win"), 15). "\n";
// 出力: 678901234567890ー

echo mb_strcut(mb_convert_encoding($str, "UTF-8", "sjis-win"), 10). "\n";
// 出力: 45678901234567890

PHP 5.2.9-2、Windows Vista SP2
0580nobodyさん2009/05/25(月) 01:12:15ID:???
プログラム板のほうまでマルチしてたよ>>577
0581nobodyさん2009/05/25(月) 22:50:10ID:1PMYVgsN
すみません、質問させてください。
今、PHP5とmysql、phpMyAdmin、 CentOS5(不慣れ) でサイト作っています、そこでブラウザから以下の
クエリを実行したら mysql_affected_rowが-1を返します。
実行したクエリ> delete from `hoge` where `uId`=100 and `category`='foo'
が、phpMyAdminのクエリ画面で直接上記のクエリを実行すると、正しく削除実行されます。
どんな原因が考えられるでしょうか?
あと、このクエリのページでは、上のクエリの前にもう一つクエリ($sql_1)を実行してて、トランザクションさせようとしてます。

$DB -> Execute("BEGIN");//Pearのadodbを利用してクエリ
$sqlResult_1 = $DB -> Execute($sql_1);//これはちゃんと実行されます
if(!$sqlResult_1){
$DB -> Execute("ROLLBACK");
}
$DB -> Execute($deleteSql);//これが失敗します、$deleteSqlの中身が上記のものです
$deletedNum = mysql_affected_rows();
if($deletedNum != -1){
//成功した場合の処理。実行されません…
}
$DB -> Execute("COMMIT");//トランザクション本実行

変でしょうか? $DBで定義されてるユーザ情報、サーバ情報は共通で使っています。
よろしくお願いします
0582nobodyさん2009/05/25(月) 23:24:26ID:KRPzGQP0
ある程度初歩的なコーディングができるようにはなったのですが、ぐちゃぐちゃで汚いんです。
お手本になる、シンプルでエレガントなスクリプトあったら教えてください。
0583nobodyさん2009/05/25(月) 23:32:16ID:???
シンプルでエレガントなコードは概して参考に出来ない罠
■ このスレッドは過去ログ倉庫に格納されています