mysql — PHP: ссылка на внешний сайт внутри оператора if

Я абсолютно новичок в 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 является ли поле пустым И ссылка не извлекает данные из таблицы.

Я действительно в растерянности относительно того, что я делаю неправильно.

1

Решение

Вам нужно добавить условие в ваш оператор if, чтобы увидеть, есть ли что-то в $ data [‘blog’], иначе ссылка всегда будет загружаться независимо от того, что находится в $ data [‘blog’]

Например что-то вроде:

if((!isset($blog)) && ($data['blog'] !== ''))

Очевидно, что тестирование на » может не сработать, поэтому вам, возможно, придется настроить тест на что-то вроде », null или что-то подобное.

1

Другие решения

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 != '')

вместо.

0

Попробуй это

<?php
if ($blog != "") {
echo 'Visit my blog <a href="'.$blog.'" target="_blank">here</a>';
}
?>
0
По вопросам рекламы [email protected]