-9

私のページの上部にあるphpコードは次のとおりです。

if(!$_SESSION['username']){
  header("Location: ../error.php?id=1");
}

$teamgamertag = $_POST["gamertag"];
$teamgame = $_POST["game"];
$teamtype = $_POST["type"];
$teamname = $_POST["name"];
$teamconsole = $_POST["console"];

if(isset($_POST["submit"])){
  $sql2 = mysql_query("INSERT INTO teams (name, game, players, creator, console, leaders, type, score) VALUES ('$teamname', '$teamgame', '$teamgamertag', '$teamgamertag', '$teamconsole', '$teamgamertag', '$teamtype', '0'") or die(mysql_error());

  if($sql2){
    header("../results.php?id=1");
  }else{
    exit();
  }
}
?>

何が問題で、どこを修正すればよいかわかりません。よろしくお願いいたします。

4

2 に答える 2

4

SQL クエリの末尾の括弧がありません:

'$teamgamertag', '$teamtype', '0'")

ここにあるはずです:

'$teamgamertag', '$teamtype', '0')")

また、SQL はインジェクションに対して脆弱です。クエリ文字列を手動で作成しないでください。準備済みステートメントの使用: PHP PDO 準備済みステートメント

于 2013-03-24T06:45:17.287 に答える
0

コードを次のように置き換えます

<?php
if(!$_SESSION['username']){
  header("Location: ../error.php?id=1");
}

$teamgamertag = $_POST["gamertag"];
$teamgame = $_POST["game"];
$teamtype = $_POST["type"];
$teamname = $_POST["name"];
$teamconsole = $_POST["console"];

if(isset($_POST["submit"])){
  $sql2 = mysql_query("INSERT INTO teams (name, game, players, creator, console, leaders, type, score) VALUES ('$teamname', '$teamgame', '$teamgamertag', '$teamgamertag', '$teamconsole', '$teamgamertag', '$teamtype', '0')") or die(mysql_error());

  if($sql2){
    header('Location: ../results.php?id=1');
  }else{
    exit();
  }
}
?>
于 2013-03-24T06:47:53.817 に答える