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

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

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

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

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

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

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

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

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0521nobodyさん2010/03/04(木) 02:58:43ID:???
ん?
0522nobodyさん2010/03/04(木) 02:59:43ID:???
あ?
05235112010/03/04(木) 03:00:44ID:???
いやぁ・・・
>そうですか、データベースか.htaccessでフォルダ自体にアクセスできないようにするかしたほうがいいということですね。
これだけ見てBASIC認証の話してると思ったけど
よくよく考えてみたら
特定ディレクトリにログファイル集めてDrectoryMatchのことを言ったのかなぁと思って
0524nobodyさん2010/03/04(木) 03:16:11ID:???
logfile
public_html
  └index.php


public_html
  └index.php
  └.htaccess
  └logfile
0525nobodyさん2010/03/04(木) 09:37:38ID:???
>>498
レンサバが、DBへの外部からのアクセスを許しているなら、手元のPC上のDBクライアントから
レンサバに繋いでDBの操作も可能。

上が駄目でも、レンサバにtelnetなりSSHなりでアクセスでき、レンサバ側にDBクライアントも
乗っているなら、それを使うという手もある。

上記がどっちも駄目なら、DBアクセスする(PHPに限らず何らかの)コードをサーバ上に置いて、
そのコードを(CGIなり何なりで)起動させる。

これら以外は俺も知らない。
0526nobodyさん2010/03/04(木) 10:16:46ID:???
hogeってなんですか?
0527nobodyさん2010/03/04(木) 10:18:29ID:???
http://kmaebashi.com/programmer/hoge.html
0528nobodyさん2010/03/04(木) 10:38:17ID:???
<?php

mb_language("japanese");
mb_internal_encoding("UTF-8");
$to = "xxx@yyy.com";
$name = $_POST["name"];
$from = $_POST["mailaddress"];
$subject = $_POST["subject"];
$message = $_POST["message"];
$header = "From: " . mb_encode_mimeheader (mb_convert_encoding($name,"UTF-8","AUTO")) . "<" . $from . ">";

//入力チェック
if ($name == "") {$errMsg .= "名前が入力されていません。";}

if (mb_strlen($name) > 20) {$errMsg .= "名前は20文字以内で入力して下さい。";}
if ($from == "") {$errMsg .= "メールアドレスが入力されていません。";}
$ret = preg_match("/^[a-zA-Z0-9_\.\-]+?@[A-Za-z0-9_\.\-]+$/", $from);

if (!$ret) {$errMsg[] = "メールを正しい形式で入力して下さい。";}
if ($subject == "") {$errMsg .= "件名が入力されていません。";}

if ($message == "") { $errMsg .= "本文が入力されていません。";}
mb_send_mail ($to, $subject, $message, $header);
?>

メール送信の前にチェックをして未入力の項目があったら画面にエラーメッセージを表示し、
送信出来ないようにしたいのですが、何を追加したら良いのでしょうか?
0529nobodyさん2010/03/04(木) 10:49:47ID:???
$errMsgは配列なのか違うのかはっきりしろや
0530nobodyさん2010/03/04(木) 11:08:43ID:???
はじめてのプログラムがメールフォームかよ
0531nobodyさん2010/03/04(木) 12:31:00ID:???
スレタイ読め
0532nobodyさん2010/03/04(木) 12:42:44ID:???
スレタイ読めとか言っても読まないやつは後を絶たないし、それに答えるやつもいるし
もうこのスレの存在意義ないよ
0533nobodyさん2010/03/04(木) 12:55:01ID:???
正規表現滅茶苦茶だな
0534nobodyさん2010/03/04(木) 14:43:21ID:iGtVy898
MYSQL5とPHP5の環境で質問です。

写真とそのコメントを登録するアプリがあるとします。
更新時、必ずクエリの成功と画像登録の成功をセットで行いたいです。
1)コメントと画像を変更する時は、
 if($updateRS==1){?画像登録処理} //$updateRSはupdate文の返り値
 という流れで問題ないです。
2)コメントは変更しないけど画像だけ変更するとき、この場合はどうしたら良いんでしょう?

2)の場合、mysqlは更新前後で値の変化がない時はupdateの返り値が0なので、
if($updateRS==1){?画像登録処理}という流れができません。
値の変化を伴う場合、変化がない場合にも共通して使えるような
update〜画像登録の処理はどうしたら良いでしょうか?

自分で考えたのは、テーブルに適当なダミーカラムを持たせて、
UPDATE $table SET `dummyC` = time() とかすればとりあえず更新が常に発生するかと思ったんですが
そんなことのためにカラム作るの嫌だなと…
どうしたら良いか、ご意見お願いします。

if($updateRS==1)のチェックをしなきゃ良いんですけど、2)のケースの時に
クエリエラーで文章が変化ないのに写真だけ更新される問題が発生しかねないので避けたいです。
それともそんなの気にする必要ないんでしょうか?
0535nobodyさん2010/03/04(木) 14:46:10ID:???
phpの質問じゃないだろ
0536nobodyさん2010/03/04(木) 14:49:08ID:???
ん?よく読んでないけどなんで画像登録処理単体で実行しちゃだめなの?

>2)コメントは変更しないけど画像だけ変更するとき、この場合はどうしたら良いんでしょう?
>
>if($updateRS==1)のチェックをしなきゃ良いんですけど、2)のケースの時に
>クエリエラーで文章が変化ないのに写真だけ更新される問題が発生しかねないので避けたいです。

コメントは変更しないのに何のクエリを発行するの?
文章が変化なくて写真だけ更新されるなら2)の目的を達してるのでは?
05375362010/03/04(木) 15:03:12ID:iGtVy898
ありがとうございます

>>535
sql板で聞くかこちらで聞くか悩んだ末でした。ずれてたらすみません。

>>536
たしかに、コメントが変更されないとわかってればif($updateRS==1)のチェックせず
ストレートに画像登録単体ですれば良いんですが、
その場合コメントがdb登録済みコメントと同じことを確認する処理が必要になるので。。

とりあえず、コメントと画像が更新される前提としてif($updateRS==1)を用意して、
コメント変更がない場合にも柔軟に対応させたいんです。
「画像だけを変更する」「コメントだけを変更する」って機能にすればいいんですけどね…
実際にはコメントにあたるupdate対象のtextarea や inputが30個くらいあるので難しいです。
0538nobodyさん2010/03/04(木) 15:04:03ID:iGtVy898
あ、間違えた 上の名前欄は >>534です。
わかりにくい文章でごめんなさい
0539nobodyさん2010/03/04(木) 15:04:30ID:???
毎回コメント変更すればいいんじゃね
0540nobodyさん2010/03/04(木) 15:08:51ID:???
time()デリミタコメントで更新して、取り出す時分解すればいいんじゃないか?
普通は更新日時付ければいいものだけどな
0541nobodyさん2010/03/04(木) 16:01:07ID:iGtVy898
>>539
それはちょっとw
>>540
やっぱり更新日付いれますか…
mysqlのtimestampで設定してるのでムダになっちゃうんですけどね
みんなこういうのどうやってるのかなぁ、ありきたりな処理のはずなんだけど
0542nobodyさん2010/03/04(木) 16:05:12ID:???
トランザクション使え
0543nobodyさん2010/03/04(木) 16:12:54ID:???
>>537
普通にコメントを上書きすればいいんじゃね?
それが嫌なら、コメントを取得して比較して、同じだったら画像登録処理だけ、違ったらコメント更新と画像登録処理をやればいいのでは?
0544nobodyさん2010/03/04(木) 16:36:30ID:???
mysql_query() は DML なら True/False を返すみたいだから、
それで判断すればいいんじゃない?
PDOもexecuteは True/False を返すみたいだね。
どっちも使ったことないけど。。。
0545nobodyさん2010/03/04(木) 16:41:13ID:???
あ、UPDATEならTrue/Falseなのは間違いじゃないですけど、
DMLてのは間違いでした。すんません。
05465412010/03/04(木) 17:01:20ID:iGtVy898
どうも皆さんすみません
なんか、解決じゃないですがアプローチを変えることにしました
皆さんのアドバイス見てるうちに問題の切り分けができてきました。ほんとにありがとう。

以下雑記。。
今までpearのadodbの$db->execute("update〜〜")でやってて、それならupdateでも
クエリ成功したら1が返って来てたんですが、zendFWのupdateメソッドに変更したら
行数しか返ってこなくてif($rs==1)の確認ができなくなってたわけです。
問題はFWの知識不足に行き着きそうなので、そっちで考えます。ありがとうございました。
0547nobodyさん2010/03/04(木) 17:06:50ID:???
失敗したら例外投げるんじゃね?
0548nobodyさん2010/03/04(木) 17:18:27ID:???
うんこ漏れそうなんですが・・・
05495412010/03/04(木) 17:32:05ID:???
>>547
そうなんでしょうか? わざとエラー起こして検証してみます
ありがとう
0550nobodyさん2010/03/04(木) 17:52:18ID:???
>>548
質問ならID出してね
05515482010/03/04(木) 18:23:07ID:???
漏れたwwwwwwwwwwwwwwwwwwwwww
0552nobodyさん2010/03/04(木) 21:45:50ID:???
自治厨惨めでちゅう
0553nobodyさん2010/03/04(木) 22:18:10ID:Xd0cEYC5
アクセスログを取るPHPスクリプトを書いていてログファイルを一般ユーザーに閲覧してくないという
質問をしたものです。

あのあとPHPファイルとログファイルを置いてあるフォルダに .httacces ファイルを設置し

order allow,deny
deny from all

と設定することで無事ログファイルを非公開にすることが出来ました。

ところでログファイルを置いているフォルダにアクセスログを取るPHPスクリプトも同居させていますが
このファイルをサイトから include する分には問題無いんですね。非公開フォルダに置いてあるphpファイル
はもしかしたらインクルードできないのではと思っていましたが杞憂のようです。
0554nobodyさん2010/03/04(木) 22:35:25ID:???
もうちょっとWebサーバを学んだほうがいいよ
0555nobodyさん2010/03/05(金) 00:15:54ID:???
554はチンピラ
0556nobodyさん2010/03/05(金) 01:25:28ID:???
チンピラではないがよくわかってないのに知ったかっぽい書き方されるとイラッとくるのはわかる
口にはわざわざ出さないけどな(今出しちゃったけど)
0557nobodyさん2010/03/05(金) 01:26:04ID:???
require_onceについて質問なのですが、
/home/lib/にlib.phpとlib2.php
/home/www/にhtml.php
あるとしてhtml.phpに
require_once("../lib/lib.php");
require_once("../lib/lib2.php)";
と書いているのですが、lib.phpとlib2.phpがお互いに参照したくなったので
lib.phpにrequire_once("lib2.php");
lib2.phpにrequire_once("lib.php");
と書いても問題ないでしょうか?
0558nobodyさん2010/03/05(金) 01:35:35ID:???
>>557
>>1
0559nobodyさん2010/03/05(金) 05:59:48ID:8KOlP1UU
postfixで受信したら、phpを起動して実行するということをやりたいのですがうまくいきません。
aliasesには  hoge:"|/usr/bin/php /var/www/hogehoge.php"
と設定し、newaliasをしてあります。
/var/wwwにあるhogehoge.phpには
<?php
$pointer=fopen("./test.txt", "w+"); //ファイルを開きます
flock($pointer, LOCK_EX); //ファイルをロックします
$ntime = date("Y年n月j日h時i分s秒");
fputs($pointer, $ntime."\n");
flock($pointer, LOCK_UN); //ロックを解除します
fclose($pointer); //ファイルを閉じます
?>
と記述してあります。
コマンドラインからhogehoge.phpは正常に実行でき、test.txtにはタイムスタンプが出力されるのですが、hoge宛にメールを送ってもphpは実行されていません。
postfixのログには
postfix/local[28018]: 1EBB65F8269: to=<hoge@****>, relay=local, delay=0.08, delays=0.04/0.02/0/0.02, dsn=2.0.0, status=sent (delivered to command: /usr/bin/php /var/www/hogehoe.php)
とあるのでパイプ処理は通ってる気もするのですが。
なにか考えられる原因ってありますでしょうか?
0560nobodyさん2010/03/05(金) 06:02:58ID:???
>>559
postfixのログ、
status=sent (delivered to command: /usr/bin/php /var/www/hogehoe.php)
の最後hogehoe.phpとありますが、hogehoge.phpの間違いです。
0561nobodyさん2010/03/05(金) 06:51:16ID:???
DB に不正なデータが入っていなかを監視する必要があるのですが、
それを PHPUnit を使ってやっている、という方はいませんか?

自分でバッチ処理を書こうかとも思ったんですが、それでいけるんなら
それでやってみたいなと・・・。

本来の使い方とは違う気もしますが、運用の実績があれば聞いてみたいです。
よろしくお願いします。
0562nobodyさん2010/03/05(金) 07:05:12ID:???
>>559
実行時のカレントディレクトリにtext.txtができる
./test.txt を /var/www/test.txt にしてみるとか
0563nobodyさん2010/03/05(金) 08:42:39ID:oScRDulS
【OS名】FreeBSD
【PHPのバージョン】5.2.12
【質問内容】
文字列をASCII値に変換したいと思っています。
1文字ならord()で可能だと思うのですが、複数文字からなる文字列の場合はバラバラにして各文字を変換するしかないのでしょうか?
適切な関数または良い方法があったらお教えください。
よろしくお願いします。
0564nobodyさん2010/03/05(金) 09:47:15ID:???
>>563
無い。それがベスト
0565nobodyさん2010/03/05(金) 10:16:24ID:???
>>563
unpack('C*', $str)
0566nobodyさん2010/03/05(金) 10:16:56ID:???
print_r ( unpack("c*","abcd"));
0567nobodyさん2010/03/05(金) 11:29:22ID:oScRDulS
>>564>>565>>566
ありがとうございます!
うまくいきました!!
0568nobodyさん2010/03/05(金) 11:59:02ID:nN2jzBk7
WebクリエイティブのためのPHPサンプルブック(マイコミ)という本を買って、そのCDからサンプルをダウンロードし「001」の「input.html」を実行し「送信」ボタンを押しました。
するとブラウザに、「
90){ $err.="年齢が適切な値ではありません\n"; }; if(!ereg("^[0-9]{3}$",$_POST['zip1'])){$err.="郵便番号(前半)が適切ではありません\n";} 〜 header("Location: thanks.html"); exit; }
」、と「formmail.php」の内容が途中から全て表示されて意図した動作になりませんでした。
コレはどういう事で、また、どのようにすれば解決するのかを教えて頂きたいです。
色々と試しましたが解決しませんでした。

何か自分のPHP、Apacheの設定がおかしいのでしょうか?
それとも、このサンプルのコードがおかしいのでしょうか?

サンプルのソースは100行以上あるのでどう説明したらいいのか分かりませんが、ブラウザに表示される前後のコードを書いておきます。

<?php

.......

if($_POST['age']<10 || $_POST['age']>90){
$err.="年齢が適切な値ではありません\n";
};
if(!ereg("^[0-9]{3}$",$_POST['zip1'])){$err.="郵便番号(前半)が適切ではありません\n";}

........

header("Location: thanks.html");
exit;
} //ここで最後です。 ZFで学んだ通り、?>は省略しております。省略しなくても結果は同じでした。
05695682010/03/05(金) 12:01:29ID:nN2jzBk7
書き忘れましたが、PHPとApacheのバージョンは最新版です
0570nobodyさん2010/03/05(金) 12:08:47ID:???
eregは非推奨で将来消えるから使うな
0571nobodyさん2010/03/05(金) 12:14:35ID:???
コメントアウトしてあるけど、省略しているというのはショートタグなのか?
0572nobodyさん2010/03/05(金) 12:15:52ID:???
>>568
ファイルうp
05735682010/03/05(金) 12:16:54ID:???
すみません、解決しました
大馬鹿でした

そのままサンプルをクリックしたのでURIが「file:///C:/Apache2.2/htdocs/Mycomi/01/formmail/input.html」のようになっておりました
http://localhost/Mycomi/01/formmail/input.html」と自分で打ち直したらちゃんと動作しました
ご迷惑おかけしました
0574nobodyさん2010/03/05(金) 12:21:43ID:???
せっかく本買ったならちゃんと最初から読めよw
0575nobodyさん2010/03/05(金) 12:23:32ID:???
書籍でログといった複数のプロセスに読み書きされるファイルはflock関数を使って
ロックしてから読み書きすると言いと書かれていました。

既に他プロセスによってロックがかけられていればflock関数は失敗するので
そのときはsleep(1)で1秒待ってから再度ロックをチャレンジする。そういうのを3回くらい
繰り返すプログラムが書籍に紹介されていました。

でもこのスレではなぜかflock関数は忌み嫌われている印象を受けます。
便利な関数だと思うのですがこのスレでの受けが良くないのはなぜでしょうか?
0576nobodyさん2010/03/05(金) 12:25:29ID:???
スレタイを読まないから
0577nobodyさん2010/03/05(金) 12:25:59ID:???
apache&PHP環境をセットアップ後に、付属CDから直接PHPファイルを開いて動かないというのは稀によくある
0578nobodyさん2010/03/05(金) 12:26:09ID:???
http://fumidai.net/
これってどうやってるの
05795682010/03/05(金) 12:26:09ID:???
>>574
もうしわけないです
ただ、このような事やサンプルの置き方は本には書かれておりませんでした
今まであまりにもサンプルをクリックしただけで動作するものに慣れていたので、パスがおかしいとか気が付きませんでした
自分の不注意でした、すみません
0580nobodyさん2010/03/05(金) 12:27:25ID:???
flockを使いたければ使えばいいよ
作るのも管理するのもあなたなのだから誰も止めやしない
05815682010/03/05(金) 12:27:58ID:???
>>577
まさに自分がそうでした
今まで全く知りませんでした
お恥ずかしい
0582nobodyさん2010/03/05(金) 12:28:37ID:???
>>577
どこにコピーして何のソフトを起動してアドレスバーにどう記述してくださいって
まともな入門書なら書いてあると思うがw
0583nobodyさん2010/03/05(金) 12:36:38ID:???
>>582
webプログラム素人は仕方ない
EXE同様に、ダブルクリックで動かないプログラムはバグってると思うんだぜ?
FTPでダウンロードしたローカルにあるファイルを手直ししただけで、
ブラウザで確認したら反映されてないと騒ぐし素人は見ていて飽きないよ
0584nobodyさん2010/03/05(金) 14:16:38ID:Q1wicMuL
【OS名】Windows Vista Home Edition
【PHPのバージョン】php5.3.0
【質問内容】
外部exeファイルを実行して値を取得できればと考えています。
例えばhoge.exeというテキスト変換プログラムをphpから実行して出力される値を取得したくhoge.exe -t "文字列"というコマンドを実行したいのですが、以下関数を使って
$res=system(`./hoge.exe -t ¥"123456¥"`, $ret);
$res=passthru(`./hoge.exe -t ¥"123456¥"`, $ret);
としてみましたが、Cannot execute a blank commandというエラーが表示されて悩んでいます。
一応DOS窓上でコマンドを叩くと変換された文字列が表示されるのですがphpだと方法が分からず困っております。
よろしくお願いいたします。
0585nobodyさん2010/03/05(金) 14:18:46ID:???
`→"
0586nobodyさん2010/03/05(金) 14:51:19ID:aBGtSP20
こんな会員サイト作りたいんです。

アドレスが●●●を含むリンクをクリックした会員にポイントを付与する

これってPHP学べばできますかね?
どうやればできますかね?
0587nobodyさん2010/03/05(金) 14:54:52ID:???
それだとクリック数を集計するサーバを経由させるリンクの張り方しないと無理っぽいが
0588nobodyさん2010/03/05(金) 15:04:52ID:???
>>586
出来ます。
データベース+PHPです。
05895842010/03/05(金) 15:05:13ID:Q1wicMuL
>>585
有難うございます。「`」から「"」に変えてみたところCannot execute a blank commandのエラーは無くなりました。
結果system関数は空を返しましたが、passthruは文字を返してくれました。

ただ新たな問題としてDOS上で叩いたコマンドは10文字以上の文字列を返すのに
php上でpassthruを使ってexeファイルを実行すると1文字しか返さないんですよねぇ…

0590nobodyさん2010/03/05(金) 15:32:04ID:fG5LjHc7
すみません。
 $hoge = ($hoge < 1)? 1 : $hoge; この ? と : なんですけど、
意味が分かりません。ググッテもこういう書き方の説明がありません。
?と:はどういう意味があるのでしょうか。
0591nobodyさん2010/03/05(金) 15:34:28ID:???
>>590
三項演算子

PHP: 比較演算子 - Manual
http://php.net/manual/ja/language.operators.comparison.php
05925902010/03/05(金) 15:41:13ID:fG5LjHc7
>>591
ありがとうございます。てことは、この式は↓こういうことですか?

if($hoge<1){
$hoge = 1;
}else{
$hoge = $hoge;
}

(else以降は不要だと思いすが、>>590の式の分解として記述しました)
0593nobodyさん2010/03/05(金) 15:45:17ID:???
>>592
あってる

というかそれくらいは自分で試そうよ
05945902010/03/05(金) 15:48:06ID:???
ありがとうございました。
0595nobodyさん2010/03/05(金) 18:46:11ID:NJlwtSqm
【OS名】CentOS 5.4
【PHPのバージョン】php5.12
【連携ソフトウェア】ありません
headerで
header("test: test1");
という内容で返しているんですが、test1の部分には何か文字数制限などあるんでしょうか?
PHPとしては特に制限はないように見えるのですが、そういった制限があるのでしたらどういった制限があるのか教えていただけると助かります。
0596nobodyさん2010/03/05(金) 18:46:42ID:???
5.3が最新なのに5.12になんてないと言ったら何度(ry
0597nobodyさん2010/03/05(金) 18:48:00ID:p18my2+g
【OS名】WinXP SP3
【PHPのバージョン】PHP Version 5.2.11
【連携ソフトウェア】MySQL 5.0.77 + phpMyAdmin
【質問内容】
RSSの取得にSimplePie(1.1.3)と言うパーサを使っています。
http://simplepie.org/
CDATAセクションの拾い方がわからず困っています。
ご存知の方がいらしたら教えてください。
0598nobodyさん2010/03/05(金) 18:48:40ID:???
バージョン厨はいつもはりついてるのな
05995952010/03/05(金) 18:53:20ID:NJlwtSqm
>>596
すいません。
バージョンは5.1.6でした。
最新のバージョンを使えればよいのですが、仕様要件で5.1.6で固定されておりますのでご理解いただければと思います。
0600nobodyさん2010/03/05(金) 21:07:15ID:???
>>562
ビンゴでした。上手くphpが実行されるようになりました。
ありがとうございました。
0601nobodyさん2010/03/05(金) 21:58:43ID:???
Smartyのoutputfilterで文字コードをUTF-8からSJISに変換する処理を入れています。

こんな風に
$smarty->register_outputfilter("filterSjis");

function filterSjis($buff, &$smarty) {
return mb_convert_encoding($buff,"SJIS-win","UTF-8");
}

ブラウザで表示させると頭に「?」が入ってるんだけどこれはなぜでしょうか?

0602nobodyさん2010/03/05(金) 22:09:26ID:???
なにか予想外の事態が生じたら exit() でPHPコードを終了するようにプログラムを組みました。

実際その予想外の事態が生じてPHPコードは正しく終了したのですがなぜかそのPHPスクリプトを
呼び出した部分から下のhtmlコードがまるっきし出力されなくなってしまいました。
exit() はPHPだけでなくHTMLの出力をも中止させてしまうようです。

そうではなくて現在実行しているPHPスクリプトだけを中断し、残りのHTMLは問題なく出力させるには
どういうコードを書けばいいでしょうか?
0603nobodyさん2010/03/05(金) 22:10:52ID:???
あ、自己解決しました
06046012010/03/05(金) 22:49:32ID:???
>>601=>>602=>>603です
お騒がせしました
0605nobodyさん2010/03/05(金) 23:24:07ID:???
スレタイもよめない上に解決方法も書かないとは
06066012010/03/05(金) 23:29:22ID:???
すいません、私は>>602ではありませんでした
お騒がせしました
0607nobodyさん2010/03/06(土) 10:13:13ID:???
話にならないな、コイツ
0608nobodyさん2010/03/06(土) 10:14:31ID:???
しかもコイツ、マルチじゃねぇか
人に聞いて解決してるのに自己解決とかぬかしてやがる
0609nobodyさん2010/03/06(土) 10:50:26ID:6YHfBKj/
条件分岐で質問です。 

if文とswith文以外のもので戸惑っています。
1番の意味は2番と同じでしょうか?

1番 $act = $act == 'index' ? 'read' : $act;

2番 if ($act == 'index') { $act = 'read' : $act};


If以外の条件分岐の説明を検索してもなかなか見つからず、
本にもif文しか載っていないものが多く、どうしたものかと。
0610nobodyさん2010/03/06(土) 10:50:50ID:???
>>608
シネクズ
0611nobodyさん2010/03/06(土) 10:59:03ID:???
>>609
>>591
0612nobodyさん2010/03/06(土) 11:03:21ID:6YHfBKj/
>>611

ありがとうございます! 三項演算子というのですね。
0613nobodyさん2010/03/06(土) 14:08:10ID:8pehZnIZ
【OS名】freeBSD
【PHPのバージョン】php5.2.11
【連携ソフトウェア】Apache/1.3.42
【質問内容】
A>B>Cという遷移をするところで、CにPOSTが来ないときがあり、その時に$_SERVERのdumpをしてみたら、以下のような所がありました。
["REQUEST_METHOD"]=>

string(102) "id=9&command=81&quantity[1]=0&quantity[2]=0&quantity[3]=0&quantity%5B4%5D=0&quantity%5POST"


このPOSTの前の文字列は、AでPOSTされるべきフォーム達で、Bでは出力していないはずなので、Cには来るはずがないんです。
似たケースに遭遇し、解決した方はおられないでしょうか
0614nobodyさん2010/03/06(土) 14:18:51ID:???
エスパーさん出番ですよ
0615nobodyさん2010/03/06(土) 14:33:18ID:f6Vbrv2v
【OS名】solaris9
【PHPのバージョン】5.2.9(ソースSJIS、zend mb有り)
【質問内容】
セッションスタートした画面で、
$rec[0-9999行][列名(20列)]に、平均20文字程度の文字
という配列を
$_SESSION[hoge_Table](仮称)に代入して、headerで画面遷移すると、
セッションがすべて吹っ飛びました。(全部unset)
$rec[0-2999行][列名(20列)]に、平均20文字程度の文字
という配列ならOKでした。
9999行と2999行の違いだけですが、どこにも書いてありません。
目盛りはデフォルトの128MBで、上記9999行でもCSVで5MB程度しか
有りません。
0616nobodyさん2010/03/06(土) 14:35:04ID:???
>>615
マニュアルは読んだ?
0617nobodyさん2010/03/06(土) 14:36:28ID:f6Vbrv2v
>>616
どの辺を読めばよいのでしょうか?キーワードだけでも!!
0618nobodyさん2010/03/06(土) 21:43:07ID:???
セッションにそんだけ入れようとするのも、5MB程度というという感覚も驚きなのだが世代の違いというものなんだろうか・・・
とりあえず設計からやり直した方がいいんでね・・・
0619nobodyさん2010/03/06(土) 22:01:31ID:???
だよねー
DBかファイル使った法がいいよねー
0620nobodyさん2010/03/06(土) 23:12:21ID:???
セッション変数って魔法みたいだよね
0621nobodyさん2010/03/06(土) 23:49:42ID:???
最近マンションにすんでるよ
■ このスレッドは過去ログ倉庫に格納されています