くだすれ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/
0482465
2008/10/14(火) 08:40:33ID:OazE8u180484nobodyさん
2008/10/14(火) 09:54:18ID:???>>442と同じことを>>465で訊いてしまう感覚とか、
C:\php\pear(>>436等) or C:\php5\pear のどっちに PEAR を入れたのか本人もよくわかってないとか、
目先の対症療法では解決しない根深いものを感じるよ。
0485nobodyさん
2008/10/14(火) 10:01:00ID:???0487nobodyさん
2008/10/14(火) 12:30:14ID:PhS+pU3Sphpを使ったwebサイト作成の勉強をしているのですが
C:\Users\ユーザー名\Documents\サンプルサイトの中でwebサイトを作っているのですが
C:\xamppの中にあるhtdocs内にあるphpを読み込もうとしても上手くいきません。
phpの初心者なんで概念自体があやふやなので変な質問でしたらごめんなさい<(._.)>
0488nobodyさん
2008/10/14(火) 13:06:00ID:???0489nobodyさん
2008/10/14(火) 18:05:42ID:???0490nobodyさん
2008/10/14(火) 18:49:32ID:???0491nobodyさん
2008/10/15(水) 15:36:31ID:jArJnvnCそれを.htaccess下のフォルダに入れました。
メインのPHPでそのファイルを読み取り認証
その後、ID.datファイルを外部から読込んで
IDごとに違うページを表示させているのですが
セキュリティ的に問題などあるでしょうか?
補足
ID.datも.htaccess下に入れてあります。
ちょっとした顧客の納期表示に使おうと思っています。
0492nobodyさん
2008/10/15(水) 15:40:03ID:???0493nobodyさん
2008/10/15(水) 15:42:31ID:jArJnvnCすいません
.htaccess .htpasswordファイルを置いてアクセス制限かけたフォルダです。
0494nobodyさん
2008/10/15(水) 15:43:47ID:???「.htaccessでアクセス制限しているディレクトリ配下」くらい予測しろ
>>491
.htaccessでdeny from allしてるなら直リン出来ないからまぁ安全じゃないか?
出来ればルート外に置くのがベストだが
0495nobodyさん
2008/10/15(水) 15:56:52ID:jArJnvnC>>494
ありがとうございました。
ルート内にあったのでルート外に置くようにしてみます。
0496nobodyさん
2008/10/15(水) 17:58:29ID:9ioAzBde0497nobodyさん
2008/10/15(水) 20:04:57ID:???使えるかどうかはともかく。
0501nobodyさん
2008/10/16(木) 17:46:31ID:???0502nobodyさん
2008/10/16(木) 18:09:17ID:???じゃぁ普通にレン鯖か
しかしレン鯖だとセーフモードやらパーミッションやら意識することが多いよな
・・・そうかそれも勉強か!
0503nobodyさん
2008/10/16(木) 18:21:05ID:???0504nobodyさん
2008/10/16(木) 20:03:13ID:???0505nobodyさん
2008/10/17(金) 13:22:48ID:???教えて頂けませんでしょうか。
0506nobodyさん
2008/10/17(金) 14:04:27ID:???コアの部分はPHPまぬある必見
PECLの分まで纏めたサイトなんてある意味マゾだ
0507nobodyさん
2008/10/18(土) 00:42:37ID:VyIaaBn5>>497
有難うございます。
只今、PHPと共にモバイルサイト構築を勉強中で、
Net_UserAgent_Mobileがどんな具合なのか使ってみたかったんですが
自分の力では無料サーバのセーフモード下にPEARを
インストールすることが出来ませんでした…orz
・無料サーバ
・php5.25
・セーフモード下
では、やはり不可能なのでしょうか。
どなたかご教授頂ければ幸いです。
0508nobodyさん
2008/10/18(土) 01:19:10ID:???ぶっちゃけ依存PEARも含めてアップロードしてパスを通せば使える
(共有ライブラリに依存しないなら)
インストーラでなければならないわけじゃない(依存が面倒なだけ)
0509nobodyさん
2008/10/19(日) 13:57:02ID:???サーバ側の処理はどうなりますか?
0510nobodyさん
2008/10/19(日) 13:59:27ID:???0511nobodyさん
2008/10/20(月) 11:13:17ID:???メール送信フォームのフォーム入力の所についてなんですけど
間違ってたら警告出して
間違ってなければ確認画面に飛ばすように書きたいんですけど
飛ばすと入力情報が消えてしまいます。
if (isset($_POST['oshibotan'])){
if (isset($_POST['namae']=="")){
echo "名前書いて<br>";
}
}else{
$url = "kakunin.php";
header("Location:$url");
}
}
なんとなく「そりゃ飛ばないわな」って思うんですが
わからない〜( p_q)
0513511
2008/10/20(月) 14:03:24ID:???上の通り書いてもエラー(「名前書いて」)が出ない・・すぐに飛んでしまう( p_q)
0514nobodyさん
2008/10/20(月) 14:22:25ID:???issetはその変数がセットされているかどうか
その中に==とか入れてる時点で間違ってる
次にecho "名前書いて<br>"; と飛ばす処理は同階層なので
今の書き方だとどちらかしか発生しない
あとLocationの使い方がその書き方でも飛ばしてくれるブラウザは多いが
書き方は間違っている
正しくはhttpとかスキーマからはじめないとだめ
0515nobodyさん
2008/10/20(月) 14:24:12ID:???次にecho "名前書いて<br>"; と飛ばす処理は同階層なので
今の書き方だとどちらかしか発生しない
これ忘れて1個}が多いので読み間違った
まぁどちらにせよどちらかしか発生しないが・・・
0516nobodyさん
2008/10/20(月) 14:24:16ID:???0517nobodyさん
2008/10/20(月) 14:30:59ID:???どう見ても間違いだろうが
if ($_POST['namae']==""){
これなら使っているWebアプリ等は多々あるが
if (isset($_POST['namae']=="")){
これはまず無い
というかこういう書き方出来るのかと思って
さっき試したらParse error出たし
0518nobodyさん
2008/10/20(月) 14:45:13ID:???0519511
2008/10/20(月) 18:00:40ID:???あんがと!!
自分で色々やってたらなんか出来た。
「なんか出来た」だからちゃんとわかってないかも
明日もまた質問するかもしれないけど
ありがとね!
issetはstrlenにしたよ。
よくわかってないのに見よう見まねで使ってる。
たぶんまだバグだらけ。
0520nobodyさん
2008/10/20(月) 18:48:20ID:???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 をエスケープしないのは初心者にとって有害な例示だと思うよ.
■ このスレッドは過去ログ倉庫に格納されています