<?php
$_REQUEST[$i]='jiroが$i人いる";
for($i=1;$i<100;$i++){
echo"$_REQUEST[$i]<br>";}
?>
これを
<?php
$_REQUEST[$i]='jiroが$i人いる";
for($i=0;$i<100;$i++){
echo"\$_REQUEST[$i]<br>";}
?>
するとエラーは表示されませんが
$_REQUESTを変数と見てくれなくなってやはりダメです
これはどういうことが原因してるんでしょうか
また、解決策を教えてくださいませ
ちなみに、表示させたい結果は
jiroが1人いる
jiroが2人いる
…
jiroが100人いる
です
No.1
- 回答日時:
まずスクリプトのコーディングがめちゃめちゃです。
めちゃめちゃすぎてどこから説明すれば良いのかわからないくらいです・・・。それとまだ$_REQUESTが何なのかを大きく勘違いしているみたいです。もともと$_REQUEST変数の使用自体推奨されてないみたいですし、一旦$_REQUEST変数の事は忘れましょう。なんか根本的に勘違いがあるみたいですよ。そもそも配列自体をわかってないように思います。この状態でスクリプトを書くのには無理があるので、一度入門書のサンプル等を組みながらひとつひとつ意味を調べて行ったほうがよいのでは?基本的な知識がないと、このような所でいくら質問をしても、その回答自体を理解できないんじゃないでしょうか。
ちなみにやりたい事をサクっと書くと
for($i=1;$i<=100;$i++){
echo "jiroが$i人いる<br>\n";
}
これだけじゃないですかね。$_REQUESTだのなんだのは、全く関係ないと思いますよ。
ありがとうございます
すいません、たしかにjiroの処理に$_REQUESTは不要で
wakame0729様の処理が一番です
私も質問した後に気がつきました.
本当にやりたいことは
オプションから選んだ項目に対して
それに応じた処理をするものですが
もう少しやりたい処理の内容を整理して
また$_REQUESTが本当に必要が否か検討して質問しなおさせてくださいませ
No.2ベストアンサー
- 回答日時:
まずPOSTとGETについて理解した方がいいですね。
ブラウザからサーバーに「WEBの内容を送って下さい」とお願い(リクエスト)する方法は2つあります。POSTとGETです。ブラウザに普通にURLを打ち込んだ状態、またはAタグでリンク先に飛ぶ場合はGETという方法でサーバーにリクエストしています。もう一つのPOSTですが、フォームを使ったリクエストがありますね、この<form>タグにmethod="xxxx"という属性があると思いますが、ここにmethod="post"と書くとPOSTという形式でリクエストをします。method属性を省略した場合またはmethod="get"と書いた場合はフォームでもGETになります。フォームであればinputタグ、selectタグなどが、URLのリクエストであれば?name=10というような尻尾の事をパラメータと呼ぶ事にしましょう。この時、受け取る側のスクリプトでは、GETが使われていれば$_GET,POSTであれば$_POSTにそのパラメータが$_GET["名前"]="値"、$_POST["名前"]="値"という形式で入ります。そして$_REQUESTにはGETであってもPOSTであっても$_REQUEST["名前"]="値"という形式で同時に入ります。
ちなみにGETとPOSTの違いですが、GETですとパラメータの長さに制限があるのに対し、POSTでは制限がありません。大きなデータを送るならPOSTです。また、GETはパラメータが全部URLの形で見えてしまいますが、POSTは一応隠されています。パラメータをあまり見せたくないという理由でPOSTを使う事もあります。
$_REQUEST変数の使用が推奨されないというのは以下の理由です。$_REQUEST変数に表れるパラメータはPOST,GET以外にもクッキーの値、サーバーの環境変数なども入ります。$_REQUEST変数の値を見ているだけでは、その値がどこから来たのか判断できません。例えばサーバーの環境変数を見ているつもりで$_REQUESTの値を参照している箇所があるとしますね?もし悪意があってスクリプトの内容を知っている人がいたら、サーバーの環境変数と同じ名前と任意の値をGETで送りつける事で、スクリプトを勘違いさせる事もできてしまいます。これが場合によってはセキュリティホールになり得ると言った意味です。
リクエスト元がGETなのかPOSTなのかが解っているのであれば、$_GET,$_POSTを使うべきだと思います。
この回答への補足
次のような処理がもし分れば教えて下さい
まず、mysqlのDBがあります
恋人DBの男テーブルがあるとします
男テーブルには次のデータが入ってます
ID Name birthday 年収 肩書
1 さとし 19840508 192 プー
2 ひろし 19840806 206 土方作業
3 ともひさ 19830203 36 ストリート
4 こうじ 19850321 567 設計士
5 権助 19431011 3257 市長
次に
profile.phpというページに
オプションボックスがあってリストが次のようになっています
1 さとしのプロフを見る
2 ひろしのプロフを見る
3 ともひさのプロフを見る
4 こうじのプロフを見る
5 権助のプロフを見る
ここで例えば2のひろしを選んだとするとつぎのようになります
profile.php?loverid=2
name ひろし
年収 206万円
年 20歳(今年の8月で21歳になる)
肩書 土方作業
というページに表示が変わります
こういうのを作りたいのですが私は次のように考えてます
profile.phpのソース
mysql_connect(恋人DB、pw,user);
$man=mysql_query(select * from 男);
$num_man=mysql_num_rows($man);
//オプションボタンを作る
if(!$num_man=0){
echo"<select name=man>
for($i=1;$i<=$num_man;$i++){
$name=mysql_result($man,$i,"name");
echo"<option value=$i>
$i<space>$nameのプロフを見る"</option>;}
else{echo"男いない";}
//オプションで選択したときの処理
この後がときに悩んでます
ここで$_POSTを使うと思いますがテーブルのキーとして反映させるかがよく分ってません
アドバイスを是非お願いします
とってもありがとうございます
実は私も$_POSTと$_GETの違いが気になっていたんです
わたしは、wakame0729様の言う違いだなんて思ってませんでした.もっとこう、データもとの違いなのかなと思ってました.URLの尻尾のデータなのかフォームから得られるデータなのかとか、ですが、このような説明を聞くと
$_GETで使えなかったら$_POSTを使えというつまり、$_POSTの方が一般的なような気に思えました
これからは$_REQUESTよりも$_GETや$_POST,$_COOKIEなどを使うようにします
No.3
- 回答日時:
最初の質問とは完全に内容が変わっちゃってますので、別な質問を立てましょう。
それから、おっしゃってる処理はどこにでもあるものです。入門書などにサンプルが載ってる場合もあるでしょう。ここまでできるだけわかりやすく答えて来ましたが、このレベルから教えなければならないとなると、そのうち一本のプログラムを僕が書かなければならなくなりそうです。実際のところ、補足にあるスクリプト、こちらで問題点を指摘するレベルではなく、一から正しいものを書かなければならないほどおかしなものになっています。いきなり独学で(というか、ここに頼りっきりで)開発しようとしないで、適当な本やサンプルなど見つけて、この程度の基本的な処理は動かせるようになってから、その上で具体的な質問をするようにしたらどうですか?ちょっとこれではこのようなQ&Aサイトでできる事を超えてると思いますよ。
冷たいようですが、基本的な知識がなければこちらもわかって頂く自信がありません。ご考慮下さい。
P.S 補足にある質問は$sql = "select * from 男 where ID = ".$_POST["loverid"];がヒントです。実際には入力チェックをしないと実用性に問題があるでしょう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) pythonリストの特定の値を表示htmlで表示できない 2 2022/05/14 05:48
- PHP PHP MySql ページング 2 2022/09/20 06:38
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- その他(プログラミング・Web制作) laravel 本番環境でメールが送れません。 1 2023/02/17 17:57
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
- PHP htmlで複数の個数入力欄を表示させるには 1 2022/09/20 03:11
- その他(プログラミング・Web制作) セレクトボックスで選択された値をコントローラーで使用したい 2 2022/07/26 16:41
- Chrome(クローム) 【Google AndroidのChromeブラウザーでフォームに入力後に送信ボタンを押すと、400 1 2022/06/26 16:52
- その他(ブラウザ) グーの質問見ようとしたらブラウザ版で 3 2022/03/28 10:33
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
こちらはただの直列処理ですか?
-
PHPでこのコード自体に意味は無...
-
php 入力画面から確認表示画面...
-
PHP8を使うと、大量のWarningが...
-
アップロード画像数でCSSを分け...
-
PHPSpreadsheetを使って関数を...
-
phpでcookieがうまく保存されない
-
ワードプレスサイト PHP8.0.25...
-
入力フォームの空白や改行を制...
-
PHP一覧表示した項目にリンクを...
-
オススメのプログラミングスク...
-
PHPでのパスワード制限のセキュ...
-
htmlのエラーについて(デバッグ)
-
アマゾンのような評価の星を選...
-
SFTPなどは使わないホームペー...
-
ファイルアップロードに関して...
-
Q&Aサイトを作成していてURLの...
-
画像が表示出来ません。
-
phpでPEAR::DBを使っているので...
-
php 確認表示画面で値をSESSION...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
phpでcookieがうまく保存されない
-
index.phpに入るには、どうすれ...
-
PHP8を使うと、大量のWarningが...
-
PHPSpreadsheetを使って関数を...
-
重複を防ぐ記述について教えて...
-
index.phpって何ですか? 具体...
-
awsにApacheとPHPを入れて、何...
-
phpでPEAR::DBを使っているので...
-
php 確認表示画面で値をSESSION...
-
PHPでユーザー情報を入力して簡...
-
ワードプレスサイト PHP8.0.25...
-
php 完了画面の送信メールのコ...
-
SFTPなどは使わないホームペー...
-
PHPのセッション有効期限について
-
csvファイルについて教えて下さ...
-
PHPとHTML+Xamppの掲示板で画像...
-
PHPで訪問回数を表示するカウン...
-
ファイルアップロードに関して...
-
掲示板を作成しておりアップロ...
-
Q&Aサイトを作成していてURLの...
おすすめ情報