В моем файле PHP есть знак равенства в $ filename для file_get_contents, и он преобразуется в "% 3" Как мне с этим бороться? - PullRequest
0 голосов
/ 06 сентября 2011

У меня есть php-файл, который берет изображение с веб-сайта и сохраняет его в моей базе данных. Название файла содержит символ равенства. Файл, который я в итоге сохраняю, - это изображение, которое я получаю, когда меняю знак равенства на «% 3» в URL. Как я могу сделать так, чтобы он поднял файл, который находится в том месте, URL которого содержит '='?

$idNum=$_GET['idNum'];
$testpage = file_get_contents('http://www.something.com/php/thePic.php?id=$idNum');
$testpage = mysql_real_escape_string($testpage);  
mysql_query("UPDATE tblSomething SET Pic = '$testpage' WHERE id='$idNum'");

Спасибо, R

Ответы [ 2 ]

1 голос
/ 06 сентября 2011

Имя файла выводится в форме "urlencoded". Вам нужно использовать функцию urldecode (), чтобы вернуть знак =.

urldecode($string);

Подробнее здесь - http://php.net/manual/en/function.urldecode.php

Итак, перед вашим SQL-запросом добавьте этот код-строки ($ field);

0 голосов
/ 06 сентября 2011

И да .. Вы уязвимы для атак SQL-инъекций .. С этими атаками ваше предложение WHERE может быть легко обойдено. Просто убедитесь, что вы не выполняете какую-либо конфиденциальную обработку с такого рода запросом.

...