2017-03-25 5 views
-3

このコードが間違っているかどうかを教えてもらえますか? これは成功したと言いますが、SQLでは変わりません。 それは何かが間違っています $ est = intval($ _ GET ['est']); Plzヘルプ。あなたは、この値が存在するかどうかをチェックせずに$_GET['est']を使用SQLでPHPコードが更新されません

?php 

session_start(); 

require_once("lib/connection.php"); 

if (!isset($_SESSION['username'])) { 
header('Location: login.php'); 
}else { 
$ten = $_SESSION['username']; 
$sql = "select * from users where username = '$ten' "; 
$query = mysqli_query($conn,$sql); 
$data = mysqli_fetch_array($query); 
} 
$est = intval($_GET['est']); 

$query2 = "SELECT * FROM customerinfo where estimate_number = '$est'"; 

$result = mysqli_query($conn,$query2); 
$row = mysqli_fetch_array($result); 

if (isset($_POST["xacnhan"])) { 
    if (isset($_POST["estc"])){ 
    $estc = $_POST["estc"]; 
$sql = "UPDATE customerinfo SET estimate_number = '$estc' WHERE estimate_number = '$est'"; 
      mysqli_query($conn,$sql); 
      echo "ban da doi thanh cong Name: $estc"; 
    } 

     if(isset($_POST["namec"])){ 
$namec = $_POST["namec"]; 
$sql = "UPDATE customerinfo SET name = '$namec' WHERE estimate_number = '$est'"; 
mysqli_query($conn, $sql); 
echo "ban da doi thanh cong Name: $namec"; 

} 


} 

?>

+0

あなたのスクリプトは[SQLインジェクション攻撃](http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php)の危険にさらされています。 [Little Bobby Tables](http://bobby-tables.com/)[入力を逃れている場合でも、安全ではありません!](http://stackoverflow.com/questions/5741187/sql-injection-that-gets -around-mysql-real-escape-string)[prepared parameterized statements](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)を使用してください。 –

+1

コード内のエラーをチェックしないため、何が問題なのか分かりません。コードが常に完璧に動作するとは決して考えないでください。 ['mysqli_error()'](http://php.net/manual/en/mysqli.error.php)を使用して、データベースから詳細なエラーメッセージを取得してください。 –

答えて

0
$est = intval($_GET['est']); 

。これを試してみてください:

if (!isset($_GET['est'])) { 
    // error 
} else { 
    $est = intval($_GET['est']); 
} 

PS:コードをSQLインジェクションから確実に保護する必要があります。 PHPのセキュリティ上の問題を悪用するのが最もよく知られており、最も簡単です。私は、わずか数秒でブラウザを使用してSQLインジェクションを行うことができました。

関連する問題