【PHP】下らねぇ質問はここに書き込みやがれ 55
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2007/09/29(土) 18:35:56ID:YlkpEUW6PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 54
http://pc11.2ch.net/test/read.cgi/php/1189309377/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0656nobodyさん
2007/10/08(月) 14:32:28ID:???出席管理っつうぐらいだから学校関係者か?
未登録IDを検出するんなら select id from テーブル名 where id = 入力id;
この問い合わせで済む
やろうとしているのは何? select * from テーブル名; で登録者のデータ全件
引っ張ってきて、フォームから入力されたIDの配列と比較して未登録IDを導く
ようなそういうこと?
俺バカだから理解できねえよ
0657nobodyさん
2007/10/08(月) 14:50:40ID:???8行目だけで十分じゃないか
0658nobodyさん
2007/10/08(月) 15:07:07ID:???$_POST["id"]配列を使ったループで表示処理をすればいいんじゃないの?
$result にSQL結果のIDリストが入ってるとして
foreach($_POST["id"] as $id) {
if(in_array($id, $result)) {
echo "あった";
} else {
echo "なかった";
}
}
みたいな。
$resultまでソートする必要なかろう。
0659nobodyさん
2007/10/08(月) 15:17:08ID:???>その際、与えられたIDの情報をSQLから取得し、登録されていないIDが与えられている場合警告を出そうと考えています。
>このとき、フォームに入力された順に内容を表示する必要があります。
この部分は自分なりに作ってるのか?
丸投げで代替案とか聞いてんじゃねえぞ
0660nobodyさん
2007/10/08(月) 15:17:16ID:???言ったらよろしw
0661nobodyさん
2007/10/08(月) 15:27:23ID:???俺だったら入力IDの数だけSQL叩いたりしないで
id in (xxxx,xxxxx,xxxxx....)
で一発で引いちゃうな。その方が速い。
0662652
2007/10/08(月) 15:30:03ID:9TeQf+fQみなさんありがとうございます。
文章が読みづらく、皆さんにご迷惑をお掛けして申し訳ないです。
>>656 さん
学校関係者ではありません。
目的は、SELECT id FROM テーブル名 WHERE ID='フォームからの入力 1' OR ID='フォームからの入力2' ......
でフォームから入力されたIDを持つ登録者のデータだけを抜き、
フォームから入力された配列と比較して未登録IDを導くことです。
>>658,660 さん
言われてみて、確かにその通りだと猛省しました。
ソートせずに$_POSTから間引けばよかったのですねorz
SQLからのレスポンスをいかにハンドルするかで頭がいっぱいでしたorz
>>659 さん
他の部分は機能する状態で未登録IDの処理だけ放置していました。
皆さんご多忙の中ありがとうございました。
0663nobodyさん
2007/10/08(月) 16:35:27ID:???0664nobodyさん
2007/10/08(月) 21:37:08ID:???0665nobodyさん
2007/10/08(月) 21:42:03ID:???0666nobodyさん
2007/10/08(月) 22:01:53ID:aQD+Fx51シンプルなサンプルってねーかしら?
0667nobodyさん
2007/10/08(月) 22:35:22ID:???0669nobodyさん
2007/10/08(月) 22:54:48ID:aQD+Fx51JavascriptでXMLRPCを叩く
シンプルなサンプルが載ってるサイトのURLを
いくつかくださらねーかしら?
0670nobodyさん
2007/10/08(月) 22:55:27ID:???0672nobodyさん
2007/10/09(火) 00:25:17ID:7LOIBqtZこないだここで質問させていただいたPHPマニュアルの著作の件に関して
返信が来ましたので抜粋します
feel free to use the examples in the manual in any way you like.
The only ethical concerns is when you reprint an entire manual chapter
with slight changes without giving credit to php.net.
とのことです
どうもありがとうございました
0673nobodyさん
2007/10/09(火) 03:01:48ID:???0674nobodyさん
2007/10/09(火) 03:09:34ID:???0675nobodyさん
2007/10/09(火) 08:57:39ID:???0676nobodyさん
2007/10/09(火) 09:04:15ID:???ま、使い物になるかは別だが
0677nobodyさん
2007/10/09(火) 09:13:08ID:1fe4dxvasystem関数以外の関数を使って呼び出すことはできますか?
ある有名なレンタルサーバーを使っているのですが、
ソースが外部に流出していまして、困っています。
レンタルサーバーなのでsystem関数も使えません。
宜しくお願いします。
0678nobodyさん
2007/10/09(火) 09:15:21ID:???自分でPECLモジュール作っちゃうのが1つの手だが
レン鯖だとPECLの組み込みもできないんじゃなかろうか。
0679nobodyさん
2007/10/09(火) 10:30:01ID:???0680nobodyさん
2007/10/09(火) 10:55:51ID:???ドキュメントルート下に置いてるのがhttpd経由で漏れてるのか、
ドキュメントルートより↑に置いてるのが共有ユーザに漏れてるのか?
で対処方法は色々じゃね?
てかそのレンサバにゴラァしなよ。
0681nobodyさん
2007/10/09(火) 14:18:50ID:Horj9f1y$title = $item[title];
echo "$title\n";
の実行結果
title title title title
を
タイトル一覧:title title title title
のように表示させたいのですが
echo "$title\n";
や
echo "タイトル一覧:\n";
echo "$title\n";
だと
タイトル一覧:$title タイトル一覧:$title タイトル一覧:$title タイトル一覧:$title
になっちゃいますよね
おねがいします
0682nobodyさん
2007/10/09(火) 14:20:26ID:Horj9f1yecho "タイトル一覧:$title\n";
や
echo "タイトル一覧:\n";
echo "$title\n";
だと
0684nobodyさん
2007/10/09(火) 14:49:14ID:Horj9f1yヒントありがとうございます。
実際は取得してるのが$titleだけじゃないので出来そうで出来ないです
ちょっとGOOGLEで検索してきます
0685nobodyさん
2007/10/09(火) 15:16:10ID:???POSTでフォームを送信した後、ブラウザの戻るボタンで戻ると、
[ 警告:ページの有効期限切れ ]
と、表示されますが、これを表示させずにページを表示させる方法はありませんか?
この場合、リロードするとページが表示されますが、
状態としては、警告を出さすにリロードさせる方法になると思います。
0686nobodyさん
2007/10/09(火) 15:44:36ID:???foreachの前にタイトル一覧という文字列をechoで表示すればいい話のような…。
そんなに複雑な処理でもしてるのかな。
0688nobodyさん
2007/10/09(火) 16:50:04ID:???こっちのほうがよっぽど問題あるんじゃね
もっとしっかり設計汁!
0690nobodyさん
2007/10/09(火) 18:32:28ID:2B20Voue1)イベントの管理ツールを作ろうと思っています。(登録システム)
2)各イベントへの参加者数は不定で、1人の時も10人の時もあります。
3)参加者はそれぞれIDが振られており、それを参照することで詳細情報を確認できます
※IDのないユーザもいる その場合はユーザ固有のURLを別に登録できるようにしたい
上記のような条件の場合、どういうプログラムを組めばいいでしょう?
参加者数が上限が決まってたら、DB的に
sankasha_1〜sankasha_10 sankashaURL_1〜sankashaURL_10 とフィールドを物理的に
用意すればいいのかと思いましたが、そうではないのでPHPのプログラム側で
工夫しなければならないと思います。が、思いつきません。
どうしたらいいんでしょう? アイディアもらえたら嬉しいです。お願いします。
0691nobodyさん
2007/10/09(火) 18:41:37ID:???参加者のテーブル
運用テーブル
として
運用に登録する際IDがない人の場合は登録する際にURL+参加者FKを0に
って感じにするかな
0692nobodyさん
2007/10/09(火) 18:49:21ID:???sankasyaフィールドに配列を文字列にして特攻
0693nobodyさん
2007/10/09(火) 19:38:19ID:???0694nobodyさん
2007/10/09(火) 20:07:07ID:???もう破綻は決まったな
0695nobodyさん
2007/10/09(火) 20:08:35ID:???0696nobodyさん
2007/10/09(火) 20:28:16ID:???0697nobodyさん
2007/10/09(火) 20:29:07ID:???改善したいと思うならRDB勉強すればいい
0699nobodyさん
2007/10/09(火) 20:55:16ID:???0700nobodyさん
2007/10/09(火) 20:56:42ID:???0701690
2007/10/09(火) 20:58:29ID:???今まで住所録くらいしか作ったことないので、皆さんのアドバイス見てると
こりゃ大変だなと改めて感じています。
一つ思ったんですが、�@基本情報(開催日・開催地など「固定のもの」) と
�A参加者情報(数が定まらないもの) を同じテーブルに入れると一気に難度が上がるんですね
なので、複数のテーブルに分けることにしました。
ご意見で言うと、>>691さんのやり方だと思うんですが、そのアドバイスの中である
「運用テーブル」というのが意味がわかりません。どういう役割のものでしょうか?
自分の中では�@と�Aの二種類しか存在しないようなイメージだったので。。
話がPHPの話題からだいぶズレているとは思いますが、申し訳ないですが
教えてください。「(>>691)運用に登録する際IDがない人の場合は登録する際にURL+参加者FK」の
「参加者FK」とは何かもわからないのでお願いします。ほんとにすみません
0704nobodyさん
2007/10/09(火) 21:14:33ID:???仕事大切にしろ。
0706nobodyさん
2007/10/09(火) 21:36:03ID:???以前、どこかのWebページで、ヘッダーに何かすることでできたとおもうんですが
>>688
いや、設計の問題ではないんですけど・・・
(ブラウザの戻るボタンを無効にできますか?)
>>689
問題は、ブラウザの戻るボタンで戻られた場合の話です。
0707nobodyさん
2007/10/09(火) 21:40:00ID:???0709nobodyさん
2007/10/09(火) 21:54:54ID:???イベント情報、会員情報
を元に実際に運用するテーブルの事。
イベント情報テーブルに、PK(プライマリーキー)、イベント名、開催時期、終了時期
会員情報テーブルに PK、ID,PASS,その他情報
とあった場合
会員が参加登録をした時に運用テーブルに
イベント情報、会員情報それぞれのFK(フォーリンキー)を入れる。
って感じ。
PK,FKの意味についてはカッコ書きのをググればでるよ
0710nobodyさん
2007/10/09(火) 22:03:44ID:???とフィールドをつくって
会員FKがある条件の時にURLを表示ってやる。
ただ、会員FKの0とかでダミーを事前につくっておく必要がある事に今気づいた
0711690
2007/10/09(火) 22:04:35ID:???ありがとうございます
まだ理解できない部分は専用の板で訊くことにします
凄く勉強になりました、ありがとうございました!
0712689
2007/10/09(火) 22:40:40ID:???tmp.php
<?php
session_start();
if (isset($_SESSION['test'])) {
echo $_SESSION['test'];
}
?>
<form action="loc.php" method="POST">
<input type="submit" value="test">
</form>
loc.php
<?php
header('Location: tmp2.php');
tmp2.php
<?php
session_start();
$_SESSION['test'] = 'aiueo';
?>
post ok
こんな感じでやってみれ
多分期待してる動きになるはず
あと、戻るボタン無効化はJSでhisotryをいじるぐらいじゃ?
それ以外の方法あったら俺も知りたい
0714nobodyさん
2007/10/09(火) 23:43:16ID:G9B1/Oicメール一覧があって、それぞれのメールのアタマのチェックボックスにチェックを入れて
【チェックしたメールを削除する】 ってボタンを押したら削除されたりしますが、
アレってどういう仕組みになってるんでしょう。
各メールにそれぞれ削除ボタンがあるのなら自分でも作れるんですが、一括削除の
仕組みがわかりません
暇なかた、どなたか教えてください よろしくお願いします
0715nobodyさん
2007/10/09(火) 23:48:00ID:???まず↓嫁
http://www.tagindex.com/html_tag/form/input_checkbox.html
あとはPOSTされたデータ読めば分かるだろ
0716nobodyさん
2007/10/09(火) 23:53:23ID:???<input type="checkbox" name="example[]" value="1">サンプル1
<input type="checkbox" name="example[]" value="2">サンプル2
<input type="checkbox" name="example[]" value="3">サンプル3
<input type="checkbox" name="example[]" value="4">サンプル4
こんな感じでname属性に[]をつけると
$_POST['example']の中に選択したやつが配列で入ってくる
0717nobodyさん
2007/10/09(火) 23:55:16ID:???0718nobodyさん
2007/10/10(水) 01:04:56ID:???出来ました。ただ、登録したデータを一覧表示すると、 Array と表示します。
丸ごとDBに登録じゃまずいですよね 実用の時は、
質問2 休日の過ごし方は?(複数選択可)
<br>
<input type="checkbox" name="q2" value="映画鑑賞">映画鑑賞
<input type="checkbox" name="q2" value="ドライブ">ドライブ
<input type="checkbox" name="q2" value="買い物">買い物
上記は趣味を登録するフォームなんですが、こういうのって
「映画鑑賞」「ドライブ」「買い物」の部分を生成される配列から抽出して、
「,」で連結したあとに、dbに送信してるんですか?
0719nobodyさん
2007/10/10(水) 01:36:01ID:???そんなもん、DBのテーブル設計による。
1ユーザ1レコードで格納するんならカンマで連結して1カラムに押し込み〜
なんてなるんだろうが、それだと検索しにくいし後々加工もしにくいから
「ユーザID,属性」みたいなテーブルにして、選択した数の分だけ
レコードを追加してやった方がいいんじゃないか?
その場合、連結なんてしないで数の分だけループしてinsert。
0721nobodyさん
2007/10/10(水) 01:53:52ID:???どうもです。登録の方が削除より話がわかりやすいような気がして
登録の方で聞いてしまいました。 基本的な部分は同じだろう、と (すみません)
>その場合、連結なんてしないで数の分だけループしてinsert。
というのは
userName|shumi
-------------------
yamada|映画鑑賞
yamada|ドライブ
って形になるんでしょうか? 確かにこっちのほうがいいですねー
0723nobodyさん
2007/10/10(水) 02:09:52ID:???>$_POST['example']の中に選択したやつが配列で入ってくる
~~~~~~~~~~~~~~~~
って書いてあるんだからそれをそのまま表示すると型が表示されるのは普通
0724nobodyさん
2007/10/10(水) 02:49:28ID:???だと、htmlには©じゃなくてcと表示されてしまいます。
GETで©を取得してそのまま©と表示させるにはどうしたらいいでしょうか?
文字コードはUTF-8です。よろしくお願いします。
0726724
2007/10/10(水) 03:00:00ID:P3ev0KiIsageてました。
0727nobodyさん
2007/10/10(水) 03:04:42ID:tzNR6m8r0728nobodyさん
2007/10/10(水) 03:05:47ID:tzNR6m8rみんな???で気持ち悪いんだけど
0731nobodyさん
2007/10/10(水) 03:28:56ID:???0733nobodyさん
2007/10/10(水) 04:55:47ID:???0735733
2007/10/10(水) 05:40:36ID:???まじでDBなんて覚える必要ないよ
FWが勝手にやってくれるからFWの使い方覚えたほうが数倍いい
0736nobodyさん
2007/10/10(水) 06:04:03ID:???0738nobodyさん
2007/10/10(水) 06:49:33ID:???PGってあんま関係ないんだよな・・・・
小規模なもんはてきとーにDB設計しても問題ないし・・・・
>DBなんてFWに勝手にやらせればおk
って思ってる時点でしれてるが・・・
0739nobodyさん
2007/10/10(水) 07:04:51ID:???0740nobodyさん
2007/10/10(水) 07:24:15ID:???そのデータ構造にデータを入れなきゃいけないのだから。
0741nobodyさん
2007/10/10(水) 07:41:39ID:???ほぼ迷うことなく決めることができる、という意味では確かに8割完成かな。
0742nobodyさん
2007/10/10(水) 07:43:17ID:???0743nobodyさん
2007/10/10(水) 07:51:22ID:???小一時間沈黙…(!! frameworkか…)
orz
0744nobodyさん
2007/10/10(水) 08:25:34ID:???0745nobodyさん
2007/10/10(水) 09:18:50ID:P3ev0KiI1.POSTでkeywordを取得
$keyword = htmlspecialchars($_POST['keyword'],ENT_QUOTES,'UTF-8');
2.$keywordをDBに保存
これだけで大丈夫でしょうか?
と言うより普通こうですか?
0750nobodyさん
2007/10/10(水) 09:30:20ID:???0751nobodyさん
2007/10/10(水) 09:32:20ID:???出力する事を前提としていると考えるのが妥当。
0752nobodyさん
2007/10/10(水) 09:33:21ID:???0753nobodyさん
2007/10/10(水) 09:33:49ID:???0754nobodyさん
2007/10/10(水) 09:38:29ID:OYZiPU1d横からすみません。私もDBへ生データを入れていますが、
クライアントから送信されたデータを何もせずに入れていることに少し不安があります。
入力値が半角英数であれば、半角英数チェックを掛けてから入れますが、
日本語も含まれるような場合だと、そのまま入れています。
何かチェックをかけるべきでしょうか?
システム予約語的なマズイ文字があると前に聞いたことがあるのですが・・・
■ このスレッドは過去ログ倉庫に格納されています