【PHP】下らねぇ質問はID出して書き込みやがれ 107
■ このスレッドは過去ログ倉庫に格納されています
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 105
http://hibari.2ch.net/test/read.cgi/php/1304064660/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0752nobodyさん
2011/06/26(日) 14:13:29.05ID:Yv8I1zOTwhile(1){
print2(file_put_contents("test.txt",date("H:i:s.u")."<br>\n",FILE_APPEND | LOCK_EX));
sleep(1);
}
としたら1分以上も動きつづけています。30秒で終わるのかと思ってた
0753nobodyさん
2011/06/26(日) 14:48:22.51ID:???while($i < 60){
$i++;
sleep(1);
}
0754nobodyさん
2011/06/26(日) 14:50:02.09ID:???0755nobodyさん
2011/06/26(日) 14:50:13.21ID:Yv8I1zOTphp自体の、タイムアウト秒数はどのように設定するのでしょうか
0757nobodyさん
2011/06/26(日) 15:42:22.22ID:W+AeykF5「はい」と答えた個数の合計を表示
それに応じたコメントを表示させたいのですが
まず、合計を表示させるところで生き詰まってます
<input type="radio" name="Q1" value="1">はい
<input type="radio" name="Q1" value="0">いいえ
<input type="radio" name="Q2" value="1">はい
<input type="radio" name="Q2" value="0">いいえ
これをpostでphpに送って結果を表示させたいのですが・・
色々やっても駄目でした
親切な方教えてください
0758nobodyさん
2011/06/26(日) 16:08:51.77ID:???0760nobodyさん
2011/06/26(日) 16:37:12.43ID:???親切な俺が教えてやるよ
<input type="radio" name="Q1" value="1">はい
<input type="radio" name="Q1" value="0">いいえ
<input type="radio" name="Q2" value="1">はい
<input type="radio" name="Q2" value="0">いいえ
<input type="text" name="count" value="">「はい」と答えた個数の合計を入力してください
0761nobodyさん
2011/06/26(日) 16:40:30.19ID:W+AeykF5駄目なソースは消してしまったので・・
if($_POST["Q1"])
{
if($_POST["1"]) {$1=1}
if($_POST["0"]) {$1=0}
}
と一問づつ設定して
最後にprint $1+$2+$3+・・・・
で合計を出すとこんな感じだったと思います
0762nobodyさん
2011/06/26(日) 16:43:56.92ID:W+AeykF5助かりました親切な方
できればphp側で合計を出せるようにしたいんです
0763nobodyさん
2011/06/26(日) 16:45:30.60ID:???ダメじゃなくて計算出来てるんじゃん?
ダメって言ってたのは何?
あと変数名に1は使えないと思う
あとダメなソースを消しちゃ勉強にならないと思う
0764nobodyさん
2011/06/26(日) 16:57:22.42ID:???http://www.php.net/manual/ja/language.variables.external.php
見て勉強してください
ここみて勉強したら分かるほどの低レベルすぎる質問で寸
0765nobodyさん
2011/06/26(日) 17:02:44.30ID:W+AeykF5それが、できてないんですよ
if文がうまく書けていないのか
エラーで表示されません
わかりました次はダメなソースは消しません
>>764
す、すいません
勉強してきま寸
0767nobodyさん
2011/06/26(日) 18:25:18.90ID:npr5oXlMObjectiveCが断トツに使いにくかった
0768nobodyさん
2011/06/26(日) 18:43:30.57ID:???それはたぶん、先に他の「オブジェクト指向」の言語習った為、じゃないかと思う。
ObjectC自体は面白い言語だよ。
0769nobodyさん
2011/06/26(日) 18:56:09.57ID:???0770 忍法帖【Lv=14,xxxPT】 【東電 72.7 %】
2011/06/26(日) 20:10:02.66ID:vOsyilAC例えば、ボクが
GET /foobar.htm HTTP/1.1
Host: example.com
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
を送りたいとして、その返事(HTMLデータ等)を取得したい。という感じです。
ないとしたら、やっぱりsocketにwriteするの自分で作るしかないのかな。
0771nobodyさん
2011/06/26(日) 20:13:05.40ID:3TwWQZaU【PHPのバージョン】5.3
【連携ソフトウェア】MySQL
【質問内容】opendirでfilesフォルダの中を開くと、filesフォルダの中身は数万個あるにも関わらず、70個程度しか開けていません。
どういった原因が考えられますか?
0773nobodyさん
2011/06/26(日) 20:25:42.40ID:???0774nobodyさん
2011/06/26(日) 20:28:52.45ID:1bpDkxSmhttp://localhost/b.phpに発行したクッキーを送ります
これをソケット通信で行っているサンプルが載っているサイトってありませんか?
0775nobodyさん
2011/06/26(日) 20:34:20.78ID:???0776nobodyさん
2011/06/26(日) 20:35:39.06ID:???悪いことしたいなら自分で勉強しろ
0777nobodyさん
2011/06/26(日) 20:48:06.47ID:???0778nobodyさん
2011/06/26(日) 20:52:15.32ID:???0782nobodyさん
2011/06/26(日) 22:25:14.04ID:yPaZokgHfunction addp($lst){//←ここ2
$lst->add(new A("その2"));
}
}
class B{
var $lst=array();
function add($newClass){
$this->lst[]=$newClass;
}
function Fire(){
$this->lst[0]->addp(&$this);//←ここ1
print_r($this->ls);
}
}
$c=new B()
$c->add(new A("その1"))
$c->Fire();
上記のようなコードで、$c->Fire();時に$Cのthis->lstにその1とその2を入れたいと思っています
矢印ここ1の箇所の"&$this"でクラスBの$lstを参照渡しして、クラスAで$lstに追加をしているのですが
"&$this"を記述しないで、ここ2の関数内でparent->lst->addみたく参照出来ないでしょうか
ここ1の箇所は何度も書く予定で、"$this->lst[0]->addp(&$this);"を出来れば"$this->lst[0]->addp();"こう、スマートに書きたいなと思いまして。
0783nobodyさん
2011/06/26(日) 22:28:14.58ID:???>矢印ここ1の箇所の"&$this"でクラスBの$lstを参照渡しして
$thisはBのインスタンスでBの$lstじゃないと思うけど
0787nobodyさん
2011/06/26(日) 22:50:05.81ID:???0788nobodyさん
2011/06/26(日) 22:51:05.15ID:???0789nobodyさん
2011/06/26(日) 22:58:56.39ID:???甘えるな
悪いことしたいなら自分で勉強しろ
↓
778 名前:nobodyさん[sage] 投稿日:2011/06/26(日) 20:52:15.32 ID:???
ソケット通信が悪いことと読み取ってしまうあなたの頭が超疑問
0791nobodyさん
2011/06/26(日) 23:06:24.30ID:yPaZokgHあっごめんなさい、クラスBの$lstを渡すとすれば
$this->lst[0]->addp(&$this->lst);//←ここ1
と、なりますね
となるとますます長くなるので
$this->lst[0]->addp();で済ます方法というのがあれば教えて欲しいです
0793nobodyさん
2011/06/27(月) 00:34:08.52ID:???0794nobodyさん
2011/06/27(月) 00:49:24.56ID:???0796nobodyさん
2011/06/27(月) 01:09:05.01ID:???$thisが付いてるとスマートじゃなくて$thisが付いてないとスマートじゃないというのが良く分からん
別に自身のインスタンス変数を引数で渡すというのは必要がある場合なら別におかしなことじゃないと思うが。
今回のはクラス間関係がないのでただ関数に渡してるのと同じ。
0797nobodyさん
2011/06/27(月) 01:09:34.85ID:???0798nobodyさん
2011/06/27(月) 02:11:14.83ID:???0799nobodyさん
2011/06/27(月) 04:22:17.34ID:???http://php.net/manual/ja/function.file-get-contents.php#example-1930
>>782
http://php.net/manual/ja/function.debug-backtrace.php
で出来る事は出来る
が、誤ったアプローチなので設計から見直した方がいい
コードから何をしたいのか汲み取れないので目的を書くべきだなー
0800nobodyさん
2011/06/27(月) 04:33:58.97ID:pkVc30mhfopenやファイル名の衝突回避、どこでserializeするのかどこでunserializeするのか、ファイルロックは適切か・・・
と悩むところが多いですが、phpの組み込み機能で手軽に設定を保存出来る機能はありませんでしょうか
$_SESSIONの全ユーザー共通版のような感じです
0801699
2011/06/27(月) 06:27:59.66ID:???http://www.php.net/manual/ja/function.sleep.php#95164
このコードを試してみたらそれっぽいことができました。
どうやらflushするときにバッファに充分な文字数が無いとダメみたいです
$buffer=str_repeat(".",1024);に変えるだけでうまく動かないので。。
0802nobodyさん
2011/06/27(月) 16:58:07.84ID:???間違っているところやもっとスマートな書き方があれば教えて頂きたいです。
<form action="goukei.php" method="post">
<?php
for($i=1;$i<6;$i++) {
print <<< EOF
<input type="radio" name="q{$i}" value="1">はい
<input type="radio" name="q{$i}" value="0">いいえ<br>\n
EOF;}
?>
<input type="submit" name="submit" value="登録">
</form>
<?php
if(isset($_POST["submit"])) {
$errors = array();
for($i=1; $i<6; $i++) {
if(!isset($_POST["q{$i}"])) {
$errors[$i] = $i . "番が選択されていません。" . PHP_EOL;
}
}
if(!count($errors)) {
$sum = 0;
for($i=1; $i<6; $i++) {
$sum += $_POST["q$i"];
}
echo '合計:' . $sum;
}
foreach ($errors as $error) {
echo $error . "<br>";
}
}
?>
0804802
2011/06/27(月) 17:05:41.17ID:xqyiNAlq<form action="goukei.php" method="post">
<?php
for($i=1;$i<6;$i++) {
print <<< EOF
<input type="radio" name="q{$i}" value="1">はい
<input type="radio" name="q{$i}" value="0">いいえ<br>\n
EOF;}
?>
<input type="submit" name="submit" value="登録">
</form>
<?php
if(isset($_POST["submit"])) {
$errors = array();
for($i=1; $i<6; $i++) {
if(!isset($_POST["q{$i}"])) {
$errors[$i] = $i . "番目が選択されていません。" . PHP_EOL;
}
}
if(!count($errors)) {
$sum = 0;
for($i=1; $i<6; $i++) {
$sum += $_POST["q$i"];
}
echo '合計:' . $sum;
}
foreach ($errors as $error) {
echo $error . "<br>";
}
}
?>
0805nobodyさん
2011/06/27(月) 17:31:42.80ID:lGcvt27/return "bbbb";
}
$hoge = 'aaabbbccc';
$hoge = preg_replace('/aaa(.*)ccc/', $a='\\1',$a(), $hoge);
これを実行すると\1なんていう関数はないと言われますが、
bbbを呼び出して、bbbbという結果が返ってくるようにするには
どうしたらいいでしょうか?
0806805
2011/06/27(月) 17:38:00.48ID:???0807。 ◆oDupeixhZv52
2011/06/27(月) 17:56:11.20ID:???$hoge = preg_replace('/aaa(.*)ccc/e', "$1()" , $hoge);
0808nobodyさん
2011/06/27(月) 18:39:32.84ID:???#1
<?php
$TOI = Array(1=>"問題1",2=>"問題2",3=>"問題3");
if($_POST['CMD'] == "送信")
{
A_disp();
}
else
{
Q_disp();
};
function Q_disp()
{
global $TOI;
$HTML = "<form method='POST'>\n<table border='1'>\n";
foreach($TOI as $KEY => $RECORD)
{
$TR = <<< DATA
<tr>
<td>{$RECORD}</td>
<td>はい<input type="radio" name="Q[{$KEY}]" value="1"></td>
<td>いいえ<input type="radio" name="Q[{$KEY}]" value="0"></td>
</tr>
DATA;
$HTML .= $TR;
};
$HTML .= "\n</table>\n<input type='submit' name='CMD' value='送信'>\n</form>";
echo $HTML;
}
0809nobodyさん
2011/06/27(月) 18:42:24.84ID:???function A_disp()
{
global $TOI;
$REQ = $_POST["Q"];
$ANS = 0;
$ERR = "";
foreach($TOI as $KEY => $Q)
{
if(isset($REQ[$KEY]) == true)
{
$ANS += $REQ[$KEY];
}
else
{
$ERR .= "{$KEY} 番目が選択されていません<br>\n";
};
};
echo "合計:{$ANS}<br>\n";
if(strlen($ERR) > 0)
{
echo $ERR;
};
};
?>
自分だとこんな感じか
0810nobodyさん
2011/06/27(月) 18:52:10.74ID:xqyiNAlq関数使うのが上級者ぽい感じですね。
自分はまだまだ初心者なので関数使おうという発想にいたりません。
勉強させていただきます。
0811nobodyさん
2011/06/27(月) 19:36:36.20ID:???0812nobodyさん
2011/06/27(月) 19:41:00.97ID:???おなじ質問スレでもこっちの方が良かったか???
△▲ WebProg 初心者の質問 Part23 ▼▽
0814nobodyさん
2011/06/27(月) 19:58:58.27ID:???わろすwwwwwwwwwwwwww
0816nobodyさん
2011/06/27(月) 20:11:19.45ID:xqyiNAlq2ちゃんの行数制限で仕方なく……
0817nobodyさん
2011/06/27(月) 20:39:54.12ID:3qkhECzwsession_start();
if ($_POST['id'] == "aaa" && $_POST['pass'] = "bbb") {
$_SESSION['login_flag'] = 1;
}
こんな感じにするのでしょうか?
それで他のページで
session_start();
if (!$_SESSION['login_flag']) {
exit("ログインしてください");
}
みたいな感じに
0820nobodyさん
2011/06/27(月) 20:50:59.13ID:3qkhECzwどういうことでしょうか?
もう少し詳しくお願いします。
0822nobodyさん
2011/06/27(月) 20:54:50.65ID:3qkhECzwどのロジックでどうDBを使うんですか?
0824nobodyさん
2011/06/27(月) 20:58:11.55ID:3qkhECzwこれをセッションじゃなくてDBで持てってことですか?
0827nobodyさん
2011/06/27(月) 21:23:03.84ID:???そいうログインIDをデータベースに放り込むような形でログイン中のIDを管理しているCMSとか見かけるね。
まぁ、慣れてきたら色々試してみるといいかと。
>>821の意図はわからんが。
0829nobodyさん
2011/06/27(月) 21:41:51.27ID:???DB使えとかいったただのバカ回答者だろ
簡略化して書くのは当たり前
0830nobodyさん
2011/06/27(月) 21:43:33.75ID:???>ログインを通ったら、チケットを発行する
ごめん俺には両者の違いがわからん
0831nobodyさん
2011/06/27(月) 21:49:11.10ID:2KhSNdB/0833nobodyさん
2011/06/27(月) 22:48:23.74ID:???http://fuelyourcoding.com/one-sure-fire-way-to-improve-your-coding/
0834nobodyさん
2011/06/28(火) 02:50:11.80ID:???さらにログインID発行とか意味分からん。
0835nobodyさん
2011/06/28(火) 03:00:15.45ID:???0837nobodyさん
2011/06/28(火) 07:56:14.14ID:XSZKxvpsどちらもしていないのに使ってるスクリプトをよく見かけるのですが
あれは一体どういう仕組なんでしょう?
0839nobodyさん
2011/06/28(火) 09:18:04.50ID:nyZ/thnD・yomiフィールド昇順
・noフィールドが123456789のレコード
を全て取り出すSQL命令を発行したいのですが
try {
$db = new PDO('mysql:host=lochalhost; dbname=sakana', 'kun', 'san');
$db->exec('SET NAMES utf8');
}catch(PDOException $e) {
die('エラーメッセージ:'.$e->getMessage());
}
$stt = $db->prepare('SELECT * FROM fish ORDER BY yomi ASC WHERE no='123456789'');
$stt->execute();
while($row = $stt->fetch(PDO::FETCH_ASSOC)) {
echo $row['no'];
echo $row['yomi'];
中略
}
では動作しませんでした
$stt = $db->prepare('SELECT * FROM fish ORDER BY yomi ASC');
この状態では取り出せたので
「WHERE no='123456789'」この部分がおかしいと思うおですが、どのように記述すれば良いのでしょうか?
「WHERE no="123456789"」
「WHERE no IN ('123456789')」も試しましたが動作しませんでした。
0840nobodyさん
2011/06/28(火) 09:31:56.39ID:nyZ/thnDエラーは当該行でParse error: syntax error, unexpected T_LNUMBERが出ます
0841nobodyさん
2011/06/28(火) 09:34:08.42ID:???SELECT * FROM fish WHERE no='123456789 ORDER BY yomi ASC
0842nobodyさん
2011/06/28(火) 09:35:51.15ID:???× SELECT * FROM fish WHERE no='123456789 ORDER BY yomi ASC
○ SELECT * FROM fish WHERE no='123456789' ORDER BY yomi ASC
0843nobodyさん
2011/06/28(火) 10:00:35.66ID:nyZ/thnD出来ました!ありがとうございます。
記述の順序があるんですね…
0844nobodyさん
2011/06/28(火) 10:19:46.23ID:bZupiZ9q$ko = new Ko();
$oya->ko = $ko;
上のようなことをした場合、koからoyaのメソッドにアクセスする方法はありますか?
$oya->hoge(); を $oya->ko から使う方法です。
0845nobodyさん
2011/06/28(火) 11:20:58.12ID:???不正ログインするためには他人のセッションIDを取得する必要があるが、
そんなことが出来るならログインIDを別に発行しても同じこと。
0846nobodyさん
2011/06/28(火) 11:36:55.26ID:???>>799の>>782へのレス
class Oya {
public function setKo(Ko $ko) {
$ko->parent = $this;
$this->ko = $ko;
}
}
0847nobodyさん
2011/06/28(火) 12:31:59.81ID:???自セッションのみだとアカとパスが有れば2重ログインは通るんじゃね?
二重ログイン等をチェックするのにログインIDを発行してDBとかに格納すると思うけどね
DBに格納するユニーク値にセッションIDが有るのにログインIDを
態々発行する必要は無いってならそれは個々の理由だと思うけどね
0848nobodyさん
2011/06/28(火) 12:42:28.86ID:???0849nobodyさん
2011/06/28(火) 13:14:47.30ID:bZupiZ9qなるほど!早速試してみます!
0850nobodyさん
2011/06/28(火) 13:17:00.90ID:bZupiZ9qすいません、こんどからmanとchinにします。
0851nobodyさん
2011/06/28(火) 18:13:01.83ID:???セッション固定攻撃対策
セッションID自体はPHP自体からきてしまうので対策のしようがない。
発行したセッションID自体を管理できていればいいんだがな
0852nobodyさん
2011/06/28(火) 18:41:57.43ID:A7Pn6kne【PHPのバージョン】5.2.8
【質問内容】
文字列を何文字かずらすのはどうやったら良いのでしょうか。
例えば各1文字づらして(減らして?)IBMという文字列をHALにしたいのです。
こんな感じとは思ったのですが・・・。
$src="IBM"; $dist=""; $length=strlen($src);
for ($i=0;$i<$length;$i++) {
$c=substr($src, $i, 1);
$dist .= ;//$cを、ここでなんかすると思うのですが・・・
}
どなたか教えてください。よろしくお願いします。
■ このスレッドは過去ログ倉庫に格納されています