Я разрабатываю приложение, использующее реакцию native, моя работа заключается в том, чтобы это приложение регистрировало новую запись в моей базе данных, расположенной на моем сервере. Для этого у меня есть файл в моем FTP (register.php), используемый для регистрации записи в моей базе данных.
Это код php:
<?
ini_set('memory_limit', '512M');
header("Content-Type: text/html; charset=UTF-8",true);
$user_id = $_GET['user_id'];
$url = $_GET['url'];
$db = mysqli_connect('mysql.urlAdress.com.br','dbName','password' ) or die( 'Conexion error' );
mysqli_select_db($db,'dbName');
if (!$db){
echo '[{"erro": "Error trying to connect to the database"';
echo '}]';
}else {
$result = mysqli_query($db,"insert into profile (user_id, url) values ('$user_id', '$url') ");
}
mysqli_close($db);
?>
Мне просто нужно получить такую ссылку, передающую некоторую информацию: http://www.mysite.com.br/app/ws/register.php?user_id=MyName&url=http:://urlHere.com
Проблема заключается в том, что всегда php заменяет символы "%2F"
на "/"
и "%20"
на "space"
. И затем, когда я верну url обратно в свое приложение, я не смогу загрузить содержимое URL-адреса, потому что он "поврежден" php. Как я могу это исправить???
PS: В моей базе данных поле, которое получает URL-адрес от php, является Varchar: 300 lenght.
Вам не нужно расшифровывать ваш URL, если он был правильно закодирован в первую очередь. Я думаю, вы просто разбиваете его на строку запроса с конкатенацией в JavaScript. Это не верно.
Две вещи могут это исправить. Первый использует POST для отправки ваших данных, чтобы URL мог иметь произвольную длину. Во-вторых, чтобы ваша библиотека JavaScript правильно кодировала кодировку, передайте ее как отдельный параметр. Например, в jQuery вы можете:
$.ajax({
url: '/register.php',
method: 'post',
data: {
'url': 'http://...',
'user_id': user_id
}
});
Там, где это необходимо для правильного кодирования любых переменных. Регулярное представление формы также будет делать это, если вы не выполняете вызовы стиля AJAX.
Это потому, что php автоматически декодирует URL, включая его параметры. Вы можете использовать urlencode()
для параметра url get, чтобы получить кодированную версию вашего URL-адреса. http://php.net/manual/en/function.urlencode.php
urlencode()
должен быть решением.