2016-09-01 5 views
2

일련의 질문을 표시했습니다.PHP를 사용하여 URL에서 값을 가져옵니다.

답변을 동일한 페이지에 게시해야하는 질문 중 하나를 선택했을 때 문제는 내가 선택한 항목의 URL에서 id 매개 변수를 가져 오지 못하는 것입니다.

이제 내가 선택한 질문에 대답하려고 할 때, 예를 들어 id = 1에 대한 매개 변수로 URL에 이미있는 perticular 질문의 답을 게시하려면 질문의 ID가 필요합니다. 여기

는 HTML 페이지의 본문입니다 :

 <?php 
include("menu/menu.php"); 
$sqli = "SELECT * FROM forum_question where id='$id'"; 
$result=mysqli_query($conn,$sqli); 
    ?> 

    <form action="submit_answer.php" method="post" name="answers"> 
    <br> <br> <br> 


     <?php 
    while($row = mysqli_fetch_array($result)) 
    echo "Q".$row['detail']; 
    ?> 

    <br> 
    answers:<br> 
    <textarea class="tinymce" name="answers"></textarea> 
    <input type="hidden" name="id" value="<?php echo $id;?>"> 
    <br> <br> 
    <input type="submit" value="submit" name="submit"> 

이 후 페이지 "submit_answer.php"를 제출, 코드는 다음과 같습니다

기본적으로
<?php 
include'config.php'; 

if($conn){ 
if ($_SERVER["REQUEST_METHOD"] == "POST") { 

    $answers = $_REQUEST['answers']; 

    $id= $_GET ['id']; 
    } 

    $sqli= "INSERT INTO answers (answers) 
VALUES ('$answers')"; 
if (mysqli_query($conn,$sqli)) 
{ 
    echo "New record created successfully"; 
    header("location:answer.php?id='$id'"); 

} else { 
    echo "Error: " . $sqli . "<br>" . $conn->error; 
    } 
}else{    

} 

mysqli_close($conn); 


?> 

나는 매우 신선 PHP에서 나는 단지 질문의 ID를 어떻게 얻어야하고 대답 내용이있는 "submit_answer.php"에 제출해야하는지 알고 싶습니다.

+3

은 –

+1

에 html 및 js 코드를 제공합니다. SQL 쿼리는 유감스럽게도 주입 공격에 개방적입니다. 보안 결함을 완화하는 데 도움이되는 준비된 진술 및 바운드 매개 변수를 제공하는 PDO로 전환하십시오. PHP에 익숙하지 않으므로 http://www.phptherightway.com/을 통해 독서하는 것이 좋습니다. 이전 튜토리얼에서 흔히 볼 수있는 함정을 넘습니다. – jedifans

+0

@jedifans - OP가 이미 사용하고있는 mysqli는 prepared statement와 bound parameters를 지원한다. – Quentin

답변

0

당신은

<?php 
include'config.php'; 

if($conn){ 
    if (isset($_POST['answers']) && isset($_POST['id'])) { 
    $answers = $_POST['answers']; 
    $id= $_POST['id']; 

    $sqli= "INSERT INTO answers (answers) VALUES ('$answers')"; 
    if (mysqli_query($conn,$sqli)) 
    { 
     echo "New record created successfully"; 
     header("location:answer.php?id='$id'"); 

    } else { 
     echo "Error: " . $sqli . "<br>" . $conn->error; 
    } 
    } 
    mysqli_close($conn); 
} 
?> 
1

그냥 대답 필드 아래에 숨겨진 필드를 가지고에 URL 매개 변수를 얻을 수 (마크 업 HTML에서 ID에 대한 숨겨진 입력을 추가)

<?php 
include'config.php'; 
//session_start(); 
$id= $_GET ['id']; 

?> 

<html> 
<head> 
    <link rel="stylesheet" type="text/css" href="css/style.css"> 
    <script type="text/javascript" src="tinymce/js/jquery.min.js"></script> 
     <script type="text/javascript" src="tinymce/plugin/tinymce/tinymce.min.js"></script> 
     <script type="text/javascript" src="tinymce/plugin/tinymce/init-tinymce.js"></script> 
</head> 
    <body> 
    <div id="container"> 
     <div id="main"> 


     <?php 
     include("menu/menu.php"); 
     $sqli = "SELECT * FROM forum_question where id='$id'"; 
     $result=mysqli_query($conn,$sqli); 
     ?> 

    <form action="submit_answer.php" method="post" name="answers"> 
     <br> <br> <br> 
     <?php 
     while($row = mysqli_fetch_array($result)) 
     echo "Q".$row['detail']; 
     ?> 

     <br>answers:<br> 
     <textarea class="tinymce" name="answers"></textarea> 
     <input type="hidden" name="id" value="<?php echo $id;?>"> 
     <br> <br> 
     <input type="submit" value="submit" name="submit"> 
    </form> 
    </body> 
</html> 

submit_answer.php 변경해야 사용자가 buivankim2020에 의해 말했듯이 페이지에 숨겨진 필드가 있고 제출 후 submit_answer.php,

제출 후 가져 오기에 대한 변수와 같은 변수 값을 가져옵니다. 대답 ..

관련 문제