PHP не будет помещать переменную в ссылку - PullRequest
0 голосов
/ 03 ноября 2018

В начале моего сайта я спрашиваю имя. Затем я передаю имя на домашнюю страницу с такой же переменной $name. На своей домашней странице они могут нажать кнопку «что-то», чтобы перенаправить их на веб-страницу чего-то С переменной $name в URL. На домашней странице он отображает значение переменной $name в echo "<h1>$name's Profile</h1>";, но по какой-то причине не определено, когда я использую его по ссылке. Вот код:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Profile</title>
</head>
<body>
<center>
<?php
$name = $_GET['name'];
echo "<h1>$name's Profile</h1>";
echo "<hr>";
echo "<br>";
echo "<h3>Choose an option</h3>";
if(isset($_GET['btn'])) {
    $name = $_GET['name'];
    $loc = 'something.php?name=' . $name;
    header("Location: " . $loc);
    exit();
}

?>
<input type="Submit" value="Something" name="btn">
</center>
</body>
</html>

Ответы [ 2 ]

0 голосов
/ 03 ноября 2018

Подписка должна работать

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Profile</title>
</head>
<body>
<center>
<?php
//First check if $_GET['name'] is set
if(isset($_GET['name'])){

  $name = $_GET['name'];
  //So here concatinate the strings and variables properly as following
  echo "<h1>".$name."'s Profile</h1>".
       "<hr>".
       "<br>".
       "<h3>Choose an option</h3>";

  if(isset($_GET['btn'])) {
      $name = $_GET['name'];
      $loc = "something.php?name=" . $name;
      header("Location: " . $loc);
      die();
  }else{
    //There was no btn parameter in the url means $_GET['btn'] isn't set notify the user
    echo "Can't Redirect The Page\nReason: Details Missing...";
  }
}else{
  //There was no name parameter in the url means $_GET['name'] isn't set notify the user
    echo "Can't Process The Request\nReason: Details Missing...";
}
?>
<input type="Submit" value="Something" name="btn">
</center>
</body>
</html>
0 голосов
/ 03 ноября 2018

Код предполагает, что у вас есть переменная с именем $ name, а не $ name.

Закройте "и сделайте это:

echo "<h1>" . $name . "'s Profile</h1>";

или используйте {} в строке как:

echo "<h1>{$name}'s Profile</h1>";
...