2016-10-22 7 views
1

私はウェブサイトの建物に大きなではないよ。しかし私は個人的なウェブサイトのための私の友人の1つのソースを持っていると私は一緒にすべてを入れようとしていると(Register.Php)ファイルで私はそれが問題がある( "致命的なエラー:このため私のコードは)「ヌルに()をされて準備...致命的なエラー:null(Register.PHP)のメンバー関数prepare()を呼び出す

<?php 
if (isset($_POST['registerBtn'])) 
{ 

    if (empty($_POST['password'])) 
    { 
    echo '<div class="alert alert-error"><center><p><font  color=\'black\'>Please Choose A Password</font></p></center></div>'; 
    }else 

    $secure = isset($_POST['secure']) ? strtolower($_POST['Username']) : ''; 
    if ($secure == $_SESSION['username']) { 
    unset($_SESSION['username']); 


    $username = $_POST['username']; 
    $password = $_POST['password']; 
    $email = $_POST['email']; 
    $checkUsername = $odb -> prepare("SELECT COUNT(*) FROM `users` WHERE  `username` = :username"); 
    $checkUsername -> execute(array(':username' => $username)); 
    $countUsername = $checkUsername -> fetchColumn(0); 
    $checkEmail = $odb -> prepare("SELECT COUNT(*) FROM `users` WHERE  `email` = :email"); 
     $checkEmail -> execute(array(':email' => $email)); 
     $countEmail = $checkEmail -> fetchColumn(0); 
     if ($countEmail > 0) 
     { 
      echo '<div class="alert alert-error"><p><font color=\'black\'> <center>Email Already In Use</center></font></p></div>'; 
     } 
     else 
    { 
    if (empty($username) || empty($password) || empty($email)) 
    { 
      echo '<div class="alert alert-error"><center><p><font color=\'black\'>Fill In All Fields</font></p></center></div>'; 
    } 
    else 
    { 
     if (!ctype_alnum($username) || strlen($username) < 4 ||  strlen($username) > 15) 
     { 
echo '<div class="alert alert-error"><center><p><font color=\'black\'>Fill  in all fields!</font></p></center></div>'; 
echo '<div class="alert alert-error"><center><p><font color=\'black\'>Please  choose a username between 4-5 characters.</font></p></center></div>'; 
     } 
     else 
     { 
      if (!($countUsername == 0)) 
      { 
echo '<div class="alert alert-error"><center><p><font  color=\'black\'>Username Taken.</font></p></center></div>'; 
      } 
      else 
      { 
       if (!filter_var($email, FILTER_VALIDATE_EMAIL)) 
       { 
echo '<div class="alert alert-error"><center><p><font  color=\'black\'>Invalid email address.</font></p></center></div>'; 
       } 
       else 
       { 
         $insertUser = $odb -> prepare("INSERT INTO `users`  VALUES(NULL, :username, :password, :email, 0, 0, 0, 0)"); 
         $insertUser -> execute(array(':username' =>  $username, ':password' => SHA1($password), ':email' => $email)); 
$ip = getRealIpAddr(); 
$SQL = $odb -> prepare('INSERT INTO `registerlogs` VALUES(:username, :ip,  UNIX_TIMESTAMP(), "")'); 
$SQL -> execute(array(':ip' => $ip, ':username' => $username)); 

    //change this to your email. 
$name3 = $odb -> query("SELECT `sitename` FROM `SiteConfig` LIMIT 1") ->  fetchColumn(0); 
$name2 = $odb -> query("SELECT `header` FROM `forgotconfig` LIMIT 1") ->  fetchColumn(0); 
    $subject1 = $odb -> query("SELECT `Subject` FROM `forgotconfig` LIMIT 1") -> fetchColumn(0); 
$subject = "Welcome To $name2"; 
$name1 = $odb -> query("SELECT `email` FROM `forgotconfig` LIMIT 1") ->  fetchColumn(0); 


    $to = "[email protected]"; 
    $from = $odb -> query("SELECT `email` FROM `forgotconfig` LIMIT 1") ->  fetchColumn(0); 

    $headers = "From: " . strip_tags($from) . "\r\n"; 
    $headers .= "Reply-To: ". strip_tags($from) . "\r\n"; 
    $headers .= "CC: $name1\r\n"; 
    $headers .= "MIME-Version: 1.0\r\n"; 
    $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n"; 

$message = '<html><body>'; 

$message .= '<table width="100%"; rules="all" style="border:1px solid #3A5896;" cellpadding="10">'; 

$message .= "<tr><td><img src='/horizon.png' alt='Feive Stress' /></td></tr>"; 

$message .= "<tr><td colspan=2>Thank you for signing up with us. Your new  account has been setup and you can now login to our client area using the  details below. 
Your details are as follows: 
<br> 
<br> 
Username: $username 
<br> 
Email: $email 
<br> 
Password: ************* 
<br> 
<br> 
To login, visit $name3 
<br> 
<br> 
Thank you for choosing $name2! 
<br> 
<br> 
This is an automated response, please do not reply!</td></tr>"; 


$message .= "<tr><td colspan=2 font='colr:#999999;'><I>$name3<br>Registered  from IP: $ip</I></td></tr>"; 

$message .= "</table>"; 

$message .= "</body></html>"; 

    // now lets send the email. 
mail($email, $subject, $message, $headers); 


echo '<div class="alert alert-success"><center><p><font  color=\'black\'>Registered Successfully. Check Your Email Address.  Redirecting....</font></p></center></div><meta http-equiv="refresh"  content="3;url=login.php">'; 
} 
} 
} 
} 
} 
} 
} 
?> 
+0

を接続を作成する必要があり、ヌル

です。私はあなたがいくつかのインクルードタグを見逃していると思う –

答えて

0

$odbあなたはあなたの$のODBのvariabileがインスタンス化されていないデータベースに

$odb = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); 
+0

この質問と同じように愚かなので、私は何の間にコードの行を置くだろうか? – Feivism

+0

使い始める前に '$ odb - > prepare' – ashkufaraz

+0

これはどうですか? \t $ username = $ _POST ['username']; \t $ password = $ _POST ['password']; \t $ email = $ _POST ['email']; \t $ odb = new PDO( "mysql:host = $ localhost; dbname = $ Feives_Feives"、$ username、$ password); \t $ checkUsername = $ odb - > prepare( "SELECT COUNT(*)FROM'ユーザ 'WHERE' username' =:username '); \t $ checkUsername - > execute(array( ':username' => $ username)); \t $ countUsername = $ checkUsername - > fetchColumn(0);\t $ checkEmail = $ odb - > prepare( "SELECT COUNT(*)FROM – Feivism

関連する問題