2016-11-21 2 views
0

제가 작업중인 PHP 페이지에 문제가 있습니다.흰색 화면이 나타나는 PHP/HTML 페이지를 디버깅하는 방법은 무엇입니까?

나는 MySQL 데이터베이스에서 데이터를 리콜하는 list.php를 가지고 있는데, config.php는 db에 대한 연결 페이지이다. 아래는 edit.php 페이지입니다. 볼 때 완전히 비어 있습니다. 내 코드가 어디에서 잘못 되었습니까? (편집 (382)의 클라이언트 ID를 리콜한다)

URL 문자열 http://localhost/example/edit.php?id=382만큼 간단한`

<html> 
    <body> 
    <?php 
    include('config.php'); 
    if(isset($_GET['cx_id'])) 
    { 
     $id=$_GET['cx_id']; 
     if(isset($_POST['submit'])) 
     { 
      $name=$_POST['Name']; 
      $address=$_POST['Address']; 
      $query3=mysqli_query("update restrictedkeys set Name='$name', Address='$address' where cx_id='$id'"); 
      if($query3) 
      { 
       header('location:list.php'); 
      } 
     } 
     $query1=mysqli_query("select * from restrictedkeys where cx_id='$id'"); 
     $query2=mysqli_fetch_array($query1); 
     ?> 
     <form method="post" action=""> 
      Name:<input type="text" name="name" value="<?php echo $query2['Name']; ?>" /><br /> 
      Address:<input type="text" name="address" value="<?php echo $query2['Address']; ?>" /><br /><br /> 
      <br /> 
      <input type="submit" name="submit" value="update" /> 
     </form> 
     <?php 
     } 
    ?> 
    </body> 
</html> 
+0

http://stackoverflow.com/a/21429652/2506641 –

+0

SQL 주입 취약점에주의하십시오. 누군가 해당 코드로 'restrictedkeys'의 모든 행에 대한 모든 열 값을 지울 수 있습니다. – halfer

+0

조언 만하면 SQL 인젝션을 피하기 위해 SQL 매개 변수 바인딩을 사용하십시오. :) – Ronald

답변

0

. 귀하의 양식은이 조건에 일치하는 경우 인쇄됩니다 : URL이 http://localhost/example/edit.php?id=382입니다

if(isset($_GET['cx_id'])) 
{ 

때문에, 정말 작동하지 않을 것입니다.

http://localhost/example/edit.php?ctx_id=382으로 변경하면 다른 결과가 발생할 수 있습니다.

+0

감사합니다. 나는 PHP에 매우 익숙하고 간단한 물건이라면 놓칠 것 같습니다. –

+0

좋습니다, @CoreyCormack. 코드가 약간 안전하지 않다는 것을 기억하십시오. 쿼리 문자열에'$ id'를 추가하기 전에 mysqli_real_escape_string을 사용하여 웹 사이트가 SQL injection에 의해 공격받지 않도록하십시오. – Phiter

+1

@PhiterFernandes : 매개 변수 바인딩을 권장하는 것이 좋습니다. 일부 경우에는 이스케이프가 여전히 주입을 허용합니다. – halfer

관련 문제