기본적으로 변수 $ shopid를 사용하여 어떤 상점이 선택되었는지 파악하고 있습니다. 나는 이제 각 상점 페이지에 주석을 달 수 있도록 주석 시스템을 만들려고 노력 중입니다. 내 SELECT 쿼리 내 INSERT에서 같은 변수를 사용하려고하면이 작동하지 않는 이유는, 단순히 0변수가 INSERT에서 인식되지 않지만 SELECT에서 작동 중임
<?php
database connection
session_start();
if (isset($_SESSION['logged'])){
$s_userID = $_SESSION['userID'];
$shopid = $_GET['page_id'];
$str_shops = '';
//bring shop data
mysqli_select_db($db_server, $db_database);
$query = "SELECT * FROM shops WHERE shopID = '$shopid'";
$result = mysqli_query($db_server, $query);
if (!$result) die("Database access failed: " . mysqli_error($db_server));
while($row = mysqli_fetch_array($result)){
$str_shops .= "<div class='result'><strong>" .
$row['image1'] . "<br><br>" .
$row['name'] . "</strong><br><br>" .
$row['address'] . "<br><br>" .
$row['website'] . "<br><br>" .
$row['openinghours'] . "<br><div class='justifytext'>" .
$row['more'] . "<br><br></div><strong>What do they sell?</strong><br><br><div class='justifytext'>" .
$row['sold'] . "<br><br></div></div>";
}
//post comment
mysqli_select_db($db_server, $db_database);
$comment = $_POST['comment'];
if ($comment != '') {
$query = "INSERT INTO comments (userID,shopID,comment) VALUES ('$s_userID', '$shopid', '$comment')";
mysqli_query($db_server, $query) or
die("Insert failed: " . mysqli_error($db_server));
$commentmessage = "Thanks for your comment!";
}
mysqli_select_db($db_server, $db_database);
$query = "SELECT * FROM comments";
$result = mysqli_query($db_server, $query);
if (!$result) die("Database access failed: " . mysqli_error($db_server)); $i = 0;
while($row = mysqli_fetch_array($result)){ $i++;
$str_comments.= "<p><div id='displaycomments'>" . $row['username']. ", " .
$row['commdate'] . ": <br>" .
$row['comment'] . "</div>";
}
}
echo $str_shops;
echo $commentmessage;
echo $str_comments;
mysqli_close($db_server);
?>
사람이 볼 수 게시 $의 shopid을 인식하고 내가 그것을 사용하는 것이 가능합니까? 오류가 발생하지 않고 테이블의 shopID 열에 0을 단순히 추가하는 것입니다.
** 관련없는 : ** 당신은 ** SQL 주입 공격에 ** 활짝 열려 있고, 당신이하지 않은 경우 당신은 해킹됩니다 이미. 이 문제가 발생하지 않도록 준비/매개 변수화 된 쿼리를 사용하십시오. [PHP에서 SQL injection을 막을 수있는 방법은 무엇입니까?] (0120-13753) –
'$ query'를 에코하여 출력을 복사하고 SQL 관리 도구 (예 : phpmyadmin)에서 실행하십시오.). 그런 다음 결과를 게시하십시오. – potashin