【PHP】下らねぇ質問はID出して書き込みやがれ 89 at PHP
[2ch|▼Menu]
[前50を表示]
500:nobodyさん
09/10/22 23:05:10
何のために引数が存在してると思ってるんだ・・・・・・・

501:nobodyさん
09/10/22 23:21:24 tJpAUHQM
ソフトバンク携帯でアクセスしたときに
(以前は表示できていたのですが)見れなくなってました。
情報量が多かったのでPHPファイル内をわずかなテキストだけにしました。

が、それすら表示できませんでした。パソコンでは問題なく見れます。
エラーは下記です。

エラーが発生しました。レスポンスが不正です。WJ40164E

どうすればよいのでしょう?



502:nobodyさん
09/10/22 23:27:58
エスパーさん出番ですよ〜!

503:nobodyさん
09/10/22 23:36:41
>>501
まず、 googleで ソフトバンク レスポンスが不正です  で検索しようよ。

504:nobodyさん
09/10/22 23:37:22
>>501
WJ40164E でググレカス

505:nobodyさん
09/10/22 23:39:11
>>502-504
しねks

506:nobodyさん
09/10/22 23:46:57
>>505
検索した?答えあると思うけどな。

507:nobodyさん
09/10/22 23:47:36
>>505
質問者じゃないだろ?
あと、諭すような口調をやめてくれ

508:nobodyさん
09/10/22 23:48:20
fscanfがおかしいです!

509:nobodyさん
09/10/22 23:49:42
>>508
君の頭の方がもっとおかしいです!!

510:nobodyさん
09/10/23 00:02:06 X9i7QbIU
>>503
>>504
もちろんそれは検索済みです。。。
ほんの数件しか検索されなく、解決策もありませんでした。

511:nobodyさん
09/10/23 00:21:33 tmLg3YdR
上でちょこっと言ってる、SQL文とロジックを分けるのサンプルってありませんか?
検索フォームのためのSQL文をきれいにソースと分けたいなぁと思っているのですけど

512:nobodyさん
09/10/23 00:37:44 tmLg3YdR
>>510
hallow worldやphpinfoが表示出来ないというレベルで尚且つ、レンタルサーバの場合は
サーバ側で少し設定が変更されたかと思う。
firefoxやIEでHTTPヘッダーの情報が見れるアドオンとかあるし、
その情報を見れば少しは怪しいところが見えてくるかもしれない

513:nobodyさん
09/10/23 00:56:06
>511
1. SQLだけ記述したファイルを用意する
2. そのファイルをfile_get_contentsで読み込み、文字列変数にセットする
3. SQL文字列をライブラリに渡してやり、実行する。

さらに一歩進めるなら、
実行して得られた結果セットを配列に入れて返してやる

514:nobodyさん
09/10/23 00:57:43
>>513
パラメタ付の場合は? 

515:nobodyさん
09/10/23 01:15:01
  ァ  ∧_∧ ァ,、
 ,、'` ( ´∀`) ,、'`
  '`  ( ⊃ ⊂)  '`

516:nobodyさん
09/10/23 01:23:42
>>513
> 2. そのファイルをfile_get_contentsで読み込み、文字列変数にセットする
そうじゃないだろ。どういう設計思想なんだよ。パフォーマンス無視?


517:nobodyさん
09/10/23 01:25:07
パフォーマンスや保守性はアクセス数が増えたときに考えればいいんじゃないのか?

518:nobodyさん
09/10/23 01:31:29
>>517
ある程度先の運用面を考えて実装するが良き設計者。
それにその設計方法じゃ、すぐに天井が来る。

519:nobodyさん
09/10/23 01:32:35
>>498

最近では関数はあんまり使わないと思うよー。

一番単純なのは
class DB{
function geAAA(){

}
function geBBB(){
}
}

みたいな感じじゃないかなぁ。

SQL外だしっていうのも、実はあんまりメリットないと思う。


520:nobodyさん
09/10/23 01:34:58
SQLを動かすクラスと、それを運用するクラスと分けるべきだな

521:nobodyさん
09/10/23 01:38:30 U1ZTI1ef
スレ違いかもしれないのですが、該当のスレが見つからなかった為、こちらで質問をさせてください。

現在、PHPとMySQLを組み合わせたウェブサイトを作っています。
MySQLのデータベースには2つのテーブル(テーブルA、テーブルB)があり、PHPからこの2つのテーブルを参照し、以下の様に表示させたいと考えています。

data_id (参照A)
info (参照A)
date(参照A)
sonota(参照A)
koshin_joho(参照B) // テーブルBもdata_idを持っていて、テーブルAのdata_idとマッチする時のみ、ウェブにkoshin_johoを表示

現在、phpファイルからテーブルAの方はループを使ってそれぞれのカラムを参照し、表示する事ができているのですが、
テーブルAのためにループを使っているためか、テーブルBを参照する事ができません。
どのようにすればループを使ってMySQLに登録されているデータを一度にウェブ表示させている状態で、
テーブルAとテーブルBをループ内で同時に表示する事ができるのでしょうか?

長文失礼致しました。

522:nobodyさん
09/10/23 01:38:50
>>520
結局よく分からないけど、
(1) SQL文はクラスに直書き?外だし?
(2) いずれにしても、SQL文が1000個あったら、1000クラス(ファイル)作るの?じゃないなら、グループ化の基準は?
(3) WHERE文の要素が可変の時は?

俺は、MVCでいうところのModelに全て直書き。だから、ソースのあちらこちらにSQL文が書かれている。

523:521
09/10/23 01:39:25 U1ZTI1ef
テンプレを忘れていました。

【OS名】CentOS 5.3
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql

524:nobodyさん
09/10/23 01:44:05
あー。。>>519のDBクラスはたとえが良くないなー。

BBSクラスにしよう。
BBSクラスはBBSに関する全ての情報・操作を引き受ける人。
他人はデータ取得・保存はできるだけ単純にできるようにってだけ。

だから、
取得する条件・対象ごとにメソッド分けるのとパラメタで指定するのと
一概にどっちがいいとはいえない。


525:nobodyさん
09/10/23 01:44:26
>>521
koshin_johoも一緒に取得すればいいんじゃないの?
マッチしない場合は取得できないわけだし

526:nobodyさん
09/10/23 01:46:19
>>521
えーっと、、リレーションって知ってる?

527:nobodyさん
09/10/23 01:47:10
>>524
前半は、いいとして、

> 取得する条件・対象ごとにメソッド分けるのとパラメタで指定するのと
> 一概にどっちがいいとはいえない。
それは、クラスを使いながら、考え方が全然オブジェクト指向じゃない。

528:nobodyさん
09/10/23 01:48:25
>>522
1.SQLの機能をラップしたクラス
2. 1のクラスを使って機能を実現するクラス

という感じで分けてる、SQLは2へ直書き。
おそらくそれ以上ラップしたり、粒度を増やしても使うことは無いからということで。

529:521
09/10/23 01:49:08 U1ZTI1ef
現在書いているPHPのコードはこのような感じです。

$sql1 = "SELECT x FROM tableA";
$sql2 = "SELECT x FROM tableB";
$tablea = mysql_query($sql1);
$tableb = mysql_query($sql2);

while($row = mysql_fetch_array($tablea)){
echo $row['data_id'] ;
echo $row['info'] ;
echo $row['date'] ;
echo $row['sonota'] ;
}

while ($row2 = mysql_fetch_array($tableb)){
if ($row2['data_id'] eq $row['data_id']){
echo $row2['koshin_joho'];
}
}

530:nobodyさん
09/10/23 01:52:48
>>529
SELECT * FROM tableA NATURAL JOIN tableB

531:nobodyさん
09/10/23 01:53:32 U1ZTI1ef
>>525,526

ありがとうございます。
こういう事でしょうか?

$sql = "SELECT x FROM tableA, tableB where tableA.data_id = tableB.data_id";
$table = mysql_query($sql);

while($row = mysql_fetch_array($table)){
echo $row['data_id'] ;
echo $row['info'] ;
echo $row['date'] ;
echo $row['sonota'] ;
echo $row['koshin_joho'];
}

532:nobodyさん
09/10/23 01:56:08
>>527

スレッド名一覧をとる
getAll()
ID指定してスレッドとる
getById()

なんて分けるのは割りとあると思うけどなー
返ってくるモノが違うってとき。

533:nobodyさん
09/10/23 01:57:50 U1ZTI1ef
>>530
それだとkojin_johoが書かれているテーブルの内容しか表示されません。

534:nobodyさん
09/10/23 02:04:16
>>533
そこまで分かってるなら普通に結合も分かれよw ネタかよw

535:nobodyさん
09/10/23 02:09:54
>>533
外部結合でググろう

SELECT * FROM tableA LEFT JOIN tableB ON tableA.data_id = tableB.data_id;

536:nobodyさん
09/10/23 02:12:01
つTECHSCORE

537:nobodyさん
09/10/23 02:25:34 U1ZTI1ef
>>534
最近MySQLをはじめたものですいません。

>>535
完璧です。ありがとうございました。

538:nobodyさん
09/10/23 05:47:37 QLP+l4hN
URLリンク(php5.seesaa.net)
このサイト使ってphpを始めたのですが、POSTとGETを同時に使う重要性が分からないです。
Formタグの action の項目にGETをあらかじめ入力しているだけなので、ブラウザでのユーザの操作で変化しないです。
確かに同時に使っていますが、メリットが分からないです。むしろ、ユーザに書き換えられる危険性の方が高い気がします。
またhidden についても同様で、わざわざ入門のページにある割に、使い道が分からないです。
POSTとGETを同時に使う意味はありますか?

539:nobodyさん
09/10/23 06:08:57
重要なんて書いてある?
ケースバイケースで両方使う場合もあると書いているんだろう
俺もいろいろ書いてきたがGETとPOSTを併用したのは1度だけある
どういうケースで使ったのかはちょっと思い出せないが併用したことは覚えている
必要になれば使えばいいだけの話だからそんな深く考えなくていいよ
一生使わないかもしれないし頻繁に使うかもしれないし
結局その人が何作ってるか・どういう風に組んでいるかによる

hiddenはたとえば何かのアカウントを取得するときを想定するとわかりやすい
アカウント取得には

登録のために個人情報を入力する(Input)→
登録確認(個人情報確認)画面に進み登録するか確認する(Confirm)→
登録完了

というプロセスをとる場合が多いわけだが
Input画面で入力した情報をConfirm画面で出力するためには
Confirm画面にどうにかしてInput画面で入力したものを受け渡さないといけない
そういうときに使うのがhidden
ようするに前のページの情報をページ遷移(移動)後でも使うために使う(情報を持ちまわすのに使う)

540:nobodyさん
09/10/23 07:28:00
すみません。PHPってウェブサーバー上でしか実行できませんか。
例えばコマンドプロンプトからバッチファイルはexeみたいに
実行できないでしょうか?

541:nobodyさん
09/10/23 07:35:54
>>539
なるほど 隠す用途じゃなくて見えなくさせているだけってことか。
入力された変数をhiddenのところにprinfするなら、確かに次も値を使えそうです。
2chにブラウザで書き込んだ時に出る「書きこみ&クッキー確認」の画面でもhiddenを見つけられました。
ありがとうございました。

542:nobodyさん
09/10/23 08:45:41 pXxGvaT3
>>482
「PHPの」初心者ですが、
「セッション管理に失敗しない10の方法」を教えて頂けませんでしょうか。



543:nobodyさん
09/10/23 09:13:04
PEARって全部使えないと思うのは俺だけですか?

544:nobodyさん
09/10/23 09:27:52
>>543
先日まで触ったこともなかったけどSMTP_AUTHを使う必要があってMailを使ったよ

545:nobodyさん
09/10/23 10:39:30
>>540
普通にできます

546:nobodyさん
09/10/23 11:43:28
>>545
できました。

547:nobodyさん
09/10/23 21:49:42
安藤さんがOSS受賞したね

548:nobodyさん
09/10/23 22:02:21
だれや?
キャスターか?

549:nobodyさん
09/10/24 00:11:00
>>513
これギャグだろ?

550:nobodyさん
09/10/24 00:40:41 BvPjRTUm
new SQLiteDatabaseで作られたコンストラクタで
データベースをcloseするにはどうしたらいいですか?

551:nobodyさん
09/10/24 00:51:30
$db->close();

552:nobodyさん
09/10/24 00:54:41 BvPjRTUm
Fatal error: Call to undefined method SQLiteDatabase::close()

553:nobodyさん
09/10/24 04:14:41
そのクラスに閉じるメソッドが使われていなくて
コンストラクトでオープンするようになっている場合
デスクトラクト時にそのクラス側で勝手に終了してくれてると考えるきでは?

554:nobodyさん
09/10/24 04:18:45
なんか日本語が変だった・・・

そのクラスに閉じるメソッドが定義されていなくて
コンストラクターでオープンするようになっている場合
デスクトラクターで勝手に閉じてくれていると考えるべきでは?

実際にそのクラスの中身はみてないしどういうのもしらないが

555:nobodyさん
09/10/24 04:28:53
何言ってんの?

556:nobodyさん
09/10/24 04:43:06
分からないなら無理してレスしなくていいよ
教えてほしいならどこがどうわからないのかID出して質問してね

557:nobodyさん
09/10/24 05:22:59
>>555
554で言ったとおりどういうクラスかもしらないし中身もしらないけど(というよりSQLite使ったことない)

class SQLiteDatabase {

 private DB接続ポインタ;

 function __construct(接続情報) {
  $this->DB接続ポインタ = sqliteオープン(接続情報);;
 }

 function query($sql) {
  return 結果を配列で返す($sql);
 }

 function __destruct() {
  sqliteクローズ($this->DB接続ポインタ);
  //$this->DB接続ポインタ = null;
 }
}

$obj = new SQLiteDatabase(接続情報);
$res = $obj->query("SELECT * FROM hoge WHERE 1");
foreach ($res as $row) {
 echo $row."<br>";
}
//ここでデストラクターが呼ばれて勝手に終了する

たぶんこんな構造になってるんじゃないかと(間違ってるかもしれないけど)
SQLite自体明示的に終了させる必要がないDBかもしれないしその辺の事情は知らない

558:nobodyさん
09/10/24 05:24:18
下らんコード書く暇あったら確認しろよ

559:nobodyさん
09/10/24 05:28:37
>>558
そんなクラス見つからなかったんだけどなぁ
探し方が悪かったんだろうか
よかったらリンクはってちょうだい

560:nobodyさん
09/10/24 07:37:49
そしてリンクをはらない>>558であった

561:nobodyさん
09/10/24 08:20:12
>//ここでデストラクターが呼ばれて勝手に終了する
$objがスコープ内にいるのにデストラクタが呼ばれちゃまずいだろ。

562:nobodyさん
09/10/24 08:25:17
>>561
<?php
class Hoge {
function Hoge() {
echo "construct<br>\n";
}
function a() {
return array("a", "b", "c");
}
function __destruct() {
echo "destruct<br>\n";
}
}

$obj = new Hoge;
foreach ($obj->a() as $value) {
echo $value."<br>\n";
}
?>

563:nobodyさん
09/10/24 08:44:46
ほんとこのスレ初心者ばっかだなw

564:nobodyさん
09/10/24 09:21:19
URLリンク(www.php.net)

しかし相変わらずだな。

565:nobodyさん
09/10/24 09:29:15
URLリンク(www.php.net)

これ見方がわからないんだけど
SQLiteDatabase
SQLiteResult
SQLiteUnbuffered
に定義されてる各メソッドはそのクラスのみで使えて
目次のとこに書かれてるのは共通に使えるメソッド?

なんか無名関数のせいでマニュアルの見方がむずくなってきてる気がする・・・

566:nobodyさん
09/10/24 09:34:01
マルチパラダイムだから仕方ないがこれはひどい
明確に分ければいいのに

567:nobodyさん
09/10/24 09:49:09 o7jv7fS8
PHP、PEAR、Smartyはだいたい理解できました
しかし、実際HTMLなどのクライアントサイド側との連携がいまいち良く分かりません
本やちょっとしたPHP解説のサイトなどはメソッドとかプロパティなどの説明で終わっているもので

フォームなどの基本的な事は何処にでも書いてあるので分かるのですが、実践的なPHPとクライアントサイドとの連携したコードなど
書いてある書籍など自分の県では見つけられませんでした
実際にサイトを作る為のクライアント+サーバサイドを連携させたサンプルコードの載っているサイトや書籍は何かないでしょうか?
宜しくお願い致します

568:nobodyさん
09/10/24 09:50:26
Ajaxのことだろ
Ajaxスレいってください

569:nobodyさん
09/10/24 09:55:04
jquery

570:nobodyさん
09/10/24 10:02:54 o7jv7fS8
えっ?
Ajaxですか?
Ajaxの事ではなく、例えばテンプレートとか実際に実装して作ったサンプルとかです
説明不足だったようです、すみません

例えば、Webデザインブックなどはいくらでも出ていますが、それらはただHTMLとCSSで実装しています
まぁたまにJavaScriptなどもありますが
自分は、人がサイトにアップロードした画像をサイトに情報つきで載せてレイアウトも崩れないようにしたいとか
(つまり$_FILESの概念はわかるけれどそれを実際クライアント側のコードにどのようにテンプレート内に実装・レイアウトしていくか)、
PEARによるログイン認証を行った後でそのログインしたユーザーのみが動的コンテンツを利用するためにはどのようにすればいいのか、
とかまぁ書けば色々と長くなりそうですが、そういう事です
自分側がただ作ったサイトを公開するだけではなく、ユーザーの参加できるようなサイトの作り方を、簡単でもいいので解説しているサイトや書籍が知りたいのです


571:nobodyさん
09/10/24 10:05:27
>>557
おいおいwあんまり>>555をいじめんなよw
そんなの見せても>>555にはチンプンカンプンなんだぜwwwwwwww
今頃顔真っ赤にしてるだろうけど二度と出てこないよww

572:nobodyさん
09/10/24 11:35:30
>>571
そういうのは、実際に必要になった時に調べたり考えたりしてもいいと思う。
PHPで家計簿でも何でもいいんで作ってみれば、分かってくるんじゃないかな。
気力があるなら、人が作成したPHPのプログラムを落としてHTML部分がどうなってるか探してみるのが言いかと

573:nobodyさん
09/10/24 11:39:51
そりゃクライアント+サーバサイドの連携っていったら
JavaScriptとPHPの連携っていってるようなものだからAjaxって答えが返ってくるのも無理もない
MixiやYoutubeのようなSNSサービスをやりたいってことね
セッションとか勉強するといいよ

574:nobodyさん
09/10/24 11:55:49
>>562
閉じタグとファイル終端は、直接関係無い。
タグ閉じただけじゃスコープ閉じないんだぜ。

575:nobodyさん
09/10/24 11:58:58
日本語でおk

576:nobodyさん
09/10/24 12:00:54
でてこいよ>>555wwwwwwwwwwwwwwwGOGOGOwwwwwwwwwwwwwwwwww

577:nobodyさん
09/10/24 12:01:27 o7jv7fS8
>>572
レスアンカーは自分(>>570)にですよね?
そうだと思って返答させて下さい

>人が作成したPHPのプログラムを落としてHTML部分がどうなってるか探してみる

こういうのはWebサイトで検索して、人が書いたサンプルコードを集めて学習しろという事なのでしょうか?
それとも、自分は知らない(というかコードを読み取られると危険なのでそもそも出来ないのではと思うのですが)、ソース読み取りソフトとかあるのでしょうか?
例えばWebサイトであればIEのソース機能やFireFoxのFireBugのようなHTMLのコードを表示出来る様なソフトの事です



>>573
あぁ、すみませんでした
自分の表現がおかしかったようです
HTML+CSSにPHP(テンプレートやライブラリ含む)を組み込んで実装する、実際に運営する為の雛形コードを学習したかったのです


578:nobodyさん
09/10/24 12:05:25
>>570
単にフォームからのリクエストを処理するPHPのコード、ってんなら、
PHPの本で2〜3章かけて解説してるんじゃね?
あとは自分の作りたいものに似てるの探して、コード読むべし。

579:nobodyさん
09/10/24 12:05:29
>HTML+CSSにPHP(テンプレートやライブラリ含む)を組み込んで実装する、
>実際に運営する為の雛形コードを学習したかったのです

フレームワークのview部分とか見てみるといいかもしれない

580:nobodyさん
09/10/24 12:10:51
>>574
aaa<br>
<?php
>>562のコード
?>
bbb<br>

でbbb<br>より後にdestructが現れるってことか?
どっちみちDBクローズならそれでもいいだろ

581:555
09/10/24 12:11:40
すいませんでした
無知を晒してしまいました
ごめんなさい

582:nobodyさん
09/10/24 12:22:14
ちなみにスコープ閉じるってどうやるの?
objにnullいれるだけ?

583:nobodyさん
09/10/24 12:59:43
>>580
その下にまた<?phpが出てくるとか、include/requireされてるとか。

>>582
$objはスコープから外れてないけど、インスタンスは
ガベージコレクションで回収されるから、そのときに
デストラクタが起動されるんだと思う。

PHPで明示的なスコープって言ったら関数かな。
ローカル(グローバルでない)変数のスコープは関数内でしょ。

584:nobodyさん
09/10/24 13:03:20
>>281
いやだからそれは俺が振られた理由になってねえよ
なんで会社の休憩時間にイタリアフルコース頼まないといけないんだよ

585:nobodyさん
09/10/24 13:16:46
フラれたのか、ま、元気だせ、応援してるから。

586:nobodyさん
09/10/24 13:56:20
要らないもんはunsetしちゃおうぜ

587:552
09/10/24 14:16:10 BvPjRTUm
結局クラスを自作して対応しました。
class sqlite{
  var $_result = array();
  var $_pointer = null;
  var $_message = null;
  function connect($dbfile){
    return $this->_pointer = sqlite_open($dbfile,0666,$this->_message);
  }
  function close(){
    sqlite_close($this->_pointer);
  }
  function exec($que){
    return sqlite_exec($this->_pointer,$que,$this->_message);
  }
  function array_query($que){
    return sqlite_array_query($this->_pointer,$que,$this->_message);
  }
  function get_escape($str){
    return sqlite_escape_string($str);
  }
  function get_result(){
    return $this->_result;
  }
  function get_pointer(){
    return $this->$_pointer;
  }
  function get_message(){
    return $this->$_message;
  }
}

588:nobodyさん
09/10/24 14:37:03
>>587
オブジェクト指向スタイル用意されてる意味ねーw

589:nobodyさん
09/10/24 14:57:50
fscanfがおかしいです

590:nobodyさん
09/10/24 18:28:54
なるほどね、凸者さんの判断次第ってことか。
あと、ヤンデレこえぇwww

591:nobodyさん
09/10/24 18:29:35
誤爆

592:nobodyさん
09/10/24 19:04:29
どうしてもnewで作ってclose()したいんだ、という強い意志が感じられます。
若いっていいね。

593:nobodyさん
09/10/24 19:35:19
>どうしてもnewで作ってclose()したいんだ、という強い意志が感じられます。

はずかしいから黙ってて

594:nobodyさん
09/10/24 20:43:07
newで作ったらdeleteを使いたくなるよね。
で、ダミー関数であるdeleteが登録されてるせいで、
delete($classA)とか書いてもしばらく気がつけない

595:nobodyさん
09/10/24 20:45:44
え?

596:nobodyさん
09/10/24 20:47:28
え?

597:nobodyさん
09/10/24 21:14:45
これ何のスレだっけ

598:nobodyさん
09/10/24 21:21:53
質問じゃない時はsageで書きやがれスレ

599:nobodyさん
09/10/24 22:35:42 aM0DiAaq
【OS名】Windows xp
【PHPのバージョン】php5.2.10
【連携ソフトウェア】mysql
【質問内容】
心理テストのようなサイトを作ろうとしています。
何人がその答えを選んだかの集計と、
それとは別に選んだ答えがどのような性格をあらわすのかを表示できるようにしたいです。
チェックボタンを選んだ状態で「あなたはこんな人」のようなラジオボタンで
そのページに遷移させたいです。
どのようにしたらいいのでしょうか?
アバウトな質問でごめんなさい。


600:nobodyさん
09/10/24 22:39:54
>>599
で、何ができないの?PHP?本買え

601:nobodyさん
09/10/24 22:39:57
>>599
そのまんまじゃね?何が問題なんだ?

602:nobodyさん
09/10/24 22:40:40
全部作らせる気かww
最近の若者は安易だなぁ

603:nobodyさん
09/10/24 22:45:01 aM0DiAaq
くだらなすぎてごめんなさい・・・


604:nobodyさん
09/10/24 22:45:53
くだらないというか何が(どこが)できないのかが分からんのだよ

605:nobodyさん
09/10/24 22:50:44 aM0DiAaq
アンケートのページで「投票」を押したらその選んだ結果によって違うページに飛ばしたいです。
例えば赤を選んだら赤色を好きな人の性格について書いてあるページで、
青を選んだら青色が好きな人の性格について書いてあるページです。
アバウトすぎてごめんなさい。


606:nobodyさん
09/10/24 22:51:31 aM0DiAaq
今こんな感じで書いているところです。。

<html>
<head><title>心理テスト</title></head>
<body>
<h1>メンタル編</h1>
<p>あなたがいつか天国へ旅立つとしたら、何色の石をお守りにしたいですか?
<?php
// スクリプト名取得
$script = basename(__FILE__);
// メンバー名配列
$member = array("", "赤いルビー", "ピンクのローズクォーツ", "ゴールド",
"イエロートパーズ", "緑のヒスイ", "青のラピスラズリ", "紫水晶", "白の水晶");

// 投票がある場合
if ($_POST['COLOR'] > 0) {
// 投票者番号
$no = $_POST['COLOR'];
// MySQLに接続
$db = mysql_connect("localhost", "root", "root");
// DB選択
mysql_select_db("graduation", $db);
// insert文実行
mysql_query("insert into ninki values(null, {$no},
now())", $db);
// DB切断
mysql_close($db);
}
?>

607:nobodyさん
09/10/24 22:52:32 aM0DiAaq
<p><font color="red"><?= $msg ?></font></p>
<form method="POST" action="<?= $script ?>">
<p><input type="radio" name="COLOR" value="1">赤いルビー</p>
<p><input type="radio" name="COLOR" value="2">ピンクのローズクォーツ</p>
<p><input type="radio" name="COLOR" value="3">ゴールド</p>
<p><input type="radio" name="COLOR" value="4">イエロートパーズ</p>
<p><input type="radio" name="COLOR" value="5">緑のヒスイ</p>
<p><input type="radio" name="COLOR" value="6">青のラピスラズリ</p>
<p><input type="radio" name="COLOR" value="7">紫水晶</p>
<p><input type="radio" name="COLOR" value="8">白の水晶</p>
<p><input type="submit" value="投票"></p>

</body></html>


こんな感じです。
ごめんなさい。

608:nobodyさん
09/10/24 22:56:06
>>607
switch($COLOR){
case 1
処理&リダイレクト1
break;
case 2
処理&リダイレクト2
break;
case 3
処理&リダイレクト3
break;
.....
}

あとaction="<?php echo $script ?>"はまずくね?
それだったらaction=""で空でいいと思うよ

609:nobodyさん
09/10/24 22:58:11
case 1:

ね":"を忘れずに

610:nobodyさん
09/10/24 23:01:10 aM0DiAaq
>>608
>>609
やってみます
情けない質問に答えてもらってありがとうございます



611:nobodyさん
09/10/24 23:05:20
情けない質問wwww

612:nobodyさん
09/10/24 23:24:44 TvoLhocc
switch内のbreak;のインデントってたまに悩むけどどうしてますか?
俺はcaseからインデントつけて位置に書いてるけど
そうすると最後でインデントが2つ一気になくなってしまう違和感がある
>>608みたいに書くとcase処理内な感じがしない違和感

613:nobodyさん
09/10/24 23:34:28
>>612
その書き込みエスケープされただけだお

  case $a:

 break;

が多いけどおれも結構曖昧だ

614:nobodyさん
09/10/24 23:35:29
逆だ

 case $a:

  break;



615:nobodyさん
09/10/24 23:41:58
switch ($a) {
 case 0:
  do_something();
  break;
 case 1:
  do_something();
  break;
 default:
  do_something();
  break;
}

どの言語の解説でもたいていこうなってるしこれがスタンダードじゃないかね

616:nobodyさん
09/10/24 23:42:52
下らねぇ回答はID出さないでここに書き込みやがれ 90

617:nobodyさん
09/10/25 00:28:25
次スレの季節か

618:nobodyさん
09/10/25 00:56:35
switch文で気になったのでメモ
switch('a'){
 case 'a'; //末尾が ;
}

switch('a'){
 case 'a': //末尾が :
}
は等価


619:nobodyさん
09/10/25 05:29:05 TWuysydg
$test = " 1c 2c 3c!";
$search = "/([^0-9])([0-9])c([^0-9])/";
$replace = "$1c$2$3";
echo preg_replace($search, $replace, $test);

これで、期待する出力は
c1 c2 c3!
実際の出力は
c1 2c c3!

質問は、
・なぜこのような動作になるのでしょうか?
・どうすれば解決できるでしょうか?

後、欲しいアイデアとして
・"1c 2c 3c"のように、先頭にスペースを入れなくても"c1 c2 c3"に変える正規表現を教えてほしい
(ただし"11c"のような形の場合は変化させないでほしい)

620:nobodyさん
09/10/25 05:53:15
explodeで配列にわけて
substrで文字を抜き出したのを結合すえばええ

621:nobodyさん
09/10/25 10:22:02
認定回答者採用試験は今日までですので頑張って回答してください

622:nobodyさん
09/10/25 11:14:26
>>619
$test = "1c 2c 3c!";
$search = "/([^| ][0-9]{1})c/";
$replace = "c$1";


623:nobodyさん
09/10/25 13:01:49
トリもIDも出さずに試験官気取りとな?

624:nobodyさん
09/10/25 13:03:49
>>623
お前鬱病だろ

625:nobodyさん
09/10/25 21:45:40
phpでシングルトンって意味あるの?
リクエスト終わったらメモリ開放されるんでしょ?

626:nobodyさん
09/10/25 22:19:54
2行目は正解。
1リクエストの中だけでも必要なときはあるさ。

627:nobodyさん
09/10/25 22:38:37 Ltpwqrvc
mod_rewriteを使ってクリックカウントをとりたいのですが
以下のようにするとcount.phpにリダイレクトできるのですが、
count.phpからLocationで飛ばすとループしているのか404NotFoundになってしまいます。
どうすれば正常にできますか?

例:www.example.com/img/abc01.jpg をクリックしてcount.phpを介してカウント
www.example.com/img/abc01.jpgのまま表示する

//サーバー側
RewriteEngine on
RewriteRule ^/img/abc([0-9]+).(*)$ /img/count.php?id=$1&extension=$2

//count.php側
header("Location: URLリンク(www.example.com)");

628:nobodyさん
09/10/25 22:42:08
readfile使えばいいと思うよ

629:627
09/10/25 22:54:09 Ltpwqrvc
>>628
やってみましたがだめでした・・・。

630:nobodyさん
09/10/25 23:07:22
count.phpがabc01.jpgを出力するんだぜ。

631:nobodyさん
09/10/25 23:15:10
リライトログ見てみたら?吐いてなかったら吐かせて

632:627
09/10/26 00:20:09 8+sjsIrs
>>630-631
アドバイスありがとうございます。
何とか解決できたみたいです。
/img/を物理ディレクトリ、URL表示部分を新規に/img2/として(抽象ディレクトリ)
リライトしたらできるようになりました。

633:627
09/10/26 00:33:00 8+sjsIrs
>>628
readfileも必要だったみたいです。
ありがとうございました。

634:nobodyさん
09/10/26 05:27:50
質問させてください。

<html>
<body>
<?php include("./hoge.php");?>
</body>
</html>

で閲覧に問題はないのですが、
ソースを見ると

<html>
<body>
<html><body></body></html>
</body>
</html>

と2度使われ重複している状態です。

hoge.phpには<html><body></body></html>などの記述はしておりません。
問題の箇所等ご指摘願います。

635:nobodyさん
09/10/26 05:31:55
hoge.phpの中身書くのがいやなら簡略化したもの書いてくれないと
それだけではなんともいえない

636:nobodyさん
09/10/26 05:40:09
>>635
ありがとうございます。

hoge.phpの中身はモバイル版AdSenseコードのみです。

637:nobodyさん
09/10/26 05:48:48 n4efgg6U
質問です。MagpieRSSを使っています。
日付順に取得記事をソートしたいのですが、うまくいきません。
アドバイスお願いします。

$rssurl = array ();
$rssurl[] = "URLリンク(mainichi.pheedo.jp)";
$rssurl[] = "URLリンク(rss.asahi.com)";

foreach ($rssurl as $pre) {
$url = $pre;
$rss = fetch_rss($url);
$title = $rss->channel['title'];
$title = mb_convert_encoding($title, "shift_jis", "auto");
$url = $rss->channel['link'];
$rss->items = array_slice($rss->items, 0, 1);

foreach ($rss->items as $item ) {
$day = date('n/j',strtotime(substr($item['dc']['date'],0,10)));
$time = date('H:i',strtotime(substr($item['dc']['date'],11,8)));
$date = "$day $time";
$rdf = $item[link];
$article = $item[title];
$article = mb_convert_encoding($article, "shift_jis", "auto");
$linkstr = "$date $rdf $article $url $title<br>\n";
$rssarray["{$date}"] = $linkstr;

krsort($rssarray);
echo "$linkstr";

638:nobodyさん
09/10/26 05:52:16
>>637
$linkstrは全て想定通りになってるの?

639:nobodyさん
09/10/26 05:55:31 n4efgg6U
>>638
はい、順序以外は期待通りの実行結果です。

640:nobodyさん
09/10/26 06:00:30
じゃkrsortの問題ですね
どんな$linkstrを入れるとどのようなソート結果になるか例を出してもらえますか?

ちなみに第二引数にソートフラグを指定して挙動を変えることができる
URLリンク(www.php.net)
今回の場合は全て文字列だから関係ないかもしれないけど

641:nobodyさん
09/10/26 06:09:43 n4efgg6U
RSSの取得を下のようにしたとして
$rssurl[] = "URLリンク(mainichi.pheedo.jp)";
$rssurl[] = "URLリンク(mainichi.jp)";
$rssurl[] = "URLリンク(mainichi.jp)";
$rssurl[] = "URLリンク(mainichi.jp)";

10/26 05:00 ■URL ■人事:法務省(26日) ■URL ■毎日jp-ニュース速報(総合)
10/25 21:00 ■URL ■注目アニメ紹介:「空中 ■URL ■毎日jp-まんたんウェブ
10/25 22:14 ■URL ■the GazettE ■URL ■毎日jp-エンタメ
10/25 23:10 ■URL ■横浜:巨人・尾花コーチ ■URL ■毎日jp-スポーツ
(長いので削ってます)

このような結果が出ます。
日付でソートをかけているつもりですが、まったくされていません。
$rssurl配列の上から順に表示されています。

642:nobodyさん
09/10/26 06:10:21
>>636
echoで文字列を出力してるのか?
それともただアドセンス部分のHTMLだけ書いてるのか?
試してみたがhtml bodyタグが加わることはない
サーバかPHPの設定かもしれないがどの設定項目かはわからんわ
PHP使えるレン鯖が2つ以上あるなら両方で試してみ
ローカルに環境作るのが一番いいけど

643:nobodyさん
09/10/26 06:11:55
>日付でソートをかけているつもり
使う関数まちがってるんじゃね?
krsortって逆順ソートだよ

644:nobodyさん
09/10/26 06:15:55
日付だから逆順であってんでねーの?

645:nobodyさん
09/10/26 06:17:41
いやいや
ただ単にキーを逆順にするソートってこと
ユーザー定義のソートをしたいのならusort()とかじゃないと

646:nobodyさん
09/10/26 06:18:06 n4efgg6U
$rssurl[] = "URLリンク(mainichi.jp)"; //まんたんウェブ
$rssurl[] = "URLリンク(mainichi.jp)"; //エンタメ
$rssurl[] = "URLリンク(mainichi.pheedo.jp)"; //ニュース速報(総合)
$rssurl[] = "URLリンク(mainichi.jp)"; //スポーツ

10/25 21:00 ■URL ■注目アニメ紹 ■URL ■毎日jp-まんたんウェブ
10/25 22:14 ■URL ■the GazettE ■URL ■毎日jp-エンタメ
10/26 05:00 ■URL ■人事:法務省( ■URL ■毎日jp-ニュース速報(総合)
10/25 23:10 ■URL ■横浜:巨人・尾 ■URL ■毎日jp-スポーツ

例がわかりにくかったので書き直しました。

647:645
09/10/26 06:19:49
あ、ごめん。
よくよんでなかったw
>日付でソートをかけているつもりですが、まったくされていません。
ってかいてたからてっきり
データ見る限りだとkrsortでよさそうだね

648:645
09/10/26 06:20:38
とか書いた瞬間にデータの日付ルールが変わった件

649:nobodyさん
09/10/26 06:22:04 n4efgg6U
usortにしたらエラーがでました。
Warning: Wrong parameter count for usort() in C:\WWW\php.php on line 30

>>648
26日が真上だと日付でソートされているように見えたので…
配列順に表示されるだけでソート機能が働いていないというのが今回の悩みです。。。

650:nobodyさん
09/10/26 06:25:26
>usortにしたらエラーがでました。
マニュアルみようぜ
URLリンク(www.php.net)
krsort($rssarray);を
usort($rssarray);にかえただけじゃだめ
第2引数入れないと

651:nobodyさん
09/10/26 06:26:20
それぞれどんな$linkstrなの?

652:nobodyさん
09/10/26 06:34:30 n4efgg6U
>>650
すいません、ありがとうございます。
試している最中ですが、cmpの設定に少し時間がかかりそうなので結果が遅れます。

>>651
$day 記事の更新日
$time 記事の更新時間
$date 上記二つを合わせた文字列
$rdf 記事のURL
$article 記事のタイトル
$url 配信元のURL
$title 配信元のタイトル

です。

653:nobodyさん
09/10/26 06:41:45
>>652
ごめん、krsortに$linkstr関係なかったね

$array = array('10/25 21:00'=>1,'10/25 22:14'=>2,'10/26 05:00'=>3,'10/25 23:10'=>4);
var_dump($array);
krsort($array);
var_dump($array);

array(4) {
["10/25 21:00"]=>
int(1)
["10/25 22:14"]=>
int(2)
["10/26 05:00"]=>
int(3)
["10/25 23:10"]=>
int(4)
}
array(4) {
["10/26 05:00"]=>
int(3)
["10/25 23:10"]=>
int(4)
["10/25 22:14"]=>
int(2)
["10/25 21:00"]=>
int(1)
}
こちらで試してみたら想定どおりにソートされてる気がするけども

654:nobodyさん
09/10/26 06:43:43
usortの$aの部分を日付をunixタイムに変えたものいれればそのまま使えるんじゃね
$a部分を連想配列にしてキーを$rssarrayのキーと一致させておけば簡単
比較は値のunixタイムにしたものを比較する感じで
マニュアルの例そのまま使うならrsort()にしたほうがいいと注意書きに書いてるから
まずはusortで形をつくってからパフォーマンスのためにrsortで書き直してみては?

655:645
09/10/26 06:48:17
なんか話をややこしくしてすまんかった
krsortの使い方を勘違いしてたようだ
>>653でよさそう

656:nobodyさん
09/10/26 06:50:28
オマエラ馬鹿じゃね?
$rssarrayをソートかけてんのに$linkstr表示してっからだろ

657:nobodyさん
09/10/26 06:50:51
>>637
krsort($rssarray);
echo "$linkstr";

froeachの終わりがどこかわからんけど、echo結果を見ているなら$rss->itemsの順番に表示されてるんじゃ?
$rssarrayに入れたいものを全部入れてからkrsortしてprint_r($rssarray)で確認してみたらどうかな

658:nobodyさん
09/10/26 06:56:25 n4efgg6U
>>653
phpは昨日触ったばかりなのでじっくり参考にさせて頂きます。

>>654>>655
助言を求めたのは私なのでハマりから抜け出すためのしっかり参考にさせて頂きます。

>>656>>657
やっと原因が究明出来ました。
表示がまだ思い通りにいかないので試行錯誤してみます。

659:nobodyさん
09/10/26 07:00:40 n4efgg6U
foreachを閉じた後

krsort($rssarray);

for(reset($rssarray); $i=i($rssarray); next($rssarray)){
echo "$rssarray[$i]";
$count++;
if($count == 4){
break;
}
}

これでしっかりと表示出来ました。
原因はkrsort($rssarray);をforeachの中に入れていたことと
$linkstrを表示していたことです。
皆様ありがとうございました!

660:nobodyさん
09/10/26 07:01:41
echo "$linkstr";
の行は単にデバッグのためループの中で出力を確認しているだけで
当然そのあとにテーブルか何かで一覧を表示して、正しくソートされてないと言ってるもんだと思ってた。

$linkstrはkrsortどころか$rssarrayとも関係ない。foreachの順で表示されるだけじゃん。

661:nobodyさん
09/10/26 07:07:28
終わった後に言っても仕方ねぇだろ無能。
オマエラ馬鹿すぎ。

662:nobodyさん
09/10/26 07:23:29
煽るのすきだね
リアルでどういうやつなのかぜひ見てみたいわ

663:nobodyさん
09/10/26 07:36:34
>>662
的外れな回答する奴よりはマトモだよ

664:nobodyさん
09/10/26 10:20:50
それはない

665:nobodyさん
09/10/26 10:41:51
クッキーにパスワード保存するのはあれだよね。次回から自動でログインとかどうすればいいんだろう

666:nobodyさん
09/10/26 10:50:47
>>665

>>!

667:nobodyさん
09/10/26 10:58:01
>>665
何かユニークIDを発行してそれを保存

668:nobodyさん
09/10/26 11:15:48
>>665
なにか問題でも?

669:nobodyさん
09/10/26 11:27:59
他人の端末のクッキーコピって来たら、
俺が自動ログインで、そいつの振りして利用できる?

670:nobodyさん
09/10/26 11:33:33
できるよ

671:nobodyさん
09/10/26 11:34:10
そもそも他人に簡単に起動を許す、または誰でも簡単に利用できるようなPCのセキュリティに問題アリ

672:nobodyさん
09/10/26 11:44:57
パスワードだけは暗号化すれば良さそうだね

673:nobodyさん
09/10/26 11:49:41
暗号化が簡単ならね

674:nobodyさん
09/10/26 11:54:38
クッキーなんか暗号化必要ないんじゃない?

>>673
暗号化なんて簡単じゃん

675:nobodyさん
09/10/26 11:57:30
簡単ならおk

676:nobodyさん
09/10/26 12:18:54
そもそもクッキーコピーできるような状況なら、そのPCで他人がブラウザ使ってもログイン可能って
ことだしなあ。

677:nobodyさん
09/10/26 12:30:15
そもそも自動ログインなんて許すのは金の絡まないサイトとか
個人情報があまり意味ないサイトとかだよね。
ひまわり動画とか

678:nobodyさん
09/10/26 16:44:56
>>677
そういう問題か? 糞だな^^;

679:nobodyさん
09/10/26 17:53:40 +hgb+ZZq
一応>>1にMySQL等は別スレとありますが、php+MySQLに対してのスレがなかったので、此方で宜しかったでしょうか?
スレチでしたら誘導お願いします。
Sample.phpへ、buttonを配置し、JavaScriptでメソッドを定義。

function A1(){
if(confirm('ごまだれですか?')){
<?php
mysql_query("begin");
mysql_query("update `gomagoma` set `syurui` = 'くろごま' where `syurui` = 'alpha'") or die(mysql_error());
mysql_query("commit");
mysql_query("begin");
mysql_query("update `gomagoma` set `syurui` = 'しろごま' where `syurui` = 'beta'") or die(mysql_error());
mysql_query("commit");
mysql_query("begin");
mysql_query("update `gomagoma` set `syurui` = 'ごまふあざらあし' where `syurui` = 'hex'") or die(mysql_error());
mysql_query("commit");
?>
window.alert('内容を変更しました。')
}
}

としていますが、DBを覗いてみたところ、アップデートされていませんでした。
ですが、MysqlErrorは返ってきておらず、そのままJavaScriptで記述したalertが実行されます。


原因を現在当たっていますが、何か思い当たる点がありましたらご指摘お願いします。

680:nobodyさん
09/10/26 18:00:11
>>678
677じゃないけど、そんなもんだと思うぞ
大して重要でもないのに何を気にする事あるんだ?
そんなに気になるなら自動ログインなんてしなきゃいいだけじゃないか

681:nobodyさん
09/10/26 18:08:17
>>679
サーバサイドとクライアントサイドがごっちゃになってないか?

「function A1()」ってのはjavascript側で定義している関数だろ?
その中のphp(mysql_query)は、button押下に関係無くそのページロードしたら実行されるぞ?
ブラウザのソース見てみなよ。

682:nobodyさん
09/10/26 18:09:49
>>679
そのHOSTからmysqlで同じSQLを手で入れるとどうなるよ
トランザクションの使い方も間違ってる

683:nobodyさん
09/10/26 18:17:35
>>679
PHPの中身はともかくとしても、

PHP部が実行されて、DBが書き換えられるなどした後、
出力などがなければ<?php から ?>までが無くなったテキストが、
ヘッダなどがついてブラウザに渡され、それからjavascriptが動くので、
ブラウザがうけとるのは
function A1(){
if(confirm('ごまだれですか?')){

}
}
になります。



684:nobodyさん
09/10/26 19:14:03
function A1(){
if(confirm('ごまだれですか?')){

window.alert('内容を変更しました。')
}
}
抜けてた

685:nobodyさん
09/10/26 21:38:32
>>683で答えでてるじゃん

686:nobodyさん
09/10/26 22:16:19
初心者相手に悪いけど、これは吹いたww>>679

687:nobodyさん
09/10/26 22:27:35
mysqlの問題と思ってる時点でアレだな

688:nobodyさん
09/10/26 23:39:47
「ごまふあざらあし」が気になってプログラムが進みません!

689:nobodyさん
09/10/27 00:54:28
クライアントへhtmlを送る時に、ボタンと、押した時にサーバーサイドで実行する
クエリを書いておく事が出来る。
というフレームワークのアイデアを頂きました。
クレームワームの名前は「ごまふあざらあし」にしようと思います。

690:nobodyさん
09/10/27 10:58:21
ごまだれですか?

691:nobodyさん
09/10/27 11:16:23
いえ、「ごまふあざらあし」です

692:nobodyさん
09/10/27 11:34:04
いっそPHPonJavascript HTTP通信で。

693:nobodyさん
09/10/27 11:44:23
PHP側で実行する内容が、htmlソースから丸見えになるんで良くないなw

694:nobodyさん
09/10/27 15:59:34
>>693
SQLをクライアントで構築して送信する前システムを思い出した
最悪だな

695:nobodyさん
09/10/27 19:25:48
"name":"名無し","body":"あいうえお"
このように書かれたテキストファイルから「名無し」「あいうえお」を取得する方法は
正規表現でひとつずつ抜き出すほかにありますか?


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4814日前に更新/231 KB
担当:undef