【问题标题】:Encoding a PHP variable to URL link将 PHP 变量编码为 URL 链接
【发布时间】:2014-04-06 01:34:19
【问题描述】:

规格:

  • 我有一个将结果作为 PHP 变量输出的网络表单。

  • 使用 RSForm Pro

  • Joomla! 2.5.14

  • 管理员电子邮件输出

示例:

'修改输出布局':

To Approve this request, Please Add it to the Calendar:

http:///phpt/getform.php?name={Name:value}&dateFrom={from:value}&dateTo={until:value}

输出:

To Approve this request, Please Add it to the Calendar:

http:///phpt/getform.php?name=Josh Thomson&dateFrom=...etc

问题:

变量以空格输出。由于变量被附加到 URL,我希望使用正确的编码对变量进行编码。例如%20 表示“空格”,因此最终输出将如下所示:

To Approve this request, Please Add it to the Calendar:

http:///phpt/getform.php?name=Josh%20Thomson&dateFrom=...etc

我只使用 PHP,所以请您指定一个将采用变量并返回编码变量的解决方案...我假设它看起来像这样:

$encodnameval = encodeurl($_POST['form']['name']);

非常感谢任何帮助,谢谢!乔什。

编辑:上面的代码已更改,但仍无法正常工作。

输出到 URL:

http:///phpt/getform.php?name=$encodnameval&dateFrom=...etc

需要使用 RSForms。

【问题讨论】:

  • Pas de quoi Josh on t'aime!
  • en anglais s'il vous plaît

标签: php html url encode asciiencoding


【解决方案1】:
urlencode($string)

正是您要寻找的。 http://de2.php.net/manual/en/function.urlencode.php

如果这是您需要替换的唯一字符,则只需用 %20 替换所有空格

【讨论】:

  • 我在表单后面构建函数,所以它将接收数百个(如果不是数千个)包含字符串的多字/符号......所以我确实需要这段代码。 ...我确实发现它只是 1 个参数,但刚刚不小心使用了 JS 代码:'encodeURI('$_POST["form"]["Name"]');'
  • 好吧,记住 URL 有一个最大长度。如果它变得太长,你将不得不使用GET发送数据
  • 没关系,我只需要把它放到网址上
【解决方案2】:

所以这对你有用: $name = urlencode($_POST['name']); $encodnameval = 'Name: '.$name;

【讨论】:

  • 它需要放在动态创建的 URL 中,它是一个 POST,而不是一个 GET
  • 好的,乔什,我改变了那部分,所以现在代码应该是正确的。
  • 抱歉,这不能回答我的问题。我正在寻找一种使用编码输入变量将 URL 输出到管理员电子邮件的方法。我不是在寻找一种简单编码变量的方法。不过感谢您的努力....我正在寻找的修复看起来更像这样: ....EMAIL 包含链接:http:///phpt/getform.php?name=........ RSFORMS 中的 PHP 脚本:$nameVar = urlencode($_POST["form"]["Name"]);$adminEmail[0] = $nameVar;...... . 但是,看起来初始 PHP POST 没有在 FORM 提交时发布
【解决方案3】:

正如马林所说,urlencode() 会为你工作..

如下使用..

假设你想发送这个

 $name = 'Josh Thomson';  // $name = $_POST['form']['Name'];
 $url = 'http://phpt/getform.php?name='.$name;

你需要做的是..

$name = urlencode('Josh Thomson'); // $name = urlencode($_POST['form']['Name']);
$url = 'http://phpt/getform.php?name='.$name;

然后它会自动变得安全..喜欢

http://phpt/getform.php?name=Josh%20Thomson

如有任何问题,请随时提出。

【讨论】:

  • 不能做这个方法,你只是把它变成了静态输入。它需要是动态的
  • 需要修改 $_POST['form']['Name'] 变量
  • 乔希你可以使用$name = urlencode($_POST['form']['Name']); $url = 'http:///phpt/getform.php?name='.$name;你可以这样做..
  • 不起作用,我刚刚想到一个想法,我将尝试将一些PHP嵌入到隐藏字段中,以便将输入数据作为编码版本复制到隐藏字段中,然后附加编码副本(隐藏字段)到 URL...我感谢大家到目前为止的帮助!
【解决方案4】:

我发现自动编码是在浏览器内完成的,所以一个静态超链接:

http://mywebsite.org/phpt/myscript.php?name={Name:value}&dateFrom={from:value}&dateTo={until:value}

链接生成有效 URL 所需的一切。

在 rsforms 中,这意味着在“源代码编辑器”中编写 URL 的 HTML 部分,在文本编辑器中编写字符串元素,而且 Whoila!它有效!

http://amazewebs.com/demo = 显示我的脚本改为使用 POST 方法。

【讨论】:

    猜你喜欢
    • 2015-06-16
    • 1970-01-01
    • 2021-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多