2017-03-25 2 views
-3

이 코드가 잘못되었음을 알려주십시오. 그것은 성공하지만 SQL에서 변경 말한다. 무엇인가 잘못되었습니다 $ est = intval ($ _ GET [ 'est']); Plz 도움말.PHP에서 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 Injection Attack] (http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php) 위험에 있습니다. 발생한 일을 살펴보십시오. [리틀 바비 테이블] (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']); 

당신은이 값이 존재하는지 확인하지 않고 $_GET['est']을 사용합니다. 이것을 시도하십시오 :

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

추신 : SQL 주입 코드를 확실히 보호해야합니다. PHP의 보안 문제를 악용하는 것이 가장 잘 알려지고 가장 쉽습니다. 브라우저 만 사용하여 몇 초 만에 SQL 주입을 할 수있었습니다.