2012-01-28 56 views
-1

我正在php中制作电子邮件脚本。会发生什么事是一个MySQL查询时,并在此输出存储在以下字符串:Php如果语句不按预期工作

$personal1 = $userinfo->salutation; 
$personal2 = $userinfo->surname; 
$business = $userinfo->businessname; 

接下来,我有一个if语句,此检查,看是否姓是空白的,如果是,它然后用名称替换salutation + surname。我遇到的问题是电子邮件不断发送与亲爱的,企业名称,即使姓氏字段不是空白,我不知道我在做什么,但它下面的代码做错了吗?

if ($personal2=="") { 
$name = $business; } 
else { 
$name = $personal1 . ' ' . $personal2;}; 

编辑>>>>>>>>>>

如果我附和了字符串的内容,我得到:

personal1 = Mr 
personal2 = Johnson 
business = Hat Trick Media 

编辑2 >>>>>>> 这是一些代码,然后传递到邮件程序。

<?php 
$cf_uid = $_GET['token']; 
$query = mysql_query("SELECT * FROM hqfjt_chronoforms_data_addupdatelead WHERE cf_uid = '$cf_uid'") or die(mysql_error()); 
$userinfo = mysql_fetch_object($query); 

$personal2 = $userinfo->surname; 
$personal1 = $userinfo->salutation; 
$business = $userinfo->businessname; 
?> 
<?php 
$result = mysql_query("SELECT * FROM hqfjt_chronoforms_data_addemailtemplate"); 

while ($row = mysql_fetch_object($result)) { 
    echo '<tr class="table-row">'; 

    echo '<th class="template-name">'; 
    echo '<div class="namerow">'; 
    $id = $row->cf_uid; 
    $form_id = $row->form_id; 
    $query = mysql_query("SELECT `$form_id` FROM email_history WHERE cf_id = '$user_id'") or die(mysql_error()); 
$datesent = mysql_fetch_object($query); 
$date = $datesent->$form_id; 

if ($personal2=="") { 
$name = $business; } 
else { 
$name = $personal1 . ' ' . $personal2;}; 
+0

可能有很多原因,只是因为你的信息所提供的不足以明确回答你的问题。 – 2012-01-28 22:43:05

+0

您是否倾销或回复了$ userinfo->姓氏以确保它包含您期望的内容? – j08691 2012-01-28 22:43:14

+0

向我们展示$ personal2变量的内容示例。确保从if语句之前获取它。 – 2012-01-28 22:43:20

回答

1

您的代码是否为有效声明?你的代码结构很糟糕。而不是...

if ($personal2=="") { 
$name = $business; } 
else { 
$name = $personal1 . ' ' . $personal2;}; 

使用

if ($personal2=="") { 
    $name = $business; 
} 
else { 
    $name = $personal1 . ' ' . $personal2; 
} 

你似乎有一个额外的;你不需要。

也似乎没有关闭在您发布的代码while循环...

+0

我知道我的编码不好,我只编写了3周,这就是为什么它有点粗略:-S – 2012-01-28 23:07:11

+0

while循环的关闭不包括在上面的代码中,但它在原来的,我只是意识到我错过了它。 – 2012-01-28 23:17:38

0

好吧,我发现了什么问题,$名字在会话从以前的网页来了,覆盖$这个页面上的名字,我现在已经设置它在它加载此页面之前销毁会话,它似乎已经排序它,感谢大家的帮助:-)

+0

而不是销毁会话,最好禁用register_globals。 – Arjan 2012-01-28 23:08:43

+0

注册全局变量已在我的服务器上关闭。 – 2012-01-28 23:16:24

+0

如果会话信息影响当前页面上的变量,那么我的猜测仍然是register_globals打开。你是否检查当前脚本中的状态? – Arjan 2012-01-28 23:28:09