2016-08-31 8 views
0

私は、ラジオボタンをデータベースにポストすることについて言及している50以上のウェブサイトを検索しました。私がしようとしているのは十分に単純だと思った。 NFLシーズン中に各ゲームの勝者を選ぶようにしたい。私は数日間スタックのオーバーフローを検索し、私が探しているもののいくつかのバリエーションを検索しました。今回の投稿ではデータベースに接続する方法が示されていないため、W3Schoolsは今回は役に立たなかった。少なくとも、私がオンラインで見つけたコードのほとんどは機能しておらず、不完全であるか、動作しません。PHPを使用してウェブサイト上のデータベースにラジオボタンを投稿

landingpage.php 
<?php 
ob_start(); 
session_start(); 
require_once 'dbconnect.php'; 

// select loggedin users detail 
$res=mysql_query("SELECT * FROM users WHERE userId=".$_SESSION['user']); 
$userRow=mysql_fetch_array($res); 
?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title><?php echo $userRow['userName']; ?>@mywebsite</title> 
<link rel="stylesheet" href="assets/css/bootstrap.min.css" type= 
"text/css" /> 
<link rel="stylesheet" href="home.css" type="text/css" /> 
    <script src="assets/jquery-1.11.3-jquery.min.js"></script> 
    <script src="assets/js/bootstrap.min.js"></script> 
</head> 
<body> 
    <!-- Navbar Beginning --> 
    <nav class="navbar navbar-default navbar-fixed-top"> 
     <div class="container"> 
     <div class="navbar-header"> 
      <button type="button" class="navbar-toggle collapsed" 
data-toggle="collapse" data-target="#navbar" aria-expanded="false" 
aria-controls="navbar"> 
      <span class="sr-only">Toggle navigation</span> 
      <span class="icon-bar"></span> 
      <span class="icon-bar"></span> 
      <span class="icon-bar"></span> 
      </button> 
      <a class="navbar-brand" href="mywebsite">mywebsite</a> 
     </div> 
<div id="navbar" class="navbar-collapse collapse"> 
<ul class="nav navbar-nav"> 
<li class="active"><a href="mywebsite">Message boards</a> 
</li>&nbsp; 
<li class="active"><a href="SBPicks.html">Superbowl Picks</a> 
</li> 
      </ul> 

     <ul class="nav navbar-nav navbar-right"> 

      <li class="dropdown"> 
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" 
aria-haspopup="true" aria-expanded="false"> 
<span class="glyphicon glyphicon-user"></span>&nbsp;Hello <?php echo 
$userRow['userName']; ?>&nbsp;<span class="caret"></span></a> 
       <ul class="dropdown-menu"> 
<li><a href="logout.php?logout"><span class="glyphicon glyphicon- 
log-out"></span>&nbsp;Sign Out</a></li> 
       </ul> 
      </li> 
      </ul> 
     </div><!--/ navbar collapse --> 
     </div> 
    </nav> 

    <div class="picks" 
     <br><br> 
     <br><br><br><br> 
     <form action="weekly.php" method="post" enctype="text/plain"> 
      Game 1 <br> 
<input type="radio" name="game1" <?php if (isset($game1) && 

$game1=="Panthers") echo "checked";?> value="Panthers">Panthers 
@ <input type="radio" name="game1" <?php if (isset($game1) && 
$game1=="Broncos") echo "checked";?> value="Broncos">Broncos 
      <span class="error">* <?php echo $game1err;?></span> 
      <br><br> 
      <input type="submit" name="Submit" value="Submit Picks" /> 
     </form> 
    </div> 
</body> 
</html> 


pick.php 
    <?php 
    ob_start(); 
    session_start(); 
    require_once 'dbconnect.php'; 

    // select loggedin users detail 
$res=mysql_query("SELECT * FROM users WHERE userId=".$_SESSION['user']); 
    $userRow=mysql_fetch_array($res); 

$user =$_SESSION['user']; 
$game1 = $_POST['game1']; 

$query = "INSERT INTO fbtest(usersid,game1)Values ('$user','$game1')"; 

if(mysql_query($query)){ 
echo "your picks have been submitted";} 
else{ 
echo "fail";} 
?> 
<br><br> 
<a href="home.php">back to landing page</a> 
+0

一部のコード行の書式設定についてお詫び申し上げます。それらの4つのペースをすべて移動して、それをすべて一緒に保つために、私はそれらのいくつかを2つのラインに分けなければなりませんでした。なぜ私はそれがデータベースにラジオボタンを送信するために失敗したかについての助けに感謝します。それはusersidをうまく送信します。 – TDKong

+0

weekly.phpのコードが見つかりませんでした。 weekly.phpとしてpick.phpを意味しますか?ファイルの名前は正しく記述されていますか? – Ish

答えて

0

あなたはこのラインでのトラブルのために自分を求めている:

$query = "INSERT INTO fbtest(usersid,game1)Values ('$user','$game1')"; 

クエリに直接変数を注入することによって、あなたが巨大な脆弱性を作成します。


How can I prevent SQL Injection?

What is SQL Injection

しかし、戻ってあなたの問題にしてみましょう。

問題はフォームのenctypeです。 text/plain)は、POSTメソッドを使用して送信されたフォームの有効な値ではありません。 thisバグレポートによると

タグでENCTYPEの有効な値は次のとおり

アプリケーション/ x-www-form-urlencodedで マルチパート/フォームデータが

にプロセスのフォームを正しい方法で作成し、スーパーグローバルにデータを取り込みます。フォームのenctypeは、application/x-www-form-urlencodedのいずれかでなければなりません。デフォルト値はbあなたがファイルをアップロードしたい場合は、y - wayまたはmultipart/form-data - です。

関連する問題