Передайте переменную на следующую страницу PHP - PullRequest
0 голосов
/ 05 мая 2018

Я пытаюсь передать переменную на следующую страницу через сеанс с использованием PHP. код ниже сохранить последнее значение. Я хочу передать «имя», когда пользователь нажимает на ссылку «Подробнее», там я буду отображать больше информации о кликнувшем имени.

<?php while ($r = $q->fetch()):
 $city=$r['city'];
 $phone=$r['phone'];
 $name=$r['name'];
 if (session_status() == PHP_SESSION_NONE) {
   session_start();
  }
 $_SESSION['name'] = $name;
 $_SESSION['phone'] = $phone;
  $_SESSION['city'] = $city;

 ?>
        <tr>
       <td><?php echo (++$i); ?></td>
            <td><?php echo htmlspecialchars($name) ?></td>
            <td><?php echo htmlspecialchars($phone); ?></td>
            <td><?php echo htmlspecialchars($city); ?></td>
      <td> <a href="more_info.php" >More Info</a></td>
        </tr>
    <?php endwhile; ?> 

1 Ответ

0 голосов
/ 05 мая 2018

сначала вам нужно сделать session_start() верхнюю часть скрипта. И всегда помните, $_SESSION - это суперглобальная переменная. Здесь нет необходимости передавать переменную сеанса. Просто вы можете получить доступ вот так.

echo $_SESSION['name'];

Примечание: убедитесь, что session_start() должно быть в верхней части скрипта.

если вы действительно хотите передать переменную одну страницу на другую page.do что-то вроде ниже

<td> <a href="more_info.php?name=<?php echo $_SESSION['name']; ?>" >More Info</a></td> 

И ваш more_info.php.

if (isset($_GET['name'])) {
    $name=$_GET['name'];
    echo $name;
}

данный ответ мог бы решить проблему OP, но это нехорошая привычка использовать сессию в цикле while. Потому что вы пытаетесь вставить имя в сессию, но имя может быть другим. Я рекомендую вам попробовать что-то подобное.

Удалить:

if (session_status() == PHP_SESSION_NONE) {
   session_start();
  }
 $_SESSION['name'] = $name;
 $_SESSION['phone'] = $phone;
  $_SESSION['city'] = $city;

И передайте переменную следующим образом.

<td> <a href="more_info.php?name=<?php echo $name; ?>" >More Info</a></td> 
...