PHP:链接到if语句中的外部站点

时间:2015-08-13 17:15:33

标签: php mysql hyperlink external-links

我是PHP的新手,所以如果这看起来非常简单,我会道歉。通过阅读本网站,我已经获得了很多关于其他问题的帮助,我已经尝试了很多尝试解决这个问题的不同例子,但是还是无法解决这个问题。

我有一个网站,某些用户将包含指向其个人博客(外部网站)的链接,而其他用户则不会。我在mySQL表中设置了一个标记为blog的字段。字段内的数据是一个完整的网址,其中包含http://

我想显示如下消息:Visit my blog herehere是指向用户博客网站的链接。

我有以下代码

<?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字段是否为空并且链接未从表中提取数据。

我真的不知道我做错了什么。

3 个答案:

答案 0 :(得分:1)

您需要在if语句中添加一个条件,以查看$ data [&#39; blog&#39;]中是否有任何内容,否则无论$ data [&#39]中的内容如何,​​该链接将始终加载;博客&#39;]

例如:

 Rails.application.routes.draw do

  root             'static_pages#home'

  get 'help'    => 'static_pages#help'
  get 'about'   => 'static_pages#about'
  get 'contact' => 'static_pages#contact'

  get  'signup' => 'users#new'

  get    'login'   => 'sessions#new'
  post   'login'   => 'sessions#create'
  delete 'logout'  => 'sessions#destroy'

  resources :users do
    resource :profile, only: [:show, :edit, :update ]
  end
end

显然,测试&#39;&#39;&#39;可能不适合你,所以你可能不得不将测试调整为类似于&#39; &#39;,null或其他一些。

答案 1 :(得分: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()为真。你可能想要

if ($blog != '')

代替。

答案 2 :(得分:0)

试试这个

<?php
    if ($blog != "") {
        echo 'Visit my blog <a href="'.$blog.'" target="_blank">here</a>';
    }
?>