나는 사용자가 자신에 대해 게시하는 양식을 가지고 있습니다. 나는 PDO를 사용하여 아포스트로피 또는 첨부 파일과 관련하여 아무런 문제가 없지만 "
은 \"
exc로 표시됩니다. 당신이 짐작할 수 있듯이.PHP PDO 아포스트로피 및 인용 부호 이스케이프
또한 http://www.php.net/manual/en/pdo.prepared-statements.php에 대해 읽으려고했지만 웹 사이트의이 부분이 작동하지 않습니다. 그 이유는 내가 먼저 여기에서 묻는 이유입니다.
나는 사용자 입력과 같이 얻을 :
if(isset($_POST["doit"])) {
$about = cleanInput($_POST["about"]);
$name = cleanInput($_POST["name"]);
if(!empty($about) && !empty($name)){
try{
$cu_query = "INSERT INTO `members` (`about`, `name`) VALUES (:about, :name)";
$cu_query_do = $db->prepare($cu_query);
$cu_query_do -> bindParam(':about', $about, PDO::PARAM_STR);
$cu_query_do -> bindParam(':name', $name, PDO::PARAM_STR);
$cu_query_do->execute() or die(print_r($cu_query_do->errorInfo(), true));
}
catch(PDOException $e) {
$log->logError($e." - ".basename(__FILE__));
}
}
}
는이 같은 사용자 입력을 인쇄하여 다음과 같이 DB를에서 사용자의 입력을 가져 오기 :
//if isset get exc..
try {
$mq = "SELECT * FROM `members` WHERE `m_id` = :m_id";
$mq_check = $db->prepare($mq);
$mq_check->bindParam(':m_id', $m_id, PDO::PARAM_INT);
$mq_check->execute();
$ac = $db->query("SELECT FOUND_ROWS()")->fetchColumn();
}
catch(PDOException $e) {
$log->logError($e." - ".basename(__FILE__));
}
if(!empty($ac)) {
$_loader = true;
$fetch = $mq_check->fetch (PDO::FETCH_ASSOC);
$name = cleanInput($fetch['name']);
$about = cleanInput($fetch['about']);
}
echo $name;
이
답변 감사합니다 : WHM 또는 php.ini exc에서이 코드를 비활성화 한 경우에도 문제가 여전히 계속되는 경우 @Wayne Whitty 코드를 확인하십시오. 여전히 l 헤더 파일에이 코드를 포함
보다 활성 이케, 내 문제를 해결하지만, 여전히 문제가 계속되면, 당신은 귀하의 의견 sanitizations EXC을 확인하는 것보다
if (get_magic_quotes_gpc()) {
$process = array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST);
while (list($key, $val) = each($process)) {
foreach ($val as $k => $v) {
unset($process[$key][$k]);
if (is_array($v)) {
$process[$key][stripslashes($k)] = $v;
$process[] = &$process[$key][stripslashes($k)];
} else {
$process[$key][stripslashes($k)] = stripslashes($v);
}
}
}
unset($process);
}
.
당신이'cleanInput'에 대한 코드를 게시 하시겠습니까? 마법 따옴표이를 실행하여 사용할 수있는 경우
확인
확인합니다 – andrewsi아마도, 당신의'cleanInput()'함수가 addslashes() 또는 비슷한 것을 호출하고 있다고 가정합니다. 당신은 자리 표시자를 그대로 사용할 때 준비된 진술로 그럴 필요가 없습니다. –
PHP 구성을 확인하고 [magic quotes] (http://us.php.net/manual/en/info.configuration.php#ini.magic-quotes-gpc)가 꺼져 있는지 확인하십시오. – DCoder