2017-11-10 1 views
0

안녕하세요 여러분 께 제가 누락 된 것이 분명하다고 생각하지만 왜 이것이 작동하지 않는지 알 수 없습니다! 그래서 나는 테이블과 데이터를 가지고 있는데, 나는 이미지 컬럼을 얻으려고 노력하고있다. 그러나 어떤 이유인지, 그것은 작동하지 않는다. 당신이로 사용한다, 그래서데이터베이스에서 Wordpress wpdb 결과를 가져 오지 못했습니다.

<?php 

global $wpdb; 

$tablePacks = 'packs'; 

$res = "SELECT * FROM ".$tablePacks." where nom_pack_get = '".$_GET["pack"]."'"; 

$packImg = $wpdb->get_results($res, ARRAY_A); 

if(count($packImg) == 1){ 
    ?> 
    <div class="forma_reservas_datos_imagen imgPack" style="background-image:url(<?php echo $packImg->imatge_url; ?>)"> 
<?php 

} 

?> 
+2

코드는 [** SQL injection **] (https://en.wikipedia.org/wiki/SQL_injection) 공격에 취약합니다. [** mysqli **] (https://secure.php.net/manual/en/mysqli.prepare.php) 또는 [** PDO **] (https (https://secure.php.net/manual/en/mysqli.prepare.php)) 매개 변수를 통해 매개 변수가 바인딩 된 준비된 문을 사용해야합니다. : //secure.php.net/manual/en/pdo.prepared-statements.php) 드라이버. [**이 게시물 **] (https://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php)에는 좋은 예가 있습니다. –

+0

감사합니다. PDO tho에 대해 많이 알지 못하므로 나중에 웹 사이트가 설정되고 작동 할 때 언젠가 구현할 것입니다. – JJCarlk3

+0

하지 마십시오. PDO를 배우십시오, 쉽습니다. 그렇지 않으면 손상된 웹 사이트를 백업에서 복원하는 방법을 배우게됩니다. –

답변

1

$packImg는 연관 배열, 어떤 개체의 배열이됩니다

<div class="forma_reservas_datos_imagen imgPack" style="background-image:url()"></div> 

PHP :

내가 (빈 URL)를 얻고 무엇인가 $packImg[0]["imatge_url"].

다른 사람들이 의견에서 지적한 것처럼 SQL 주입에주의하십시오. wpdb's prepare method 사용

$res = $wpdb->prepare("SELECT * FROM ".$tablePacks." where nom_pack_get = %s", $_GET["pack"]); 

prepare가 데이터베이스에 전송하는 것이 안전합니다 SQL을 반환합니다 (당신이 '" . $myvar . "' 모든 시간을 입력 할 필요가 없습니다, 정말 많은 도움이, 같은에서 보안 코드를 만든다 시각).

+0

고맙습니다. 시도해 보겠습니다. 작동하는지 알려 드리겠습니다. 그리고 너희들은 아마 맞을 것이다. 나는 pdo와 SQL injections을 배워야 만한다. 내 생각처럼, 보통의 소규모 사업이 내 생각에 왜 누군가 해킹하고 싶어 할까? 하지만 그래, 나는 그것이 누구에게나 일어날 수 있다고 생각한다. – JJCarlk3

+0

완벽하게 작동합니다! 고맙습니다! – JJCarlk3

+0

다행입니다. 그리고 SQL 인젝션에 관해서는 아마 당신이 특별히 목표로 정해지는 것은 아닙니다. 그러나 웹 사이트를 대량 검사하고 쿼리 문자열을 통해 전달 된 변수를 조작하고 발견 한 내용을 소유자에게보고하는 봇이 있습니다. 당신의 문이 잠겨 있는지 여부를 확인하고 잠금을 해제하지 않고 집에 침입했는지 여부를 결정하는 누군가와 같이 생각하십시오. – janh

관련 문제