Я пытаюсь переместить веб-сайт PHP с одного хоста (Avlux, который закрывается) на другой (DreamHost). У меня проблемы с кодом, который генерирует билеты событий. На данный момент я запускаю систему на WampServer, используя код Visual Studio для редактирования программ.
Это html-код ссылки «Распечатать» билет:
href = "/tickets/tickets/<?=$o->id?>/?access_token=<?=$o->access_token()?>"
И это функция:
public function access_token() {
return base64_encode($this->id + 'ClearSight Studio');
}
Проблема: На старом хосте билет генерируется. base64_encode создает набор символов, например: NjA4NTQ, и печатает билет. На новом хосте гиперссылка не создается и программа завершается.
Вопрос: Что означает знак вопроса в «/?access_token»?
Что я пробовал: Я попытался изолировать код, следующий за билетами/билетами, и запустить его автономно, но, похоже, я не могу сделать это снова, не создавая ошибку, которая, похоже, испортит всю программу в коде Visual Studio.
$o->id — целое число. Когда мне удалось запустить автономную функцию access_token, она не смогла объединить целое число со строкой. Поэтому я преобразовал его в строку $str_id и заменил id?> на
🤔 А знаете ли вы, что...
С PHP можно легко интегрировать с другими технологиями, такими как JavaScript и HTML.
Этот
href = "/tickets/tickets/<?=$o->id?>/?access_token=<?=$o->
Означает href
, который включает в себя /tickets/tickets/, за которым следует любое значение (предположительно числовое), которое имеет $o->id
, за которым следует /?, заканчивая эффективную часть URL-адреса, которая указывает, куда отправлять запрос, а ?
здесь указывает, что строка запроса придет, где у вас будут пары key=value
, разделенные &
амперсандами. Итак, access_token
является частью строки запроса и представляет собой параметр GET (к которому вы сможете получить доступ через $_GET['access_token'])
в вашем PHP-коде), и его значением будет то, что вы описываете, предположительно $o->access_token
или что-то в этом роде. Ваш код не работает из-за отсутствия надлежащего вложения для вашего <?
, который представляет собой синтаксис, позволяющий передать инициативу PHP по вводу чего-либо в шаблон, поскольку PHP — это язык шаблонов. Итак, вам нужно будет выяснить, что такое $o
, и исправить приведенный выше код примерно так:
href = "/tickets/tickets/<?=$o->id?>/?access_token=<?=$o->access_token?>
этот код:
base64_encode($this->id + 'ClearSight Studio');
приводит к ошибке:
Предупреждение PHP: Uncaught TypeError: Неподдерживаемые типы операндов: строка + int в оболочке php
вместо этого, чтобы объединить строку с целым числом, напишите:
base64_encode($this->id . 'ClearSight Studio');
Кажется, вы не смогли увидеть сообщение об ошибке. В вашем php.ini
установите:
display_errors = On
... чтобы видеть предупреждения и ошибки в реальном времени во время разработки. Обязательно удалите этот параметр для производства.