2012-01-28 235 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