2014-02-10 3 views
-2

Я работаю над формой регистрации членства/присоединения. Данные формы передаются на другую страницу с именем join.php при нажатии кнопки отправки. Я получаю сообщение Internal Server Error. Может ли кто-нибудь помочь мне найти причину/ошибку в моем кодировании? Хотя данные успешно введены в базу данных.Почему возникает внутренняя ошибка сервера?

<?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

набор 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"; 

Там нет заголовка называется Refresh, это своего рода Javascript стиль, но вам нужно HTTP:

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

Исправлено:

header("Location: index.php"); 

Наконец включить отчеты об ошибках, чтобы увидеть, что на самом деле не так ,

+0

ok Я внедрил исправления, предлагаемые экспертами здесь, и теперь получаю эту ошибку: Примечание: объект класса mysqli_result не может быть преобразован в int в /home/public_html/join.php в строке 35 .. if (mysqli_query ($ con, $ check)> = 1) { Номер телефона 1234567890 или адрес электронной почты [email protected] уже зарегистрирован у нас. Данные не добавляются в таблицу mysql db. – user2039716

+1

О! было неправильное предложение @DanFromGermany добавить цитаты в строке где = '". $ phone."', но все другие предложения были полезными. Я удалил дополнительную цитату, и теперь она работает нормально. Всем спасибо. – user2039716

Смежные вопросы