当我尝试在数据库中注册新记录时,PHP 替换了文本

标签 php mysql database phpmyadmin

我正在使用 React 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"“空格”。然后,当我将 url 带回我的应用程序时,我无法下载 url 的内容,因为它已被 php“损坏”。我该如何解决这个问题???

PS:在我的数据库中,从 php 接收 url 的字段是 Varchar:300 长度。

最佳答案

如果您的网址一开始就已正确编码,则您不必对其进行解码。我的猜测是你只需将它通过 JavaScript 连接到查询字符串中即可。这是错误的。

有两件事可以解决这个问题。第一种是使用 POST 发送数据,以便 URL 可以是任意长度。第二个是让您的 JavaScript 库正确进行编码,将其作为不同的参数传递。例如,在 jQuery 中你可以这样做:

$.ajax({
  url: '/register.php',
  method: 'post',
  data: {
    'url': 'http://...',
    'user_id': user_id
  }
});

负责正确编码任何变量。如果您不进行 AJAX 样式调用,则常规表单提交也会执行此操作。

关于当我尝试在数据库中注册新记录时,PHP 替换了文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48326770/

相关文章:

mysql - Golang 加入数组接口(interface)

java - 如何将java数组的数据存储在硬盘中,以便以后使用?

iphone - 核心数据 : I want the pk in my fetched objects

php - 回显文本出现在错误的位置

php - 在继承树中获取 PHP 对象的祖先

mysql - 将包含斜杠的数据插入mysql

php - 两个相关的下拉列表和文本区域(4 个文本区域)取决于 mysql 的最后一个下拉列表

php - PHP混淆中的比较运算符 "=="

PHP - json_decode - 解码字符串问题

c# - 提高 C# 中 SQL SELECT 的性能