2016-12-01 32 views
0

私はHTML、PHP、およびMYSQLの使い方を学び、3つの言語すべてを使用して投票Webサイトを作成しようとしています。私のHTMLとMYSQLの両方のコードはうまく機能していますが、PHPコードを動作させることができません。問題は私がラジオボタンを使用していて候補者のテキスト入力ではないという事実だと思いますが、データの変換方法はわかりません。PHPコーディングの問題

HTMLコード:

<html> 
<head> 
     <title>U.S Election 2016</title> 
</head> 

<body> 
    <h1>U.S Election 2016 - Voting Page</h1> 

    <form action="insert_vote.php" method="post"> 
    <table border="0"> 
     <tr> 
     <td>Voter ID</td> 
     <td><input type="text" name="VoterID" maxlength="13" size="13" /></td> 
     </tr> 
     <tr> 
     <td>Candidate :</td> 
     <td> 
    <input type="radio" name="Candidate" value="Hillary Clinton" checked> 
     Hillary Clinton<br> 
    <input type="radio" name="Candidate" value="Donald Trump" checked> 
     Donald Trump<br> 
    <input type="radio" name="Candidate" value="Gary Johnson" checked> 
     Gary Johnson<br> 
    <input type="radio" name="Candidate" value="Jill Stein" checked> 
     Jill Stein<br> 
    <input type="radio" name="Candidate" value="None" checked> 
     Undecided/None of the Above<br> 
    </td> 
     </tr> 
     <tr> 
     <td colspan="2"><input type="submit" value="Cast Vote" /></td> 
     </tr> 
    </table> 
    </form> 
</body> 
</html> 

PHPコード:

<html> 
<head> 
    <title>U.S Election 2016</title> 
</head> 
<body> 
<h1>U.S Election 2016 - Voting Page</h1> 
<?php 
    // create short variable names 
    $VoterID=$_POST['VoterID']; 
    $Candidate=$_POST['Candidate']; 

    if (!$VoterID || !$Candidate) { 
    echo "You have not entered all the required details.<br />" 
      ."Please go back and try again."; 
    exit; 
    } 

    if (!get_magic_quotes_gpc()) { 
    $VoterID = intval($VoterID); 
    $Candidate = addslashes($Candidate); 
    } 

    @ $db = new mysqli('localhost', 'Voting2016', 'Voting123', 'voting'); 

    if (mysqli_connect_errno()) { 
    Echo "Error: Could not connect to database. Please try again later."; 
    exit; 
    } 

    $query = "insert into voters values 
      ('".$VoterID."', '".$Candidate."')"; 
    $result = $db->query($query); 

    if ($result) { 
     echo $db->affected_rows." Vote has been cast and stored into database."; 
    } else { 
     Echo "An error has occurred. Your vote was not added."; 
    } 

    $db->close(); 
?> 
</body> 
</html> 

私はPHPファイルをダウンロードしたい場合、それは私に尋ねるフォーム提出するたび:

+0

なぜすべてのラジオボタンが入力に ' – Xorifelse

+1

あなたの認識している問題は何ですか?あなたはそれがラジオ入力だとどのように結論づけましたか?デバッグ出力はどこですか?誤ったSQLの代わりにPDO /バインドされたパラメータを試してみましたか?どのようにエラー表示を抑制するのですか?また、特定のスクリプトにはちょっと遅れていませんか? – mario

+0

あなたは多くの情報を提供していませんが、推測しなければならない場合、ラジオボタンの "name"属性に基づいて問題が発生している可能性があります。それらに「候補」という名前を付ける代わりに、「候補[]」を試してみてください。また、PHPではif(!empty($ VoterID)||!empty($ Candidate))を実行する必要があります。 if(!$ VoterID)は、$ VoterIDがブール値の場合にのみ期待どおりに動作します。 – MMMTroy

答えて

0

あなたのPHPインタプリタが実行されていないようです。 PHPファイルをダウンロードするように指示されている場合、おそらくそれは何も解釈しないためです。 WAMP(LinuxのLAMP)を見て、それを正しく稼働させてください。

編集:コードを見ると、プログラミングに慣れていないようです。 MVCのようなプログラミングの概念を見ることをお勧めします。データ、ロジック、プレゼンテーションを分離する必要があります。それ以外の場合は混乱、混乱はバグです。 PHPはいくつかの厄介なことをすることができます。プログラミングに関して多くのことを知らずにこの言語から始めれば、悪い習慣を覚えるかもしれませんので、気をつけてください:)