Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
网页上的PHP函数是否具有URL重写功能?_Php_Mysql_Url_Pdo - Fatal编程技术网

网页上的PHP函数是否具有URL重写功能?

网页上的PHP函数是否具有URL重写功能?,php,mysql,url,pdo,Php,Mysql,Url,Pdo,在我的网站上我有一个县的下拉列表 <form method="post" action="/people.php" > <select name="county" onchange="this.form.submit()" > <option>--Select a County--</option> <option value="Avon">Avon

在我的网站上我有一个县的下拉列表

<form method="post" action="/people.php" >
            <select name="county" onchange="this.form.submit()" >
                <option>--Select a County--</option>
                <option value="Avon">Avon</option>
                <option value="Bedfordshire">Bedfordshire</option>
                <option value="Berkshire">Berkshire</option>
            </select>
</form>
我想使用URL重写将县包含在我的URL中,因此当您在选择县后转到页面时,它不会显示为

'www.mysite.com/people.php'
但表现为

'www.mysite.com/people-in-avon'
我仍然是PHP的新手,但如果我想这样做,我是否需要使用GET方法,将我的数据发布到一个PHP页面,然后重定向到people.PHP?在PHP中,将查询放在页面上是一种不好的做法吗

我希望这有意义

用这个

<form method="post" action="/people.php" >
            <select name="county" id="selectform" >
                <option>--Select a County--</option>
                <option value="Avon">Avon</option>
                <option value="Bedfordshire">Bedfordshire</option>
                <option value="Berkshire">Berkshire</option>
            </select>
</form>
people.php中

$value=explode("-",$_GET['option']);
$newvalue=$value[2];
用这个

<form method="post" action="/people.php" >
            <select name="county" id="selectform" >
                <option>--Select a County--</option>
                <option value="Avon">Avon</option>
                <option value="Bedfordshire">Bedfordshire</option>
                <option value="Berkshire">Berkshire</option>
            </select>
</form>
people.php中

$value=explode("-",$_GET['option']);
$newvalue=$value[2];

您首先需要使用带有一些基本重定向的.htaccess,以便能够使用-[country]URL中的用户

RewriteEngine on
RewriteRule ^people-in-(.*) /people.php?county=$1 [L]
在您的people.php中:

<?php

// you county is set in GET via the .htaccess
$county = $_GET['county'];

// database query
$sth = $conn->prepare("SELECT * FROM directory WHERE user_active != '' AND County = :county");
$sth->execute(array(':county' => $county));

?>
向全县展示:
// you county_id is set in GET via the .htaccess
$county_id = $_GET['county_id'];
// to redirect
$county_id = $_POST['county_id'];

// fetch the county by id
// BASIC string cleaning
$county = str_replace(' ', '-', $county);

$url = '/people-in-' . $county . '-' . $county_id;

// redirect
header('Location:' . $url);
前往该县的路线:
// you county_id is set in GET via the .htaccess
$county_id = $_GET['county_id'];
// to redirect
$county_id = $_POST['county_id'];

// fetch the county by id
// BASIC string cleaning
$county = str_replace(' ', '-', $county);

$url = '/people-in-' . $county . '-' . $county_id;

// redirect
header('Location:' . $url);

您首先需要使用带有一些基本重定向的.htaccess,以便能够使用-[country]URL中的用户

RewriteEngine on
RewriteRule ^people-in-(.*) /people.php?county=$1 [L]
在您的people.php中:

<?php

// you county is set in GET via the .htaccess
$county = $_GET['county'];

// database query
$sth = $conn->prepare("SELECT * FROM directory WHERE user_active != '' AND County = :county");
$sth->execute(array(':county' => $county));

?>
向全县展示:
// you county_id is set in GET via the .htaccess
$county_id = $_GET['county_id'];
// to redirect
$county_id = $_POST['county_id'];

// fetch the county by id
// BASIC string cleaning
$county = str_replace(' ', '-', $county);

$url = '/people-in-' . $county . '-' . $county_id;

// redirect
header('Location:' . $url);
前往该县的路线:
// you county_id is set in GET via the .htaccess
$county_id = $_GET['county_id'];
// to redirect
$county_id = $_POST['county_id'];

// fetch the county by id
// BASIC string cleaning
$county = str_replace(' ', '-', $county);

$url = '/people-in-' . $county . '-' . $county_id;

// redirect
header('Location:' . $url);

我不认为你的答案是显而易见的OP重定向需要发生后提交。即帖子形式
action=“/\u people.php”
\u people.php
应该包括重定向。我在@DannyHearnah上找到了它,不过谢谢你的提醒!但是我有一个问题$url='/在-'中缺少人员$县如果这个县是双重封锁的,比如说“东苏塞克斯”,它不是用破折号分开的,你知道这是怎么做到的吗?我通常使用Toasciian DunderScore方法来清理我的字符串。这样,“东苏塞克斯”就变成了“东苏塞克斯的人”。结果将是检索县的工作更加困难(因为字符串已更改),现在的技术是将id添加到url(更快/更容易,但并不总是很漂亮)。请看我的编辑。我不认为你的答案是显而易见的OP,重定向需要在提交后发生。即帖子形式
action=“/\u people.php”
\u people.php
应该包括重定向。我在@DannyHearnah上找到了它,不过谢谢你的提醒!但是我有一个问题$url='/在-'中缺少人员$县如果这个县是双重封锁的,比如说“东苏塞克斯”,它不是用破折号分开的,你知道这是怎么做到的吗?我通常使用Toasciian DunderScore方法来清理我的字符串。这样,“东苏塞克斯”就变成了“东苏塞克斯的人”。结果将是检索县的工作更加困难(因为字符串已更改),现在的技术是将id添加到url(更快/更容易,但并不总是很漂亮)。请看我的编辑。