1

私は PHP にまったく慣れていないので、これが非常に単純に思えたら申し訳ありません。このサイトを読んで他の問題について多くの助けを得て、これを解決しようとするさまざまな例を試しましたが、まだ解決できませんでした.

個人のブログ (外部サイト) へのリンクを含めるユーザーもいれば、含めないユーザーもいるサイトがあります。というラベルの付いた mySQL テーブルにフィールドを設定しましたblog。フィールド内のデータは、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、フィールドが空白であるかどうか、およびリンクがテーブルからデータを取得していないかどうかを表示します。

私は自分が間違っていることについて本当に途方に暮れています。

4

3 に答える 3

1

$data['blog'] に何かがあるかどうかを確認するには、if ステートメントに条件を追加する必要があります。

たとえば、次のようなものです。

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

明らかに、'' のテストはうまくいかないかもしれないので、テストを ' ' や null などに微調整する必要があるかもしれません。

于 2015-08-13T17:22:04.107 に答える
0

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 EVERに値が割り当てられていれば、それはisset()true になります。あなたはおそらくしたいです

if ($blog != '')

代わりは。

于 2015-08-13T17:19:02.823 に答える
0

これを試して

<?php
    if ($blog != "") {
        echo 'Visit my blog <a href="'.$blog.'" target="_blank">here</a>';
    }
?>
于 2015-08-13T17:21:11.947 に答える