Причина, по которой ваш текущий скрипт не работает, заключается в том, что PHP обрабатывается при загрузке страницы, а не после отправки формы. При первом обращении go к этой странице $_POST['language']
не устанавливается, поэтому для действия формы устанавливается значение https://.wikipedia.org/w/index.php
. Затем, если вы отправите форму (get
), вы получите https://.wikipedia.org/w/index.php?search=cat&language=en.
Вместо этого вам нужно будет обработать отправку формы на своей странице, а затем перенаправить в Википедию. По умолчанию, когда вы отправляете form
(с методом по умолчанию get ), вы попадаете на страницу типа /index.php?search=cat&language=en
. Так что теперь вы можете прочитать эти $_GET
параметры, чтобы создать URL для перенаправления.
<?php
if (isset($_GET) && count($_GET)) {
$language = $_GET["language"];
$search = $_GET["search"];
$action = "https://".$language.".wikipedia.org/w/index.php?search=".$search;
header('Location: '.$action);
}
?>
<form>
<input name="search" type="text"/>
<select name="language">
<option value="en">English</option>
<option value="fr">French</option>
</select>
</form>
Другой способ - установить <form method="post">
, а затем в PHP использовать $_POST
, например:
if ($_POST) {
$language = $_POST["language"];
$search = $_POST["search"];
$action = "https://".$language.".wikipedia.org/w/index.php?search=".$search;
header('Location: '.$action);
}