トップページ⇒php
1001コメント350KB

【PHP】下らねぇ質問はここに書き込みやがれpart10

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2005/09/25(日) 02:03:45ID:nLUfPXhD
PHPに関するくだらない質問用すれです。
ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは>>970あたりが建てて下さい

・過去スレ
【PHP】くだらねぇ質問はここに書き込みやがれ
http://pc5.2ch.net/test/read.cgi/php/1099322141/
【PHP】くだらねぇ質問はここに書き込みやがれpart2
http://pc5.2ch.net/test/read.cgi/php/1105218084/
【PHP】くだらねぇ質問はここに書き込みやがれpart3
http://pc5.2ch.net/test/read.cgi/php/1107780435/
【PHP】くだらねぇ質問はここに書き込みやがれpart4
http://pc8.2ch.net/test/read.cgi/php/1110697712/
【PHP】くだらねぇ質問はここに書き込みやがれpart5
http://pc8.2ch.net/test/read.cgi/php/1114787573/
【PHP】くだらねぇ質問はここに書き込みやがれpart6
http://pc8.2ch.net/test/read.cgi/php/1117945031/
【PHP】くだらねぇ質問はここに書き込みやがれpart7
http://pc8.2ch.net/test/read.cgi/php/1121100429/
【PHP】くだらねぇ質問はここに書き込みやがれpart8
http://pc8.2ch.net/test/read.cgi/php/1123431535/
【PHP】くだらねぇ質問はここに書き込みやがれpart9
http://pc8.2ch.net/test/read.cgi/php/1125716012/
0449nobodyさん2005/10/06(木) 12:04:09ID:???
>>448
$ID = $nakami[0];
これは無駄というか有害な処理
配列のままの方が扱いやすい

答え
配列のままでarray_map()使う
0450nobodyさん2005/10/06(木) 12:09:21ID:???
>>448
while($nakami = @fgetcsv($fp,1000))
{
foreach($nakami as $value)
{
echo mb_convert_kana("K", $value);
}
}
fclose($fp);
04514482005/10/06(木) 12:17:39ID:obhW270H
>>449,450
早速のレスありがとうございます!
今から実験してみます。もしうまく行かなかったらまた相談させてください。
よろしくお願いします。
04524482005/10/06(木) 12:59:37ID:obhW270H
>450
450さんのコードでCSVの中身を出力することができました。これすごいです。(自分のは120行くらいあったので...)
ただ、配列の中の特定の値だけをテキストエリアに出力したかったりするのですが、このwhileでforeachな感じでもそういうことってできますかね?

>449
449さんの仰る通り、リファレンスを読んでいたら、array_map()が使えそうな気がしたんですが、どうもうまく扱えませんでした。
CSVをアップしてmb_convert_kanaで成形して、出来れば各項バラバラに出力したいだけなのですが...。

0453nobodyさん2005/10/06(木) 13:29:06ID:???
>>452
array_mapを使うとこんな感じかな。今回の場合だと >>450 氏の方法と大して変わらんと思うが。
function kanaconv($value) {
 return mb_convert_kana($value, "K");
}

while($nakami = @fgetcsv($fp,1000))
{
 $nakami = array_map("kanaconv", $nakami);

 foreach($conv as $value)
 {
  echo $value;
 }
}

元々のやりたいことが特定の列だけを変換、出力したいのならこれで充分なはずだけど。
while($nakami = @fgetcsv($fp,1000))
{
 $value = mb_convert_kana($nakami[列番号], "K");
 echo "<TEXTAREA>$value</TEXTAREA>";
}
04544532005/10/06(木) 13:30:27ID:???
>>452
ごめん間違えた。
foreach($conv as $value)
 ↓
foreach($nakami as $value)
0455nobodyさん2005/10/06(木) 13:41:58ID:???
特定の列を抜き出したい場合はこういうのもありかと。
$arr_key = array(1,3,5,7,9); // 取り出したい列の番号 0起算
$arr_data = array(1,2,3,4,5,6,7,8,9,10);
foreach($arr_key as $key){
 echo $arr_data[$key]; //2,4,6,8,10が出力
}
04564482005/10/06(木) 14:28:31ID:obhW270H
>>453,455
すばらしいです!すごい..,。

>453さん

while($nakami = @fgetcsv($fp,1000))
{
 $value = mb_convert_kana($nakami[列番号], "K");
 echo "<TEXTAREA>$value</TEXTAREA>";
}

これ感動です。すごい手っ取り早い。
実際取り出したい値は1個ではないのですが、その場合は
455さんのパターンでいけばいいですかね。

本当に感謝します。ありがとうございました。
0457nobodyさん2005/10/06(木) 14:33:30ID:???
Webブラウザ上で実行できる「テキストの文字列変換、演算処理」といった作業ができるスクリプトが欲しいのですが、
質問ではなく作成依頼といったほうが良いかもしれません。
話聞いてくれます?
0458nobodyさん2005/10/06(木) 14:39:36ID:/yy7ybJN
今、PHPの本のサンプルコードを打ち込んで学習しているところなのですが

フォームにデータを打ち込んで、登録済みかチェックするボタンを押すと、指定のデータが存在するのか調べて
結果を返すといった内容のコードなのですが

一応、コードは丸写しして、test.phpという名前で保存してですね。
後は、MySQLにデータを入れれば準備OKなのかなというところなのですが、どのようにしてMySQLにデータを入れればいいのか
その初期の段階でつまずいていて困ってるんです。

参考書によると
MySQLのデータベース「testdb」のテーブル「t_userid」の項目「id」に問い合わせするようで。
テーブル「t_userid」を作成するSQLは、「登録チェック用テーブル作成SQL」(t_userid.sql)にあります。

とあるので、さっそくt_userid.sqlを付属CD-ROMからコピーしてデスクトップに持ってきて
とりあえず、test.phpと同じ場所に入れればいいのかな。と思いやってみたのですが

Parse error: parse error, unexpected T_VARIABLE in c:\program files\apache group\apache\htdocs\test.php on line 12
こんなエラーが出て。失敗と。

結局、t_userid.sqlの中身を参考にして、自分でMySQLにデータを入力してね。ということなのでしょうか。

一体どのようにt_userid.sqlを料理したらいいのという段階でわからなくて困っているのでどなたか方向でも教えていただけると助かるのですが。

ちなみにt_userid.sqlの中身はこんな感じです。下のスレ番号に書きます。
0459t_userid.sqlの中身です2005/10/06(木) 14:40:37ID:/yy7ybJN
/*テーブル作成*/
CREATE TABLE t_userid
(

)
0460nobodyさん2005/10/06(木) 14:42:01ID:???
>>457
「Webブラウザ"上"で実行できる」なら
JavaアプレットかJavaScript、Jscript、VBScriptの話になると思う。
0461t_userid.sqlの中身です2005/10/06(木) 14:43:34ID:/yy7ybJN
すみません。記述途中で書き込むボタンを押してしまいました。
↓が、ないようです。

/*テーブル作成*/
CREATE TABLE t_userid
(
id varchar{10} NOT NULL,
PRIMARY KEY (id)
);

/*データ追加*/
INSERT INTO t_userid(id) VALUES('aaa1111111');
INSERT INTO t_userid(id) VALUES('bbb2222222');
INSERT INTO t_userid(id) VALUES('ccc3333333');
0462nobodyさん2005/10/06(木) 14:44:09ID:kpXXJeyk
>>458
とりあえず、PHPよりもMySQLについて勉強した方がよいかと思うのですが…。

0463nobodyさん2005/10/06(木) 14:45:27ID:???
>>458
>結局、t_userid.sqlの中身を参考にして、自分でMySQLにデータを入力してね。ということなのでしょうか
はい。
何かの本を参考にしているようですし、その本のどこかに解説もあると思いますよ。

0464nobodyさん2005/10/06(木) 14:48:03ID:???
>>458
PHPの範疇じゃないので、MySQL絡みを勉強すべし
http://dev.mysql.com/doc/mysql/ja/mysql.html

shell> mysql database < script.sql

無償有償のその他のクライアントツールでもできる。
04654582005/10/06(木) 14:53:28ID:/yy7ybJN
>>462-464
アドバイスありがとうございます。

なんか良く見たらデータベースの章を見てください。とあるので、そこ読んだらできるかもしれません。
shell> mysql database < script.sql
こういったコマンドを打ってデータベースを作成するってことなんですかね。これがSQL文とかいうやつですかね。

なんか、データベースの章をちらっとみた感じでは。
コマンド打つ以外にも、phpMyAdminとかいう便利なツールもあるようで
それを使えば簡単に作成できるのかな。

ちょっとやってみます。
0466nobodyさん2005/10/06(木) 14:58:59ID:???
>>458
SQL勉強しておいで
0467nobodyさん2005/10/06(木) 15:00:35ID:???
>>458
mysql弄るならnavicatいいよ
04684582005/10/06(木) 15:43:44ID:/yy7ybJN
>>466
PHPの参考書をスムーズに終わらせたいところですが
MySQLと連動して使うなんてあたりまえに使う機能だから避けて通れませんもんね。
しょうがないので、MySQLの勉強します。今データベースの章読んでるところです。

>>467
MySQLをいじれるツールっていろいろあるんですね。
とにかく、基礎知識仕入れてからいろいろ試してみようと思います。
0469nobodyさん2005/10/06(木) 15:43:55ID:???
>>467
良いけど、$160は一般ホビーユーザには躊躇する値段。
0470nobodyさん2005/10/06(木) 15:56:08ID:???
>>458
とりあえずMySQLにデータを作成しないとサンプルの実行はできないだろうから、
皆にレスをもらったことを参考に進めればいいんだろけど、最初のカキコの
エラーメッセージは多分MySQLとは関係ないと思われ。

>Parse error: parse error, unexpected T_VARIABLE in c:\program files\apache group\apache\htdocs\test.php on line 12
だから、12行目がPHPの文法としておかしいはず。入力ミスと思うからじっくりと見直してみそ。
ひょっとして本のサンプルが間違っている可能性もあるかもしれんが。。。
0471nobodyさん2005/10/06(木) 16:05:41ID:???
>>469
評価版で1ヶ月も使えばかなり動かし方解るから
それだけでも良いと思うけど
0472nobodyさん2005/10/06(木) 16:24:29ID:???
>>467
わざわざ金など誰が払うか
04734582005/10/06(木) 16:40:38ID:/yy7ybJN
>>470
よく見直してみたら、PHPスクリプトの末に書く ; を入れ忘れてたことが判明しました。。
直してみましたが、また
Parse error: parse error, unexpected '/' in c:\program files\apache group\apache\htdocs\test.php on line 51
このようなエラーが、また、タイプミスっぽいのですが、ぱっと見た感じ、どこが悪いのかわからなかったので
後で直すか、どうしてもわからなかったらCD-ROMにサンプルコードが入ってるので
それをそのまま移すことによって解決しようかと思います。

データベースの章をさーっと読みましたが、どこにもMySQLにデータを作成する方法という肝心な知りたいことがかかれてませんでした。
しょうがないのでphpMyAdminを解説しているページを読んだら、このツールを使った作成方法が書いてあるので
これを読めばやっとMySQLにデータを作成することができると思われます。

phpMyAdminのフォルダをtest.phpが置かれているところと同じフォルダに入れて
今、config.inc.phpの設定のところに来てるのですが

config.inc.phpをメモ帳で開いてみたところ、おそらく改行部分と思われるところが↑になっており
改行のない一続きの文になっていて、なにがなにやらさっぱりわかりません。
これは文字コードの関係でしょうか。
↑を\nに置換しようかと思ったのですが、↑は↑とは違うようで、置換のフォームのところにコピペしようと思ったのですができませんでした。
どなたかこれを解決するにはどのようにすればいいと思われますでしょうか。
何か特別なことができるアプリで開いたほうがいいのか、文字コード変換するアプリで処理すればいいのか。果たして設定ファイルの
文字コードなんか勝手に変えちゃっていいものなのか。わからず困ってます。
0474nobodyさん2005/10/06(木) 16:52:53ID:85el6NxV
51行目付近の/
0475nobodyさん2005/10/06(木) 16:54:55ID:???
>>473
まずフリーのエディターをダウンロードする(少なくともUTF-8,EUC-JP対応)
phpエディタでも使ってみたら
ttp://phpspot.net/php/phpeditor.html
0476nobodyさん2005/10/06(木) 17:09:17ID:/yy7ybJN
皆さんアドバイスありがとうございます。大変助かってます。

>>474
51行数えてみてみたんですが、/になんの間違いもないように見えるんですよね。
51付近といえば

echo "<tr>";
echo "<td><input type = \"text\" name = \"id\"></td>;
echo "</tr>";
echo "<tr>";
echo "<td><input type = \"submit\" value = \"登録済みか調べる\" name = \"sub1\"></td>";
echo "</tr>";

こんな感じですが、どこが間違ってるのかさっぱりわかりませんでした。/もちゃんとつけるべきところについてるし。
まあ、どうしてもわからない場合は、CD-ROMから丸ごとコピーして動かしてみます。
それでも動かなかったら、本が間違ってるということで。

>>475
さっそくphpeditorダウンして使ってみました。
単純にファイルを開くから、config.inc.phpを開けばいいのかと思ったのですが、phpプロジェクトファイルではありません。
と言われてひらくことすらできず。
まあ、とりあえず、phpeditorのヘルプファイル読んでみます。
それでもできなければUTF-8,EUC-JP対応のエディタ探して開いてみます。


0477nobodyさん2005/10/06(木) 17:15:55ID:???
echo "<td><input type = \"text\" name = \"id\"></td>;

echo "<td><input type = \"text\" name = \"id\"></td>";
0478nobodyさん2005/10/06(木) 17:17:39ID:???
>>476
2行目の末尾の " が漏れてるのが原因だね。
紹介されてた phpeditor など構文チェックしてくれるエディタを使用すると、
この類のエラーはすぐ判る。
他にも構文チェックしてくれるエディタはあるんで、色々と触ってみて
自分が使いやすいと思ったものをチョイスすればいい。
あせらずにゆっくりと。。。
0479nobodyさん2005/10/06(木) 17:26:42ID:???
>>476
そっちじゃなくてスタンドアロン版にしておけ
”の閉じ忘れなんかも色分けしてくれるのでミスが減るはず
04804582005/10/06(木) 18:18:44ID:/yy7ybJN
>>477-479
アドバイスありがとうございます。
間違いはないんだけどなあと思ってたのですが、やっぱりタイプミスだったんですね。
よく見たら、片方はちゃんと"ついてるから、よーく見比べたら発見できそうでしたね。
ただ、こんなミスもすぐに発見できるようなエディタ探したほうが効率いいに決まってるので、吟味して選ぼうと思います。
C#とか普通のアプリ作ってても、ミスをすぐ指摘してくれる統合開発環境とかあるのとないのじゃ生産性にえらい差がでますもんね。

phpeditorってそれだけじゃなくてスタンドアロン版とかあるんですね。
そっちダウンしてやってみます。
04814582005/10/06(木) 18:29:50ID:/yy7ybJN
>>479
スタンドアロン版ダウンしまして、さっそく、config.inc.phpを開いたところ、無事改行されて表示されました。
スタンドアロン版は、単純にメモ帳みたいに開くことができるんですね。
これでphpのコードも書いて試用してみます。
どうもありがとうございました。
さっそく、設定変更します。
0482nobodyさん2005/10/06(木) 18:37:29ID:???
>>480
HTMLタグは属性の指定に "" を使用するのに、
スクリプト内で文字列を囲むのにも "" を使ってるのが、ミスの一つの要因だと思われ
\n入れたり、変数をパースさせたいんじゃなければ、
こういう時は ' ' を使うのが吉
文字列無いの " をエスケープする手間も省けて一石二鳥だよ
04834582005/10/06(木) 21:16:00ID:/yy7ybJN
>>482
さっそく\"部分を'に変えました。
いちいち\入れるの面倒だなと思ってたので助かります。
これでケアレスミスも防げそうです。
どうもありがとう。
0484nobodyさん2005/10/06(木) 21:29:33ID:???
>>483
逆だ!
\"を'に変えるんじゃない!
文字列リテラルの括りを'にするんだ!
04854582005/10/06(木) 21:58:25ID:/yy7ybJN
>>483
ということは、つまり
echo "<td><input type = \"text\" name = \"id\"></td>"; を

echo '<td><input type = "text" name = "id"></td>';

このように書けるってことですね。これでも\"とか書かなくて済むから助かりますね。
どうもたびたびありがとうございます。
0486nobodyさん2005/10/06(木) 22:02:12ID:???
>>438サンキューっす。だからデータ管理に便利なわけねφ(..)メモメモ
マイシークェル勉強して2ちゃんねる型掲示板つくろっと。
0487nobodyさん2005/10/06(木) 23:25:40ID:???
もうあったような希ガス
0488nobodyさん2005/10/07(金) 00:04:23ID:???
マイシークェル で、いいのな・・・みんな
0489nobodyさん2005/10/07(金) 00:05:16ID:???
なんかビジュアル刑のバンドみたいな名前だな
0490nobodyさん2005/10/07(金) 00:13:54ID:???
マイシークェルって新たなDBの名前かと思ってたら
mysqlの事なのかw
0491nobodyさん2005/10/07(金) 01:04:04ID:???
米の国の人はマイシィクェルと呼ぶこともあるそうだ
0492軟式PHP2005/10/07(金) 01:17:26ID:???
おまいら発音よすぎ。
0493nobodyさん2005/10/07(金) 01:31:49ID:???
The official way to pronounce “MySQL” is “My Ess Que Ell” (not “my sequel”),
but we don't mind if you pronounce it as “my sequel” or in some other localized way.

まあ、俺も気にしないよ。
0494nobodyさん2005/10/07(金) 04:15:20ID:???
SQLは, もともとSEQUEL(Structured English QUEly Language)と書きシークェルと
発音されていた. そのためSQLと書くようになった現在でも, 米国ではシークェルと
読まれるのが一般的である.

だそうな。
0495nobodyさん2005/10/07(金) 04:27:27ID:???
448-486の書き込みにほのぼのとしたものを感じた
0496nobodyさん2005/10/07(金) 06:13:07ID:???
シークェルって読むと持てますか?
0497nobodyさん2005/10/07(金) 07:03:53ID:???
何を?
0498nobodyさん2005/10/07(金) 08:33:28ID:???
マイ父帰る
0499nobodyさん2005/10/07(金) 09:05:47ID:???
行き詰ってしまったので質問させていただきます。
mysplとphpを使った簡単なクイズのサイトを作りたいと考えております
現在、問題ID、問題文、5択なので選択肢5つ、解答とフィールドを作っており
htmlのサイト上でそれらを呼び出し ラジオボランで正確な答えをチェックして
当たりかどうか判別してやる という所まではいけたのですが困った事が起きてしまいました。
現在では1つのページに問題が1問しか表示してないのですが、
一度に何問も表示させ判定したいと考えております。
問題だけをを沢山表示させることは可能なんですが、それぞれの問題に答えをチェックする
ラジオボタンの表示にすごく困っております。

問題文は追加できるようになっており、現在存在する最後のID番号から+1した所に
追加されます。

すごく分かりにくい説明かもしれませんが どなたか分かる方おられましたら
よろしくお願いいたします。
0500nobodyさん2005/10/07(金) 09:14:06ID:???
ラジオボタンなんだからグループ化すりゃいいだろ
phpの問題じゃなくてhtmlの問題な

0501nobodyさん2005/10/07(金) 09:29:10ID:???
a.php

<?php
if($a = 1){
 echo aaaa;
 if($b = 1){
  include("b.php");
  exit;
 }
}
else{
 include("b.php");
}

b.php

<?php
header("Location:c.php");

このようなスクリプトでa=1のときにはheader aleady sentとなってしまうので
headerを既に送信済みか確認したいのですが、可能でしょうか?
0502nobodyさん2005/10/07(金) 09:29:22ID:???
なにを言う
0503nobodyさん2005/10/07(金) 09:35:17ID:???
>>501
aaaaを表示してからLocationってのが、そもそも無理ですから
0504nobodyさん2005/10/07(金) 09:37:09ID:???
>>501
お望みの挙動かどうか知らんが、こうすればエラーは出なくなる。
a.php

<?php
if($a = 1){
 if($b = 1){
  include("b.php");
  exit;
 }
 echo aaaa;
}
else{
 include("b.php");
}
05055012005/10/07(金) 09:40:05ID:???
説明下手ですみません。
aaaaを既に表示したか確認したいのです。
すでに表示してる場合はLocationを使わないようb.phpで処理したいです。
Locationを使えるか、使えないかの判別でもいいです。なにか方法はあるでしょうか?
05064992005/10/07(金) 10:14:46ID:???
>>500
返信ありがとうございます
こちらの説明不足で意味を取り違えてしまったようで本当に申し訳ないです

先ほどの質問は忘れてもらって、新たに質問させていただきます。
PHPの中でラジオボタンやラジオボタンの様な答えをチェックでき
その値を違うPHPに渡すという物を設置することは可能でしょうか?
0507nobodyさん2005/10/07(金) 10:20:57ID:ffDmuEnl
2次元の配列の要素全てに、デフォルトで1を入れたいと思ってるのですが

for($i=0;$i<5;$i++){
 for($j=0;$j<5;$j++){
  $data[$i][$j] = "1";
 }
}

とやるしか方法はないのでしょうか?
もっとスマートな方法があったら教えてください。
0508nobodyさん2005/10/07(金) 10:25:03ID:???
>>506
http://www.hajimeteno.ne.jp/html32/14/08.html
↑参考になりません?
name=を問題のIDにするとかで区別できると思いますが。
0509nobodyさん2005/10/07(金) 10:27:45ID:???
>>507
foreachでarray_fillじゃ駄目?
05105092005/10/07(金) 10:28:45ID:???
すまん、勘違いしたかも。
>>509無視してください。
0511nobodyさん2005/10/07(金) 10:34:04ID:???
>>507
array_fill()をネスト。
0512nobodyさん2005/10/07(金) 10:49:03ID:???
>>507
方法はいくらでもあるが、結局それが一番スマートだと思う
0513nobodyさん2005/10/07(金) 10:55:53ID:???
>>511-512
回答ありがとうございます。

array_fill()のネストでも結局同じくらいの行数になりますし、
厨な私にはforで値を入れていくほうが読みやすいので
結局これでいこうと思っています。

どうもでした。
05145012005/10/07(金) 11:08:48ID:???
headerの前に出力があったかどうかを調べることはできませんか?
出力バッファを有効にすればエラーは出ないのですが、headerの前に出力があったのか調べる事はできませんか?
0515nobodyさん2005/10/07(金) 11:24:00ID:???
マニュアルの出力制御関数を参照
05165062005/10/07(金) 11:36:12ID:???
>>508
URLまでご用意していただき ありがとうございます
しかしそのサイトではPHPの中ではなくHTML文の中にフォームを作って値を渡しているので
参考にはなりませんでした。 せっかく答えていただいたのに申しわけないです。
ご説明がまだまだ不十分でしたね・・・ 今度こそ分かりやすいはず

<?php ?>の中のPHP内部にラジオボタンやラジオボタンの様な答えをチェックでき
その値を違うPHPに渡すという物を設置することは可能でしょうか?
0517nobodyさん2005/10/07(金) 11:42:27ID:???
>>514
普通はheader送るタイミングは自分で制御するもんだからなぁ・・・

>>516
相変わらずわけわからん。
「phpの中にラジオボタンの様な答えをチェック」という辺りを
もうちょっとわかりやすく書けないか?
0518nobodyさん2005/10/07(金) 11:49:57ID:???
全然説明が判らないな。
・PHPはサーバー側で動作
・ラジオボタンの表示、選択はクライアント側で動作
が理解できてるのかな。。。という疑問があるんだけど。

「ラジオボタンの様な答えをチェックでき」のチェック操作を行うのは誰?
人間が行うのなら、上記が理解できていないと思う。
PHPで行うのなら header('Location:xxx.php?checkbox=1');等でいいと思う。
05195162005/10/07(金) 11:54:30ID:???
>>517
う〜ん なかなか言葉で説明するのが難しいですね・・・
>>「phpの中にラジオボタンの様な答えをチェック」という辺りをもうちょっとわかりやすく書けないか?

ラジオボタンです 要は<?php ?>の中にラジオボタンを作成したいのです
現在fromを利用してphpの外で実行した場合は成功しております
while文や変数を利用したラジオボタンを作りたいので、PHPの中に入れて
やりたいのですが 可能でしょうか?
05205012005/10/07(金) 11:56:49ID:???
レスいただいた方ありがとうございます。
出力バッファを使うことにしました。


>>516
508です。
PHPとMYSQLを使って作りたいとのことですが、PHPとMYSQL利用の経験はお持ちでしょうか?

DBから問題を取得→表示
ユーザーからの解答があったら
問題の答案を取得→DBから解答取得→回答正誤判定→結果表示

こんな流れになるのではないかと思いますが、PHPとMYSQLをこれから勉強するなら
HTMLとPHPとMYSQLを使ってデータの出し入れの勉強してみるとよくわかると思いますよ。
05215182005/10/07(金) 11:57:42ID:???
まさかと思うが、こんな答えを期待してたのかな。。。

<?php
echo '<INPUT TYPE="radio" NAME="data" VALUE="1">テスト1';
echo '<INPUT TYPE="radio" NAME="data" VALUE="2">テスト2';
?>
05225012005/10/07(金) 11:59:35ID:???
>>519

<?php
echo '<form action="" method="post">
選択肢1<input type="radio" name="Q1" value="aa">
</form>';

こういうことですか?
05235222005/10/07(金) 12:00:24ID:???
>>521
かぶった。。
0524nobodyさん2005/10/07(金) 12:00:37ID:???
>>516
ラジオボタンを表示してcheck.phpに値を送られる
<?php
echo '<form action="check.php" method="post">';
for ($i = 0; $i < 5; $i++) {
echo '<input type="radio" name="q[0]" value="'.$i.'">'.$i;
}
echo '<input type="submit">';
echo '</form>';
?>
0525nobodyさん2005/10/07(金) 12:11:02ID:???
まさかprintもechoも知らないで組んでたのか・・・?
0526nobodyさん2005/10/07(金) 12:36:14ID:???
これこそPHPクオリティ
05275162005/10/07(金) 12:46:33ID:???
たくさんの返信ありがとうございました。
>>521 >>522 >>524さんの言われておるようにやってみたところ
無事に出来ました こちらもprintなどでラジオボタンの所を
くくってやってみていたのですが 出来ませんでした。

シングルでくくらずにダブルコートでくくっておりました・・・
printじゃ出来ないと思って質問してみたのですがptirntで出来たのですね
みなさんどうもありがとうございました
0528nobodyさん2005/10/07(金) 12:47:15ID:???
まずtypeをどうにかすべき
0529nobodyさん2005/10/07(金) 12:50:35ID:???
まずtypoをどうにかすべき
0530nobodyさん2005/10/07(金) 13:51:42ID:DMyUsnXK
サンプルコードに下記のようなものが出てきまして。<?php ?>が2つあるので、こんな書き方できるのかとびっくりしたのですが
これは結局、分断しなければ
echo '<form action = "next.php" method = "post">';
のように書かなければいけないところを、<?php ?>を分断することによって普通に、<form action = "next.php" method = "post">
のように書けるという解釈であってますか。

<body>
<?php
$text1 = @$_POST["text1"];

if(strlen($text1) < 1 or strlen($text1) > 10)
{
?>
<form action = "next.php" method = "post">
<table>
<tr><td><font color = "red">1〜10バイトでお願いします</font><br>
お名前:<input type = "text" name = "text1" value = "<?=$text1?>"</td>
<td><input type = "submit" value = "送信"></td>
</tr>
</table>
</form>

<?php
}
else
{
echo "<p>正しく入力されました:".$text1;
}
?>
</body>
0531nobodyさん2005/10/07(金) 14:03:31ID:3gINL/Ei
>>530○
そっちの方が負荷がかからないらしいけど実際は俺はシラン。
05325302005/10/07(金) 14:07:58ID:DMyUsnXK
>>531
回答ありがとうございます。

やっぱり、いろんな書き方ができる中のひとつだったんですね。
個人的にはこの方が、HTMLタグそのまんま書き込めるからわかりやすいですね。
PHPスクリプトからHTMLタグを吐き出す場合
echo 使って ""で囲んだり、中の"を\"にしたり、''で囲んだりするのが面倒だなと思ってたので
こんな方法があったなんてうれしいな。
更に、本当に負荷がかからないとすれば、この書き方推奨ですね。
0533nobodyさん2005/10/07(金) 14:11:29ID:???
>>530
PHPはもともとhtmlの中に<?php ?>というタグでスクリプトを埋め込めるというふうに作られた

<html>
<body>
<?php 処理 ?>
html タグ
<?php 処理 ?>
html タグ
<?php 処理 ?>
</body>
</html>
0534nobodyさん2005/10/07(金) 14:14:13ID:???
>>532
一応、こういう方法もあるということで(負荷はしらん)

if(strlen($text1) < 1 or strlen($text1) > 10)
{
 echo <<<EOD
  <form action = "next.php" method = "post">
  <table>
  <tr><td><font color = "red">1〜10バイトでお願いします</font><br>
  お名前:<input type = "text" name = "text1" value = "{$text1}" ></td>
  <td><input type = "submit" value = "送信"></td>
  </tr>
  </table>
  </form>
EOD;
}
else
{
echo "<p>正しく入力されました:".$x;
}
05355342005/10/07(金) 14:15:57ID:???
>>534
いや〜ん。Ctrl+Xを押したつもりが・・・
echo "<p>正しく入力されました:".$x;
は
echo "<p>正しく入力されました:".$text1;
ね。
05365302005/10/07(金) 14:25:08ID:DMyUsnXK
皆さん、具体例での解説ありがとうございます。


>>533
そうか。こんなに柔軟に<?php ?>とHTMLタグを組み合わせられるんですね。
今まで<?php ?>とHTMLタグが、<body>タグの間できれいに分離してるコードしか見たことなかったので
<?php ?>とHTMLタグは、<body>タグの中で分離して書くもんだと思い込んでたものでびっくりしたわけです。

>>534
こんな書き方もあるのか、同じ処理でもいろんな書き方があるもんですね。
こっちの方が、書き方がスマートな感じしますね。
これもPHPスクリプトでHTMLタグ出力するのに、""で囲んだりもいらずにそのままかけますね。
0537nobodyさん2005/10/07(金) 14:25:16ID:/ul7fY5m
初歩的な質問失礼いたします。
PHPを勉強しようと思い、本を買ってきて勉強しているのですが最初の時点で躓いています。
本にあるとおりに、Apache1.3.27とPHP4.2.2をインストールしてハローPHPと表示させようと思ったのですが
ブラウザで見たときに日本語が文字化けしてしまいます。
ブラウザのエンコードで自動選択にすれば問題なく表示はされるのですが、以前表示させたときには文字化けなんてしませんでした。
これは何が悪いのでしょうか?iniファイルの書き換えミスか、そもそもブラウザ側が悪いのでしょうか?
0538nobodyさん2005/10/07(金) 14:41:49ID:???
>>537
せっかくプログラミングの世界に入ってきたのですから、「文字化け」という曖昧な説明ではなく、
「〜の文字エンコーディングで出力するつもりが、ブラウザによって〜の文字エンコーディングと解釈されてしまいます。」
のような説明をするようにしましょう。

ブラウザは次の3点に注目して表示に使う文字エンコーディグを決定します。
・HTTPヘッダ Content-Type: text/html; charset=shift_jis
・HTMLヘッダ <meta http-equiv="Content-Type" content="text/html; charset=shift_jis">
・html文章内の一部を使って判定
これらの指定が矛盾していた場合等で表示に使う文字エンコーディングが実際のものとちがっていれば、
いわゆる「文字化け」を起こす原因となります。
0539nobodyさん2005/10/07(金) 15:00:14ID:DMyUsnXK
ふと思ったんですけど
今は、自分のPCでPHPの動く環境を作ってるから、php.iniをいじって設定を変えたりできるけど。
レンタルサーバなんかに置かせてもらう場合、そのサーバのphp.iniっていじることはできないんですよね。
1サーバにつき、1php.iniだと思うのですが合ってるでしょうか。

なので、PHPに、get_magic_quotes_gpc()みたいな、magec_quotes_gpcがONかOFFか調べる関数とかがあるんですよね。
ということはレンタルサーバに自作のPHPで作ったアップローダを置くとすると
アップできるファイルサイズの上限は、そのレンタルサーバのphp.iniの設定に依存するわけですか。
0540nobodyさん2005/10/07(金) 15:02:48ID:???
>>537
AddDefaultCharset でも設定してあるんじゃねーの?

つか、PHPの質問じゃねーな。

ほれ、
Apache〜嗜みとして〜 Part3
ttp://pc8.2ch.net/test/read.cgi/php/1043851302/
0541nobodyさん2005/10/07(金) 15:03:38ID:???
>>536
そんなことくらい、PHPマニュアルに書いてあるが?
0542nobodyさん2005/10/07(金) 15:24:18ID:???
>>541
だから何?
0543nobodyさん2005/10/07(金) 15:51:07ID:???
>>542
だから何?
0544nobodyさん2005/10/07(金) 15:54:56ID:DMyUsnXK
PHPマニュアル見ないで、書籍のサンプルコード集打ち込みながら学習してるから知らなかったんだよ。

PHPマニュアルの目次見ても、型、変数、定数、演算子、制御構造、関数、クラスとオブジェクトとか、他言語を知ってたら見なくても
いいような内容ばっかりに見えたので、これ1から見ながらやってたら遠回りかなと思っていきなりサンプルコード集買ったんですよね。
PHPを実行できる環境を整える方法から書かれてる書籍の方が便利だし。
PHP独特の書き方とかわかれば、後は他言語で身につけた基礎知識がカバーするだろうと思って。

でもこの際なので知識補完といった意味で目を通しとこうかなとは思います。
まあ、書き方が有料の書籍と違ってわかりにくいから避けてたのですが、書籍で使える知識を身につけてから
PHPマニュアルも補完的に目を通すという読み方にするとPHPマニュアルに書かれた内容もわかりやすいかなとは思います。


0545nobodyさん2005/10/07(金) 16:18:11ID:???
>>539
マニュアルのini_set()を見ればわかるけど.htaccessやスクリプト内で変更できるものもある
upload_max_filesizeは変更できないがな
0546nobodyさん2005/10/07(金) 16:32:44ID:???
医科のperlをphpで書けばどうなりますか?

#!/usr/bin/perl
use LWP 5.7X;
use Encode;
use URI;
my $browser = LWP::UserAgent->new;
my $url = URI->new('http://www.hogehoge.com/cgi-bin/hogehoge.cgi');
$url->query_form(
foo => 'bar' ,
);
my $response = $browser->get($url );
die $url , " Error!", $response->status_line unless $response->is_success;
print $response->content;
05475462005/10/07(金) 16:35:32ID:???
上記
use Encode; の行は削除してください。
05485392005/10/07(金) 16:37:24ID:DMyUsnXK
>>545
スクリプトから設定ファイルをいじれる関数があるんですね。
でも全部いじれるわけじゃないのですね。
マニュアルみたら、php.iniの設定の一覧が出て、変更の可否の項目を見ればいいのだと思うのですが
PHPマニュアルも便利ですね。

調べてみたら
PHP_INI_ALL、PHP_INI_PERDIRだと、.htaccessで変更可能らしい。
ちなみに
http://www.shigeweb.jp/php/project_p/?section=setup&page=htaccess に書いてる。

upload_max_filesizeを見るとPHP_INI_PERDIRになってるので、.htaccessで設定変更できることになりますよね。
でも変更できないということは、スクリプトから変更できないけど、.htaccessだったらできるということかな。

設定できるできないみたいにはっきりしてるのかと思ったら、この設定はこの方法でできるけど、この設定はこの方法では変更できない
みたいにいろいろあってややこしいですね。
どうも解説ありがとうございました。
■ このスレッドは過去ログ倉庫に格納されています