2012-07-31 2 views
0

나는 작은 보드/포럼에서 일하고있다. 주제 게시가 완료되었습니다. 그것은 데이터베이스와 모든 재즈에서 볼 수 있습니다. 이제는 주제 목록을 검색하고 있으므로 주제를 클릭하면 볼 수 있습니다. 그건 잘하고있어, 내가 그것을 클릭하면 페이지가 비어 아무것도 보이지 않는 것을 제외하고. 문제는 while 루프가있는 if-else 문에 있기 때문에 클릭 한 게시물의 ID를 가져올 수 없다는 것입니다. 여기 내 코드가 있습니다.PHP 토픽보기 및 답장 스크립트

<?php 
    require('init.php'); 

    $get_threads = mysql_query("SELECT * FROM GOT ORDER BY time"); 
    if (!isset($_GET['view_thread'])) { 
    $get_threads = mysql_query("SELECT * FROM GOT ORDER BY time"); 
    while ($select_threads = mysql_fetch_assoc($get_threads)) { 
     $title = $select_threads['title']; 
     $time = $select_threads['time']; 
     $user = $select_threads['user']; 
     $id = $select_threads['id']; 
     $form = '<center> 
       <form method="get" action=""> 
       <input type="submit" name="view_thread" id="view_thread" value="'.$title.'" /> 
       <input type="hidden" name="thread_id" id="thread_id" value="'.$id.'" /> 
       </form> 
       </center>'; 
     echo '<div id="post_info">'.$form.'<hr>Posted by: <b>'.$user.'</b> '.$time.'</div>'; 
    } 
    } else { 
    $get_posts = mysql_query("SELECT * FROM GOT WHERE id='$id'"); 
    $select_posts = mysql_fetch_assoc($get_posts); 
    $content = $select_posts['content']; 
    echo $content; 
    } 
?> 

나는 $id 그래서 나중에 데이터베이스에서 모든 응답을 게시물을 잡을 수 있다는 얻을 필요가있다. 나는 PHP에 익숙하지 않기 때문에 아마 뭔가 빠졌을 것이다. 어떤 도움을 주셔서 감사합니다!

+0

$ id = $ _ GET [ 'thread_id'];를 추가하십시오. after} else { – Huseyin

+0

새로운 코드를 작성하기 위해'mysql_ *'함수를 사용하지 마십시오. 더 이상 유지 관리되지 않으며 커뮤니티가 [지원 중단 프로세스] (http://goo.gl/KJveJ)를 시작했습니다. [* 빨간색 상자 *] (http://goo.gl/GPmFd)를 참조하십시오. 대신 [prepared statements] (http://goo.gl/vn8zQ)에 대해 알아야하고 [PDO] (http://php.net/pdo) 또는 [MySQLi] (http://php.net/)를 사용해야합니다. mysqli). 어떤 것을 결정할 수 없다면 [이 기사] (http://goo.gl/3gqF9)가 도움이 될 것입니다. PDO를 선택하면 [여기는 좋은 가이드입니다] (http://goo.gl/vFWnC). – orourkek

답변

-1

첫째 : 당신의 매개 변수는 POST 갈 대신에 방지하기 위해

  • 사용 mysql_real_escape를 GET "thread_id"라는, 그래서 당신의 쿼리는

    $get_posts = mysql_query("SELECT * FROM GOT WHERE id='$thread_id'"); 
    

    을해야하지만 강력

    1. 에 제안 SQL 삽입
  • +0

    게시물을 사용하면 사람들은 URL을 사용하여 주제를 탐색 할 수 없게됩니다. – NardCake

    +0

    그리고 고마워요! 세 낭비 일 롤. – NardCake

    +0

    새로운 코드를 작성하기 위해'mysql_ *'함수를 사용하지 마십시오. 더 이상 유지 관리되지 않으며 커뮤니티가 [지원 중단 프로세스] (http://goo.gl/KJveJ)를 시작했습니다. [* 빨간색 상자 *] (http://goo.gl/GPmFd)를 참조하십시오. 대신 [prepared statements] (http://goo.gl/vn8zQ)에 대해 알아야하고 [PDO] (http://php.net/pdo) 또는 [MySQLi] (http://php.net/)를 사용해야합니다. mysqli). 어떤 것을 결정할 수 없다면 [이 기사] (http://goo.gl/3gqF9)가 도움이 될 것입니다. PDO를 선택하면 [여기는 좋은 가이드입니다] (http://goo.gl/vFWnC). – orourkek