0

我对 PHP 比较陌生,我认为这将是一个简单的管理代码。我想要做的是在页面上有一个 HTML 输入框,当有人在其中输入名称时,使用 Javascript 我希望能够在同一个输入框中输出带有网站字符串的名称的编码版本在它前面创建一个新链接。现在,当有人在其 Web 浏览器中访问此链接时,它会在页面上显示 name 变量。

例子

John 在 HTML 表单中输入了他的名字。

“约翰狄金森”

当他按下提交按钮时,他刚刚输入他的名字的 HTML 输入框变成了这样的东西:

“http://www.example.com/johndickinsonencoded/”

其中 Johndickinsonencoded 是他名字的编码字符串。

当在网络浏览器中访问“http://www.example.com/johndickinsonencoded/”时,它会在屏幕上输出:

“你好约翰狄金森”

帮助将不胜感激:)

4

1 回答 1

0

您将需要某种方式使用 JavaScript 对字段进行编码,并在字符串到达​​ PHP 时对其进行解码。选择一个前进和后退的编解码器应该相当容易,即使只使用 base64 也应该这样做。(JavaScript 没有对 base64 编码的内置支持,但周围有很多这样的例子。)如果你有一些其他的编码和解码字段的方法,那也很好。

在服务器端,您将不得不使用Apache mod_rewrite 规则进行一些重写。基本上,您会在 httpd.conf 部分或本地 .htaccess 文件中需要类似的内容:

# use mod_rewrite to enable passing encoded user name as a "Clean URL"
RewriteEngine On
# Define the rewrite base -- / says use what is immediately after the hostname part
RewriteBase /
# Send bare requests to index.php
RewriteRule ^$  index.php [L]
# Don't rewrite requests for files, directories, or symlinks
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
# Send requests to index.php, appending the portion following the RewriteBase
RewriteRule ^(.*)$ index.php?n=$1 [QSA,L]

The last will rewrite your original url: "http://www.example.com/johnsmithencoded" to "http://www.example.com/index.php?n=johnsmithencoded", from there, you can get the query parameter via $_GET['n'] and decode it as needed.

于 2012-06-15T14:40:47.943 回答