くだすれPHP(超初心者用)4
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/06/13(金) 20:32:36ID:???もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
PHP使いが優しくコメントを返しますが、
お礼はPHPの布教と初心者の救済をお願いします。
PHP Home Page
http://www.php.net/
http://jp.php.net/
前スレ: くだすれPHP(超初心者用)3
http://pc11.2ch.net/test/read.cgi/php/1193295871/
適当に関連スレ(マルチはだめぽ)
【PHP】下らねぇ質問はここに書き込みやがれ 69
http://pc11.2ch.net/test/read.cgi/php/1211879073/
0521nobodyさん
2008/10/21(火) 09:15:38ID:???webサイトの作成に役立てようと、phpを勉強しはじめました。
入門書を一通り読んだのですが、webサイトにどう役立てるかわかりません。
テンプレート的なものをイメージしていました。
次に具体的に何を学べばよいのでしょうか?
0522nobodyさん
2008/10/21(火) 10:23:27ID:???0524nobodyさん
2008/10/21(火) 11:46:03ID:???0525nobodyさん
2008/10/21(火) 13:43:59ID:5M3hbzoPif (isset($_POST['namae']) && strlen($_POST['namae']) == 0) {
echo "名前書いて<br>";
}
かな・・・
0526nobodyさん
2008/10/21(火) 14:36:34ID:???windows上では動作するのにレンタルスペースで動かすと
ファイル削除、コピー、書き込みができません。どうしてですか?
0527nobodyさん
2008/10/21(火) 14:43:57ID:???0528nobodyさん
2008/10/21(火) 15:10:40ID:???人生に役立てようと、女心を勉強しはじめました。
入門書を一通り読んだのですが、人生にどう役立てるかわかりません。
テンプレート的なものをイメージしていました。
次に具体的に何を学べばよいのでしょうか?
0531nobodyさん
2008/10/21(火) 16:50:07ID:FLMyajbOつまらなすぎ
0532511
2008/10/21(火) 17:39:59ID:???原因わかる人教えて
テーブルタグ使ってて
<table>
<tr><td>ユーザID</td><td><input type="text" name="userid" maxlength="10" size=20></td>
<tr><td>パスワード</td><td><input type="password" name="pswd" maxlength="10" size=20></td></tr>
</table>
ってやってるんだけど
フォームの長さがサイズ指定しても変わってしまう。
input typeをpasswordにしてから。
これは直せないのかなぁ?
0534nobodyさん
2008/10/21(火) 19:04:47ID:???コピペPGの悪例だな
0535nobodyさん
2008/10/21(火) 19:42:03ID:???0538nobodyさん
2008/10/21(火) 20:26:31ID:???0539nobodyさん
2008/10/21(火) 21:43:31ID:???・コメント欄を読まない
・問題の詳細についてググりすらしない
・未知の脆弱性に対して敏感でない
・精神的に幼稚である
0540nobodyさん
2008/10/21(火) 21:56:30ID:???サイトはどこかにないですかね?
社内LAN環境で鯖を立ててphpを動かそうと思っていますが
NETにつなげないため調べ物ができず困っています…
サイトダウンローダー等も試してみたのですが
CGIに対応しているダウンローダーが無くうまく落とせませんでした
0542nobodyさん
2008/10/21(火) 22:02:37ID:???少しは調べたのかな?
http://docs.php.gr.jp/
0543nobodyさん
2008/10/22(水) 08:23:23ID:P24H2Ub2一通りの攻撃の手法と防御法は覚えたけど未知の脆弱性に対してどうすればいいか正直わからない。
この機会に教えてください。
0544511
2008/10/22(水) 09:39:01ID:???コピペではないのですが、つけたりつけなかったりです。
CSS、今から調べてみます。
調べるのが遅いんですよね・・・効率悪い探し方をしているのかも。
0546511
2008/10/22(水) 09:55:50ID:???0547511
2008/10/22(水) 13:49:18ID:???認証実行(ログインボタンを押した時)した際
DBからID、PWを全て取り出して
1つ1つ合っているかどうか検証するのですよね。
if($user==(DBから取り出したID) && $pswd==(DBから取り出したPW)){
$url = "index.php";
header("Location:$url");
}else{
echo "ちがうがな!";
}
}
こんな感じですよね?
この(DBから取り出した・・)の部分にどう書けばいいのかわからなくて・・
いっぱいあるわけですよね
複数のID&PWを1つにまとめて出して確認する方法が良くわからない
0548nobodyさん
2008/10/22(水) 14:01:45ID:???どんだけ無駄な
DBならSQLのWHEREでIDとパスワードを照合しろよ
結果の行数が1か0かで判断出来るじゃん
0549nobodyさん
2008/10/22(水) 14:05:08ID:???意外と陥りやすい罠かもしれない
0550nobodyさん
2008/10/22(水) 14:25:22ID:???DBを使ってる理由を問いたいくらいだ
0551547
2008/10/22(水) 14:27:34ID:???だいぶググってみましたが
よくわからないです。
入門サイト見ながらやってるんですが
>>548,549
のっけから間違っちゃってるってことでしょうか?
0552nobodyさん
2008/10/22(水) 14:29:57ID:???0553547
2008/10/22(水) 14:40:12ID:???先輩2人は参考書も買わずに半日かからずに出来たそうです。
僕は2日かかってます。
自分でも何故こんなに理解力が無いのかと思うと嫌になります。
今日は帰りに入門書を買って帰ります。
ありがとうございました。
0554nobodyさん
2008/10/22(水) 14:55:22ID:???認証部分なんて30分もかからん、多分その先輩もそうだろう
理解力ではなくて基礎が足りん
PHPの文法やアルゴリズム、DBの基礎とSQL構文、知っておくべきことを知らないから時間がかかる
知った後は早いもんだ
0555nobodyさん
2008/10/22(水) 15:18:05ID:???絶対やるなよ
「パスワードをハッシュ化(暗号化)保存することを法律で義務化するくらいのことが必要だと思う」
ttp://neta.ywcafe.net/000910.html
0556553
2008/10/22(水) 15:44:06ID:???とりあえずログインをやろうと思って
DBに追加したIDとPWをちゃんと読み込めるかどうか試そうと思って。
それでずっとつまづいてます。
自分でもすぐ出来ると思ったんですが・・・
今日中に終わらせると言ったもんだから今日中に終わらせないと
0557nobodyさん
2008/10/22(水) 15:57:40ID:???0558553
2008/10/22(水) 16:03:03ID:???$user = $_POST['userid'];
$pswd = $_POST['pswd'];
if($user==$row['name'] && $pswd==$row['pass']){
$url = "index.php";
header("Location:$url");
}else{
echo $error;
}
この$row['name']ってところは配列ですよね。
ここに配列の中身全部出せばいいんじゃないかと思ってます。
「やさしいPHP」という本を見てるんですが、詳しくは載ってなくて
0559nobodyさん
2008/10/22(水) 16:03:06ID:???mysql_connect()とかで接続できてるの?
SQLの構文は知ってるの?
君がどこまで理解してるのかが全然わからないw
AUTHとか使って簡単に済ませちゃえば?
0560553
2008/10/22(水) 16:21:52ID:???構文はスコシしか知らないと思います。
追加や一覧表示、削除は出来ました。
0561nobodyさん
2008/10/22(水) 16:56:11ID:???>>558で$rowを事前に用意しようとするのが間違い
postのuseridとpswdでDBに対してSQL発行(SELECT文)して存在するかチェック
(>>555の点を注意するならハッシュ化したpswdで比較)
で、結果に応じて表示を行う
な?単純なものならこれだけだ
0562553
2008/10/22(水) 17:27:48ID:???ありがとう、わかったようなわからないような
でもなんとなく・・・いや、とりあえずもう少し頑張ってみる。
またきます。
0564562
2008/10/22(水) 19:58:59ID:???人気高いやつを注文したっす
金曜日には届きますけど、それまで教えて貰いたいです。
あの・・・もしよければソースそのまま
どこかのアップローダにアップするので
訂正もしくは、ここは訂正すべき、という部分を指摘してもらえないでしょうか?
0566nobodyさん
2008/10/22(水) 20:27:00ID:???0568nobodyさん
2008/10/22(水) 21:46:42ID:Qg6SK/1U<?php echo"<〜>" ?>
<?php if(〜) {
echo"<iframe src〜 />"; } ?>
と、あって、3行目のecho(iframe)が表示される時1行目の
<?php ?>を丸ごと消去したいのですが、どうしたらいいですか?
0569nobodyさん
2008/10/22(水) 21:54:58ID:???0570564
2008/10/23(木) 04:51:02ID:???一応これのlogin.phpなんですけど〜〜(;;;;;;
8行目から23行目にかけてのとこなんすけどぉ〜
ここにDBから呼び出したIDとPWを書いて認証したいんですけど
DBの書き方がわからへん・・・。
0572nobodyさん
2008/10/23(木) 08:47:21ID:???その後、たぶんセッション引き回すんだろうし。
0573nobodyさん
2008/10/23(木) 08:56:53ID:???$sql = "SELECT * FROM user_pwd WHERE user ='$user'and pass = '$pswd'";
$res = mysql_query($sql,$conn);
$resになにが入ってるか理解できてないと思う
$resにはDBのuser_pwdテーブルのuser列が$userで更にpass列が$pswdのオブジェクトが入ってる
言い換えると
$userと$pswdが一致してるレコードがあれば$resに格納
つまり君の言う認証はSQL文を発行した時点で完了してる
ま>>561さんが言ってるんだけどねw
0575nobodyさん
2008/10/23(木) 09:20:09ID:???おまいも理解してねぇのか
結果セットはレコードそのものじゃねぇ、発行結果のオブジェクトだ
あとこの場合のSELECTはCOUNTで行数数えるだけでいい
で、結果セットからnum_rowsして1か0かで判断
0576570
2008/10/23(木) 09:37:43ID:???今からやります。
できるかなあ。
0577570
2008/10/23(木) 10:23:21ID:???$kekka="SELECT pass FROM user_pwd WHERE user=".$userid;
if ($_SERVER["REQUEST_METHOD"]=="POST"){
if($kekka=$pswd){
echo "Okie.";
}
elseif($kekka!=$pswd){
echo "bad.";
}
else{
echo "noID.";
}
}
こうですか・・??
0578nobodyさん
2008/10/23(木) 10:37:20ID:???ダァァーー理解してねぇ
$kekkaにはSQL文が入るのに、なぜ$pswdと比較出来る!
動作だけならこう
$uid // POSTからとったユーザIDとする
$passwd // POSTからとったパスワードとする
$sql = "SELECT COUNT(*) FROM tablename WHERE userid='$uid' AND passwd='$passwd'"
$res = mysql_query($sql);
list($nums) = mysql_fetch_assoc($res);
if ($nums == 0){
//NG
}else{
//OK
}
0579nobodyさん
2008/10/23(木) 10:37:55ID:???0581577
2008/10/23(木) 10:49:49ID:???$pswd = $_POST['pswd'];
$sql = "SELECT COUNT(*) FROM user_pwd WHERE user='$user' AND pass='$pswd'";
$res = mysql_query($sql);
list($nums) = mysql_fetch_assoc($res);
if ($_SERVER["REQUEST_METHOD"]=="POST"){
if($nums==0){
echo "bad";
}else{
echo "okie";
}
}
こうですか?
出来ないよーーーーーーーーーーーーーーーーーーーーわからない
焦る 軽いノイローゼ状態だー
0582nobodyさん
2008/10/23(木) 10:51:35ID:???何も分かってないのに偶然うまく動くとかえって自分の首を絞めるよ.
>>570のコードも addtest.php って本人が書いたわけじゃなくて
職場の既存コードのコピペじゃないの?
SQLインジェクション脆弱性あるよ.
>>578 $uid と $passwd をエスケープしないのは初心者にとって有害な例示だと思うよ.
0583nobodyさん
2008/10/23(木) 10:52:51ID:???ASQL文を作る。
ユーザーリクエストを含めるときはインジェクション対策のために専用エスケープを忘れずに。
B発行する。
C結果セットを受けとる。
Dループさせるなり取り出すなりして表示。
E接続を切る。
0584570
2008/10/23(木) 10:55:53ID:???といってもSQL構文のところだけです。
他はナントナクはわかって書いてます。
「とりあえず動かしてミロ」とのことなので
セキュリティの事は後に言われると思います。
0585nobodyさん
2008/10/23(木) 10:56:30ID:???そこからなのか・・・
>>580
そんなこと言ったら「担当替えろ」で終わりだ
そもそもモデル化してないのにゴチャゴチャやったら>>581みたいなことになる
まずは最低限の動作、そこから拡張しかないのだ、この場合
>>581
DBのオープンすらやってないってことでFA?
そのスクリプトには事前処理とかないわけ?
mysql_connectはどこかで使ってるか?(認証処理より前の段階で)
0586nobodyさん
2008/10/23(木) 10:57:06ID:???if($nums==1){
//OK
}else{
//NG
}
のほうがいいような。
0587nobodyさん
2008/10/23(木) 10:58:17ID:???まずは動くところまで持っていくしかないな
そこから先輩もツッコミや指導を予定してるんだろうし
0588nobodyさん
2008/10/23(木) 11:11:28ID:???モデル化とか関係ないし
とりあえずの動作も必要だが
それ以上にSQLインジェクションの事を考えさせる事の方が重要
0589581
2008/10/23(木) 11:13:20ID:???ソースもだいぶごちゃごちゃしてました。まとめますと今こんな事書いてます。
http://amezolog.hp.infoseek.co.jp/source/up8378.zip
0591nobodyさん
2008/10/23(木) 11:20:45ID:???見た
WHEREのところで「user=」ってなってるけど、
user_pwdテーブルはIDとpassフィールドなんだよな?
じゃぁ「ID=」にしないと
0592nobodyさん
2008/10/23(木) 11:28:25ID:???11行目のifの中に入れたほうがいい
理由は、今のままじゃ毎回SQL発行しちゃうから
0593589
2008/10/23(木) 11:52:15ID:???ささっと解決しました。情けない。
たぶん「あらら、出来てないのね」と思われたと思います。
>>591
そう訂正されました。はい。
>>592
その通りでした。
そう訂正されました。
みなさん、ありがとうございます。
だけど、まだまだわかってないなぁ。
次はMD5化して登録と、ログインです。
これは出来そうな気がする・・・。
0594589
2008/10/23(木) 13:06:38ID:???$userid = $_POST['userid'];
$pswd = $_POST['pswd'];
$pswd2= md5($pswd);
$host = "localhost";
$conn = mysql_connect($host, "root", "");
$db_selected = mysql_select_db('webauth', $conn);
$sql = "SELECT * FROM user_pwd WHERE name='".$userid."' AND pass='".$pswd2."'";
$res = mysql_query($sql);
if(mysql_fetch_assoc($res)){
$url = "index.php";
header("Location:$url");
}else{
echo "エラー";
}
}
一応のせときます。
結局こうしました。
0595nobodyさん
2008/10/23(木) 14:23:32ID:???2chで聞いてるなんてバレたら首にされかねんぞ。
0596594
2008/10/23(木) 15:03:26ID:???家だけにしときます。
忠告ありがとうございます。
0597nobodyさん
2008/10/23(木) 15:56:27ID:vhIkvqq/ここで聞くのもわるくない。
客先行く前にきちんと疑問点は解消しておけ。
出て行って大変だよ。
0598nobodyさん
2008/10/23(木) 16:18:43ID:???「とりあえず自力でやってみろ、教えるのはそれからだ」ってことじゃない?
何でもほいほい教えちゃうのはよくない。
0599nobodyさん
2008/10/23(木) 16:59:24ID:???作れないってことは検索力が欠けてるってことがわかるし。
ま、2chとか掲示板で聞いてたらぶん殴るがw
0600nobodyさん
2008/10/23(木) 17:05:54ID:???どうしてそんな職に就いたかねぇ・・・
0601nobodyさん
2008/10/23(木) 18:07:36ID:???そんなもんさ
俺の下についてる連中もやる気だけある素人だし
その方が変なクセとか勘違いとか腐ったプライドとかなくていいがの
0602nobodyさん
2008/10/23(木) 19:27:42ID:vhIkvqq/0603nobodyさん
2008/10/23(木) 20:17:53ID:???都合が悪い意見は無視とかいい性格してるし
0604nobodyさん
2008/10/23(木) 21:19:01ID:???verは5.0.5なんですけど、インストールが終わって設定もやって、最後のチェックで、必ず一番下の
Apply security settingsでエラーになります
大学の研究でPHPはじめたのですが、環境そろえる段階でこけています。
どなたかお力をお貸しください
0605nobodyさん
2008/10/23(木) 21:21:20ID:???それとなんでわざわざ古いの使うのか
0606nobodyさん
2008/10/23(木) 21:53:51ID:LaxpC4NS掲示板 / 問い合わせフォーム / UPロダ / ショッピングカート
PHPを独学で↑を0から作成できるレベルになりましたが、実際の
PHPプログラマとして就職するには、次に何を作れたら良いでしょう?
どれ位のレベルになれば、PHPプログラマとして雇ってもらえますか?
ちなみに今は、本屋のバイト(23歳)です。
0607nobodyさん
2008/10/23(木) 21:55:09ID:???0608nobodyさん
2008/10/23(木) 21:58:25ID:???本当の勉強は就職してから始まるので、いまは面接のレベルを上げた方がいいと思います。
0609nobodyさん
2008/10/23(木) 22:00:36ID:???0610nobodyさん
2008/10/23(木) 22:08:27ID:???一度アンインスコしてから入れなおしましたが、必ず上記の項目でエラーが出ます
原因わからず・・・
verですが、研究室で使用しているのがこれなんで、使えとのことです
0611606
2008/10/23(木) 22:10:01ID:LaxpC4NSfeiz−design.コム/inquiry.ピエチピ
0612nobodyさん
2008/10/23(木) 22:11:35ID:???ん、十分じゃね。本屋のバイトなら対人もある程度大丈夫だろうし。
技術的な部分は就職してからでいいし。自信もってGo。
0613nobodyさん
2008/10/23(木) 22:23:55ID:???valueの値をクォーテーションで囲ってないのと、
メールアドレスバレバレ。。
0614nobodyさん
2008/10/23(木) 22:26:31ID:???0615nobodyさん
2008/10/23(木) 22:33:52ID:???0617nobodyさん
2008/10/23(木) 22:39:31ID:???バカ専門学校出ててもこんなふうには作らない。
でも、こういうことは独学じゃわからないことだから、
まず就職した方がいいよ。2ちゃんでぐだぐだ言い合ってるより。
0618606
2008/10/23(木) 22:39:41ID:LaxpC4NS『htmlspecialchars』でやれば上手くでしょうか・・・
『’』なしてもテスト送信できたのでスルーしてしまいました(汗
そんで、私はどーすれば・・・
今後の目標なんかを・・・
0619nobodyさん
2008/10/23(木) 22:42:19ID:???0621nobodyさん
2008/10/23(木) 23:10:49ID:???■ このスレッドは過去ログ倉庫に格納されています