2

我想要做的是如果有人在网址栏中写

www.somesite.com/test

test 类似于用户名,因此它将是 www.somesite.com/Username 然后页面导航到另一个并显示用户名相同的数据中的数据

该页面将导航到另一个页面并显示来自他的数据库的数据

这可能首先吗?

这就是我现在写的不多,而且我也是 PHP 新手

$url = 'http://'. $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
$url2 = "http://www.somesite.com/"$databaseVar1=mysql_result($result,$i,"username");

if ($url) == ($url2)
{
header("location: http://somesite.com/viewcontent.php");
}
else
{
//not found
}

我能做这样的事情吗?任何帮助都会非常感谢

4

5 回答 5

1

在 PHP 中,这并不完全可能,但是,您可以执行以下操作:

www.somesite.com/index.php/test

Apache 将打开 index.php,您可以使用类似$_SERVER['REQUEST_URI']从那里导航的东西

于 2013-05-31T09:56:24.653 回答
0

采取了一些假设(由于您的问题中缺少完整的源代码):

  1. mysql连接已建立
  2. 正确的查询已发送到 mysql 服务器
  3. 变量 $i 设置为有意义的值
  4. www 服务器被配置为重写对 index.php 的请求

您只需要将 REQUEST_URI 与从数据库中获取的“用户名”列值进行比较。标题“位置:...”必须有大写字母“L”。

并且避免在 PHP 中比较字符串时使用“==”运算符,strcmp() 函数更可靠——“==”运算符测试身份而不是相等性——比较数值很有用。

于 2013-05-31T10:08:59.430 回答
0

您将需要在 .htaccess 中使用重写规则将所有请求重定向到 index.php。然后可以使用 Index.php

或者你可以放一个?在用户名之前。然后 index.php 会自动获取所有请求。然后 $_SERVER['querystring'] 将收到用户名。

于 2013-05-31T10:04:10.763 回答
0

您可以将 index.php 定义为应用程序调度程序,并创建一个 .htaccess 文件将请求重定向到它:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . index.php [L]

索引.php:

$page = $_SERVER['REQUEST_URI']; //=> '/Users/show'

if ($page == '/some/page/') include('file_that_handles_this_request.php');

或者您可以使用它来创建类的实例并调用方法:

$page = $_SERVER['REQUEST_URI']; //=> '/Users/show'
list($class, $method) = explode($page);

$object = new $class();
$object->{$method}();
于 2013-05-31T10:04:23.840 回答
0

你应该使用mvc 架构来获得你想要的完美。
mvc 中的 url 和你想要的一样。您可以直接从 url调用带有参数的方法。这是mvc 架构中的 url 模式- www.yoursitename.com/controller/methodname/parameter

于 2013-05-31T10:30:41.467 回答