Я абсолютно новичок в PHP, поэтому я прошу прощения, если это кажется довольно простым. Прочитав этот сайт, я получил огромную помощь по другим проблемам, и я пробовал так много разных примеров попыток решить эту проблему, но пока не смог решить.
У меня есть сайт, на котором некоторые пользователи будут размещать ссылку на свой личный блог (внешний сайт), а другие — нет. Я установил поле в таблице MySQL с пометкой blog
, Данные внутри поля представляют собой полный URL-адрес для включения http://
,
Я хочу отобразить сообщение как: Visit my blog here
, С here
быть ссылкой на сайт блога пользователей.
У меня есть следующий код
<?php
if (!isset ($blog))
{
?>
Visit my blog <a href="<?=$data['blog'];?>" target="_blank">here</a>
<?php
}
?>
Ссылка работает правильно, однако, если поле данных пустое, оно все равно отображается, и ссылка на ту же страницу, на которой находится код.
Я пробовал этот код:
<?php
if (!isset ($blog))
{
echo "Visit my blog <a href=\" . $blog .\" target=\"_blank\">here</a>." ;
}
?>
Это отображает echo
является ли поле пустым И ссылка не извлекает данные из таблицы.
Я действительно в растерянности относительно того, что я делаю неправильно.
Вам нужно добавить условие в ваш оператор if, чтобы увидеть, есть ли что-то в $ data [‘blog’], иначе ссылка всегда будет загружаться независимо от того, что находится в $ data [‘blog’]
Например что-то вроде:
if((!isset($blog)) && ($data['blog'] !== ''))
Очевидно, что тестирование на » может не сработать, поэтому вам, возможно, придется настроить тест на что-то вроде », null или что-то подобное.
isset()
проверяет, существует ли переменная вообще, и игнорирует значение в переменной, например,
<?php
var_dump(isset($foo)); // false, $foo was never created
$foo = null;
var_dump(isset($foo)); // true - $foo exists, even though it's been nulled
так что если ваш $blog
КОГДА-ЛИБО было присвоено значение, это будет isset()
как правда. Вы, вероятно, хотите
if ($blog != '')
вместо.
Попробуй это
<?php
if ($blog != "") {
echo 'Visit my blog <a href="'.$blog.'" target="_blank">here</a>';
}
?>