2016-07-01 8 views
-3

この問題$_GET['id']

に等しいのですか$varの値に横たわる小さな追放システムの一部であるが、私はコードをテストしようとしたときに発生し、[」 (試行)がAUTO-INCREMENTまたは特別なプロパティなしでテーブル内のint(11)であることを知り、 だから、試行値を1だけインクリメントします。私はこのようなテーブルの行が見つかりました:

番号:1、IP:192.168.1.X、試行:2

id:1、ip:192.168.1.X、試み:4($ _GET ['id']の偽値の第2の実行で)

id:1、ip:192.168.1.X、試み:6

など($ _GET [「ID」]の偽の値の3回目の実行では)、そのは常に2

<?php 
$ip="192.168.1.11"; 
$var=1; 
if(isset($var)) 
{ 
    if(is_numeric($var) AND $var >=1) 
    { 
     $var=$var; 
    } 
    else 
    { 
     $var=null; 
     $msg[]="::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::"; 
     $query="SELECT * FROM table WHERE ip = '$ip'"; 
     if(($result=$mysql_link->query($query)) AND ($result->num_rows > 0)) 
     { 
      $row = $result->fetch_assoc(); 
      $current_score_of_attmpt=$row['attempt']; 
      $new_score_of_attmpt=$current_score_of_attmpt+1; 
      $result->free(); 
      $query = "UPDATE table SET attempt = attempt +1 WHERE ip = '$ip'"; 
      if($mysql_link->query($query)===TRUE) { 
       $msg[]="We have Updated your score of attempt to $new_score_of_attmpt"; 
       $msg[]="::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::"; 
      } 
      else 
      { 
       echo "Update Error: ".$query."<br>".$mysql_link->error; 
      } 
     } 
     elseif(!($mysql_link->error)) 
     { 
      $query ="INSERT INTO table (ip, attempt) VALUES ('$ip', 1)"; 
      if($mysqli_link->query($query)===TRUE) 
      { 
      $msg[]="Its Your First Attempt"; 
      } 
      else 
      { 
       echo "Update Error: ".$query."<br>".$mysql_link->error; 
      } 
     } 
     else 
     { 
      echo "SELECT Error: ".$query."<br>".$mysql_link->error; 
     } 
    } 
} 
else 
{ 
    $var=null; 
} 

echo "<br> the value of var = ".$var; 
if(isset($msg)) 
{ 
    for($i=1; $i<=sizeof($msg); $i++) 
    { 
     echo "<br>".$i.") ".$msg[$i]; 
    } 
} 
+7

「私のPHPコードでのエラーです?」空白のまま* - エラーをチェックして、自分で見つけます。 –

+0

[Little Bobby](http://bobby-tables.com/)によると*** [あなたのスクリプトはSQLインジェクション攻撃の危険にさらされています。](http://stackoverflow.com/questions/60174/how-can- i-prevent-sql-injection-in-php)*** [MySQLi](http://php.net/manual)の[prepared](http://en.wikipedia.org/wiki/Prepared_statement)ステートメントについて学びます。 /en/mysqli.quickstart.prepared-statements.php)。 [文字列をエスケープする](http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string)でも安全ではありません! –

+0

私はテーブルの名前で変数を使用しているので、私は準備されたステートメントを使用することはできません –

答えて

1

ずつインクリメント私はコードがに何も持っていなかったことがわかりました問題を解決する 牽引時間を実行した理由は、 私のHTMLテンプレートでは、Webアプリケーションアイコンの完全なパス(URL)を定義するのを忘れていました。 は、私はそれが*

<link href="" rel="icon"> 
+0

私はまた、ブラウザでお気に入りのWebページをプリフェッチして同様のことをしています。 – Progrock

関連する問題