좋아, 포럼 게시판에서 사용자의 의견을 삭제하기 위해이 스크립트를 실행하면 $ _SESSION [ 'id'] (사용자의 mysql id)이 $ postid (포럼 게시물의 ID)로 변경됩니다. 나는 그것을 설정하는 함수를 호출하지 않으며, 세션이 초기화 될 때 session_write_close();
이 호출됩니다. register_globals
가 ON이면
<?php
session_start();
// I'm not showing connection code.
if(isset($_SESSION['user'])){
$user = mysql_real_escape_string($_SESSION['user']);
$userid = mysql_real_escape_string($_SESSION['id']);
$id = mysql_real_escape_string($_GET['id']);
$postid = mysql_real_escape_string($_GET['article']);
$result = mysql_query("DELETE FROM `______`.`______` WHERE `userid`='$userid' AND `id`='$id' AND `user`='$user'")or die(mysql_error());
if(mysql_affected_rows($result) == 1){
mysql_query("UPDATE `_______`.`______` SET `points`=`points`-'1' WHERE `id`='$userid' AND `username`='$user'")or die(mysql_error());
mysql_query("INSERT INTO `________`.`_______` (`user`,`userid`,`amount`,`reason`) VALUES('$user', '$userid', '-1', 'Removed a comment')")or die(mysql_error());
}
mysql_close($con);
ob_start();
header("location:../view-article?id=$postid");
ob_end_flush();
} //if there is a user
else {
ob_start();
header("location:http://boundsblazer.com/not-logged-in?url=articles.view-article:id=$postid");
ob_end_flush();
}
?>
비슷한 변수에 액세스하는 다른 스크립트 또는 응용 프로그램을 실행하고 있습니까? 그렇다면 실수로 상호 작용하지 않도록 각 응용 프로그램마다 다른'session_name()'을 설정하십시오. –
귀하의 문제는 분명히 다른 곳에서 발생합니다.이 코드에는 아무 것도 없습니다 ... –
'register_globals '가 활성화되어 있는지 확인 하시겠습니까? 'echo ini_get ('register_globals')? 'On': 'Off'; ' – DerVO