2013-12-11 111 views
0

嘿那裏我做了一個pdo註冊表系統 - 但我用了三個類代替 - 但我沒有得到它將電子郵件/密碼插入註冊表 - 它只是進入一個空白屏幕,沒有輸入。需要數據庫輸入幫助

因此,這裏有3類代碼如下:

connect.php

<?php 
class Connect{ 
    public function dbConnex(){ 
    return new PDO("mysql:host=localhost; dbname=demodatabase", "root","password"); 
    } 
} 
?> 

的header.php

<?php 
include_once('Connect.php'); 
class Header{ 
    public $odb; 

    public function __construct(){ 
    $this->odb = new Connect(); 
    $this->odb = $this->db->dbConnex(); 
    } 

    public function Register($first_name, $last_name, $email_id, $password){ 
    if(isset($_POST['first_name'])){ 
     $first_name = $_POST['first_name']; 
     $last_name = $_POST['last_name']; 
     $email_id = $_POST['email_id']; 
     $password = $_POST['password']; 
     $q = "INSERT INTO demoregi(first_name, last_name, email_id, password) VALUES(:first_name, :last_name, :email_id, :password);"; 
     $query = $odb->prepare($q); 
     $results = $query->execute(array(
      ":first_name" => $first_name, 
      ":last_name" => $last_name, 
      ":email_id" => $email_id, 
      ":password" => $password 
    )); 
    } 
    } 
} 
?> 

的index.php

<?php 
include_once('Header.php'); 
if(isset($_POST['submit'])){ 
    $first_name= $_POST['first_name']; 
    $last_name = $_POST['last_name']; 
    $email_id = $_POST['email_id']; 
    $password = $_POST['password']; 
    $object = new Header(); 
    $object -> Register($first_name, $last_name,$email_id,$password); 
} 
?> 

<html> 
<head> 
</head> 
<body> 
    <form method="post" action="header.php"> 
     <br>First Name: <input type="text" id="first_name" name="first_name"/></br> 
     <br>Last Name: <input type="text" id= "last_name" name="last_name"/></br> 
     <br>Email: <input type="text" id="email_id" name="email_id"/></br> 
     <br>Password: <input type="password" id= "password" name="password"/></br> 
     <input type="submit" name="submit" value="Register"/> 
    </form> 
</body> 
</html> 

那麼我怎樣才能把它輸入數據庫?我得到沒有錯誤信息 - 只是一個空白的屏幕,註冊按鈕重定向我。

該問題的簡單解決方案。想要一些幫助!太感謝了!!!

+0

您需要使用'$查詢= $這個 - > odb->準備($ Q);',否則你的數據庫的處理超出範圍。 – andrewsi

回答

0

有幾件事要指出。

  1. 表單重定向你的頁面的header.php當你提交表單代碼是對的index.php(我相信這裏是主要的問題。然後,你最終可能會與錯誤)
  2. 在你的類標題中。函數Register有$ first_name,$ last_name,$ email_id,$ password傳遞給它們,那麼爲什麼當傳入類時將$ first_name的值重置爲$ _POST ['first_name']?
+0

嘗試和捕獲沒有關係拋出異常,介意你 –

+0

@YourCommonSense編輯 –

+0

它並不總是包含錯誤信息 –

0

I看到很多大錯誤。

1st。在你的index.php你正在做的:

$first_name= $_POST['first_name']; 
$last_name = $_POST['last_name']; 
$email_id = $_POST['email_id']; 
$password = $_POST['password']; 

$object = new Header(); 
$object -> Register($first_name, $last_name,$email_id,$password); 

然後你再重來一次的話:

public function Register($first_name, $last_name, $email_id, $password){ 
    if(isset($_POST['first_name'])){ 

    first_name = $_POST['first_name']; 
    $last_name = $_POST['last_name']; 
    $email_id = $_POST['email_id']; 
    $password = $_POST['password']; 
    // other stuff 

你不應該依賴於$ _POST或$ _GET在你的功能你 1.已經在參數中詢問你需要什麼。 2.對你的功能說謊真正需要什麼。永遠不要依靠超級全球來完成你的功能。

其次我建議你用PDO::bindParam來綁定你的值。

然後,你應該做的是告訴我們你得到了什麼錯誤!它可能是錯誤的列名到簡單的錯字。要做到這一點嗎:

var_dump($odb->errorInfo());