質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

87.37%

php(POST)について

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 838

score 23

●PHPのpostについて

PHP初心者です。
以下のPHPを書いたのですが、データがpostされません。

そもそもの書き方が悪いのでしょうか?

ご回答の程、宜しくお願いします。

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<meta name="description" content="アンケートフォーム">
<link rel="stylesheet" href="/Applications/MAMP/htdocs">
<title>アンケートフォーム</title>
</head>

<body>

<h2>アンケートフォーム</h2>
<from action="question2.php" method="post">
<dl class="clearfix">
<dt>性別は?</dt>
<dd>
<?php
$male = '男性';
$female = '女性';
$number = array('1' , '2');

echo ' <label><input type="radio" name="gender" value="' . $number[0] . '" />'
.  $male . '</label>' . "¥n";

echo ' <label><input type="radio" name="gender" value="' . $number[1] . '" />'
.  $female . '</label>' . "¥n";
?>
</dd>

<dt>年齢は</dt>
<dd>
<label>
<select name="age">
<option value="0" selected="selected">選択してください</option>
<?php
for ($num = 1; $num <= 4; $num++){
echo '<option value = "' . $num . '">' . $num . '0代</option>' . "¥n";
}
?>
<option value="5">50代以上</option>
</select>
</label>
</dd>

<dt>趣味は?</dt>
<dd class="hobby-area">
<?php
$hobby = array( 1 => '音楽鑑賞',
2 => '映画鑑賞',
3 => 'ドライブ',
4 => '旅行',
5 => 'その他');
foreach ($hobby as $key => $value) {
echo ' <label><input type="checkbox" name="hobby[' . $key . ']" value="'
. $key . '" />' . $value . '</label>' . "¥n";
}
?>
</dd>
</dl>

<p>
<input type="submit" value="投票する" />
</p>
</from>

<p class="copy">
&copy; 2010 PHP for web designer All fights reserned.
</p>
</body>
</html>

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<meta name="description" content="アンケート結果を送信しました">
<title>アンケート結果を受け付けました!!!</title>
</head>
<body>
<div id="box">
<div id="header">
<h1>PHP for web Designer</h1>
</div>
<ul id="menu" class="clearfix">
<li class="active"><a href="index.php">アンケート</a></li>
<li><a href="form1.php">メールフォーム</a></li>
<li><a href="webapi/">グルメMAP></a></li>
</ul>

<div id="main">
<h2>アンケートフォーム</h2>

<?PHP

$error = 0;
if (isset($_POST['gender'])) {
$gender = $_post['gender'];

if (ctype_digit($gender)) {
if(gender == 1){
$gendername = '男性';
} elseif ($gender == 2) {
$gendername = '女性';
} else {
$error = 1;
}
} else {
$error = 1;
}

if (isset($_post['age'])) {
$age = $_post['age'];

if(ctype_digit('age')) {
if($age < 1 || $age > 5) {
$error = 1;
}
} else {
$error = 1;
}
} else {
$error = 1;
}

if (isset($_post['hobby'])) {
$hobby = $_post['hobby'];

if(is_array($hobby)){
foreach ($hobby as $value) {
if($value < 1|| $value >5){
$error = 1;
}
}
} else {
$error = 1;
}
}

if ($error == 0) {
echo '<dl class="clearfix">';
echo '<dt>性別は?</dt><dd>' . $gendername . '</dd>';

if($age != 5) {
echo '<dt>年齢は?</dt><dd>' . $age . '0代</dd>';
}else{
echo '<dt>年齢は?</dt><dd>50代以上</dd>';
}

echo '<dt>趣味は?</dt>';
echo '<dd>';
foreach ($hpbby as $value) {
switch ($value) {
case 1:
echo '音楽鑑賞<br />';
break;

case 2:
echo '映画鑑賞<br />';
break;

case 3:
echo 'ドライブ<br />';
break;

case 4:
echo '旅行<br />';
break;

case 5:
echo 'その他<br />';
break;
}
}

echo '</dd>';

$textfile = '/Applications/log/log.taxt';
$fp = fopen($textfile, 'r+b');
if(!fp) {
exit('ファイルがないか異常があります');
}
if(!flook($fp,lock_EX)){
exit('ファイルをロックできませんでした');
}
while(!feof($fp)){
$writebuffer[] = trim(fgets($fp));
}

if($gender == 1) $writebuffer[0]++;
if($gender == 2) $writebuffer[1]++;

$writebuffer[$age + 1]++;

foreach ($hobby as $key => $value) {
$writebuffer[$key +6]++;
}

$writebuffer[12]++;

rewind($fp);
foreach ($writebuffer as $value) {
fwrite($fp, $value . "¥n");
}
fclse($fp);

echo '<dl>';
echo '<p class="app_msg">以上の内容を保存しました!</p>';
echo '<p class="app_msg"><a href="question3.php">集計結果を見る</a></p>';
}else{
echo '<p class="app_msg">';
echo '戻ってアンケートの項目全てにお答えください。';
echo '</p>';
}
}
?>

<dl class="clearfix"></dl>
<p class="app_msg">以下の内容を保存しました!</p>
<p class="app_msg"><a href="qustion3.php">集計結果を見る</a></p>
</div>

<p class="copy">
&copy; 2010 PHP for web designer. ALL rights reserved.
</p>
</div>
</body>
</html>

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • m.ts10806

    2019/02/03 22:22

    (2回目です)コードはマークダウンのcode機能を利用してご提示ください。
    わからなければ、コード部分を選択して<code>ボタンを押してください。
    ファイルが違うならコードブロックはわけてくださいね

    キャンセル

  • asahina1979

    2019/02/03 22:32 編集

    そもそも送信用のあれがないけどな とおもったらあったか

    キャンセル

  • m.ts10806

    2019/02/03 22:39

    たぶん本件とは関係ないですけど「/Applications/MAMP/htdocs」はそもそもDocumentRootのはずなので書かなくてもいいはず。(設定どうされているか知らないですが、そもそもCSSファイル名書いてないので意味が分からない記述がちらほら)

    キャンセル

回答 1

checkベストアンサー

+3

HTMLタグが間違えているようですね。

誤) <from action="question2.php" method="post">
正) <form action="question2.php" method="post">

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 87.37%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る