За последние 24 часа нас посетили 32782 программиста и 1821 робот. Сейчас ищет 1741 программист ...

Location: header

Тема в разделе "PHP для новичков", создана пользователем Виктор К., 8 июн 2016.

Метки:
  1. Виктор К.

    Виктор К. Новичок

    С нами с:
    1 апр 2016
    Сообщения:
    139
    Симпатии:
    6
    Адрес:
    Украина
    Здраствуйте. Возник вопрос: можно ли в эту функцию подставлять переменные?
    Код (Text):
    1.  
    2. <?php
    3.     header("Location: http://site.com/materials/'.$Tag0['alias'].'/id/'.$Row['id'].'");
    4.     exit;
    5. ?>
    Или это невозможно? Не могу понять почему строчка с адресом с переменными выдает ошибку 500.
     
    #1 Виктор К., 8 июн 2016
    Последнее редактирование: 8 июн 2016
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    Вообще конечно можно в локейшн подставить составной адрес. Но в данном случае 500я ошибка говорит о том, что ты не знаешь как работать со строками в целом, а не с локейшнами в частности. Значения переменных в строку с двойными кавычками поставляется не так. Зачем там одинарные кавычки? Причем одинарные кавычки для "выхода" из режима строки (и входа обратно) и вдруг рядом же - для ключей массива. Завершать-то строку надо той же кавычкой, которой она была начата. Двойной то бишь. "Выходить" из строки для подстановки значения из массива - совсем не обязательно. Достаточно обернуть адрес ячейки в фигурные скобки. Для наглядности вообще лучше все встроенные переменные оборачивать в фигурные скобки.

    PHP:
    1. header("Location: http://site.com/materials/{$Tag0['alias']}/id/{$Row['id']}");
    2. header("Location: http://site.com/materials/".$Tag0['alias']."/id/".$Row['id']);
     
    Виктор К. нравится это.