2014-02-10 47 views
-2

我正在註冊會員/加入表單。表單數據被提交到另一個頁面,名爲join.php,按提交按鈕我收到內部服務器錯誤消息。任何人都可以幫助我找到編碼中的原因/錯誤嗎?雖然數據已成功輸入到數據庫中。爲什麼會出現內部服務器錯誤?

<?php 
    // file name : join.php 

    $con = mysqli_connect("$DBHOST", "$DBUSER", "$DBPASS","$DBNAME"); 
    // Check connection 
    if (mysqli_connect_errno($con)) 
    { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 
    $name = $_POST['name']; 
    $phone = $_POST['phone']; 
    $email = $_POST['email']; 
    $city = $_POST['city']; 
    $state = $_POST['state']; 
    $ip = $_SERVER['REMOTE_ADDR']; 

    $name = mysqli_real_escape_string($con,$name); 
    $email = mysqli_real_escape_string($con,$email); 
    $phone = mysqli_real_escape_string($con,$phone); 
    $city = mysqli_real_escape_string($con,$city); 
    $state = mysqli_real_escape_string($con,$state); 

    $check = "SELECT COUNT(*) FROM `members` WHERE phone=".$phone." 
    OR email=".$email." Limit 1"; 
    if (mysqli_query($con,$check)>=1){ 
    echo ("The phone number <strong>".$phone."</strong> or email <strong> 
    ".$email." </strong> address is already registered with us."); 
    }else{ 
    $query = mysqli_query($con,"INSERT INTO `members` 
     (`name`,`email`, `phone`, `city`, `state`,`ip`, `regdate`)  
    VALUES('".$name."','".$email."','".$phone."','".$city."', 
      '".$state."','".$ip."', NOW(''))") 
    or die("MYSQL ERROR :".mysqli_error($con)); 

    /* PREPARE MESSAGE FOR EMAIL TO NEW MEMBER */ 
    header("Refresh=07;URL=./index.php"); 


    $headers4 = "<[email protected]>"; 
    $headers = "Reply-to: $headers4\n"; 
    $headers .= "From: $headers4\n"; 
    $headers .= "Errors-to: $headers4\n"; 
    $headers .= "Content-Type: text/html; charset=utf-8\n"; 

    $message = "<br>Dear ".$name." <br><br>"; 
    $message .= "Thanks for joining.<br> Your details are"; 
    $message .= "<br>Name - ".$name." <br>Mobile No. - ".$phone."<br>"; 
    $message .= "Email - ".$email."<br>City, State - ".$city.",".$state."<br>"; 
    $message .= "<br>Regards,<br>Name"; 

    mail("".$email."", "Thanks for Joining", "".$message."", "".$headers.""); 


    echo "<p>Congratulations!<br>IP-".$ip."<br>Your data has been added 
    into our membership database.<br><strong>Thank you for joining.</strong>"; 

    } 

    mysqli_close($con); 
    ?> 
+0

1 ='$ con = mysqli_connect($ DBHOST,$ DBUSER,$ DBPASS,$ DBNAME);' 也可以從哪裏獲取值? – jycr753

+0

你的服務器的錯誤日誌說什麼? – Quentin

+0

set ini_set(「display_errors」,1);在你的文件中並檢查它。 – jeeva

回答

0

這麼多的錯誤..改進你的代碼風格,以提高其質量。

開始通過固定的報價,非常missleading:

mail("".$email."", "Thanks for Joining", "".$message."", "".$headers.""); 

應該

mail($email, 'Thanks for Joining', $message, $headers); 

$check = "SELECT COUNT(*) FROM `members` WHERE phone=".$phone." 
OR email=".$email." Limit 1"; 

有缺失報價也一樣,我不thinkg電子郵件和電話都是數字。

$check = "SELECT COUNT(*) FROM `members` WHERE phone='".$phone."' 
OR email='".$email."' Limit 1"; 

沒有標題叫刷新,這是有點的Javascript的風格,但你需要HTTP:

header("Refresh=07;URL=./index.php"); 

修正:

header("Location: index.php"); 

最後啓用錯誤報告,看看什麼是真正的錯。

+0

好的我在這裏實現了由專家建議的更正,現在我得到了這個錯誤:注意:類mysqli_result的對象無法轉換爲int在/行35上的/home/public_html/join.php .. if(mysqli_query($ con, $ check)> = 1){ 電話號碼1234567890或電子郵件[email protected]地址已經在我們註冊。數據沒有被添加到mysql數據庫表中。 – user2039716

+1

哦! @DanFromGermany有一個錯誤的建議,用於添加行中的行號,其中='「。$ phone。」',但所有其他建議都有幫助。我刪除了額外的報價,現在它工作正常。感謝大家。 – user2039716

相關問題