Разрешить перенаправление на URL не в htdocs (XAMPP) - PullRequest
1 голос
/ 20 апреля 2020

действительно изо всех сил пытается разрешить моей форме разрешить пользователям доступ к URL в зависимости от того, какую радио-кнопку они выбирают. Когда я заполняю форму на моем сервере, он выполняет перенаправление на выделенный URL-адрес, как и ожидалось, однако он говорит, что объект не может быть найден, а также говорит: «Запрошенный URL-адрес не найден на этом сервере». Я не совсем понимаю, как сохранить файл в папке htdocs для URL-адреса веб-сайта. Параметры веб-сайта, на которые пользователь может быть перенаправлен, следующие:

http://www.nisra.gov.uk/demography/default.asp28.htm

http://www.nrscotland.gov.uk/statistics-and-data/statistics/statistics-by-theme/vital-events/names/babies-first-names

http://www.ons.gov.uk/ons/rel/vsob1/baby-names--england-and-wales/index.html

Вот что у меня есть для моего кода:

PHP:

<?php

if (isset($_GET['location']))
  {

$location = $_GET["location"];

if ($location === "S"){

header("Location:  http://www.nrscotland.gov.uk/statistics-and-data/statistics/statistics-by-theme/vital-events/names/babies-first-names");

}   else if ($location === "EW")

{
header("Location: http://www.ons.gov.uk/ons/rel/vsob1/baby-names--england-and-wales/index.html");

}   else if ($location === "NI")

{
header("Location: http://www.nisra.gov.uk/demography/default.asp28.htm");

}

}

?> 

HTML:

<!DOCTYPE html>
<head>
  <title>Baby Name Popularity Tables</title>
</head>
<body>
<h1>Baby Name Popularity Tables</h1>
Please select either England and Wales, Scotland or Northern Ireland.
<form action="" method="get">
<table>
<tr> 
<td><input type="radio" name="location" value="EW"/></td>
<td>England &amp; Wales</td>
</tr>
<tr>
<td><input type="radio" name="location" value="S"/></td>
<td>Scotland</td>
</tr>
<tr>
<td><input type="radio" name="location" value="NI"/></td>
<td>Northern Ireland</td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="Get Baby Names"/></td>
</tr>
</table>
</form>     
</body>
</html>

Буду признателен за любую помощь.

1 Ответ

2 голосов
/ 20 апреля 2020

Хорошо, во-первых, вам следует перестроить свой код, чтобы быть более чистым и точным, для этого я сделал для вас, но постараюсь улучшить в следующий раз:)

redirectForm. php

<?php

$websites = [
    "S" => "http://www.nrscotland.gov.uk/statistics-and-data/statistics/statistics-by-theme/vital-events/names/babies-first-names",
    "EW" => "http://www.ons.gov.uk/ons/rel/vsob1/baby-names--england-and-wales/index.html",
    "NI" => "http://www.nisra.gov.uk/demography/default.asp28.htm",
    // "ANOTHER_PLACE" => "WEBSITE",
    // "ANOTHER_PLACE" => "WEBSITE",
];

$location = isset($_GET['location']) ? $_GET['location'] : false;

foreach ($websites as $key => $value) {
    if ($key === $location) {
        header("Location: ".$value);
    }
}

HTML (обратите внимание, что я сделал с действием формы, строка 8):

<!DOCTYPE html>
<head>
  <title>Baby Name Popularity Tables</title>
</head>
<body>
<h1>Baby Name Popularity Tables</h1>
Please select either England and Wales, Scotland or Northern Ireland.
<form action="redirectForm.php" method="get">
<table>
<tr> 
<td><input type="radio" name="location" value="EW"/></td>
<td>England &amp; Wales</td>
</tr>
<tr>
<td><input type="radio" name="location" value="S"/></td>
<td>Scotland</td>
</tr>
<tr>
<td><input type="radio" name="location" value="NI"/></td>
<td>Northern Ireland</td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="Get Baby Names"/></td>
</tr>
</table>
</form>     
</body>
</html>



Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...