2014-01-12 50 views
1

我一直在這裏搜索,Google在這裏搜索如何從一開始就將所有MYSQL腳本更改爲MYSQLI或PDO。事情是因爲某些原因,我無法理解,因爲我缺乏經驗,我不能做一個簡單的會話工作。這裏是我將開始做的事情,因爲我想學習新的MYSQLi:從mysql_到MySQLi或PDO的轉換

我選擇了註冊表單(我不會在公開場合使用它,我的網站只是爲了朋友而沒有更多的人選擇我會選擇誰和我籤時間了)

<?php 
/* instantiate our class, and select our database automatically */ 
$sql = mysqli('localhost','user','password','database'); 

/* 
let's assume we've just received a form submission. 
so we'll receive the information, and we'll escape it 
this step is not necessary, but why not. 
*/ 
$name = $_POST['name']; 
$age = $_POST['age']; 
$email = $_POST['email']; 

/* build the query, we'll use an insert this time */ 
$query = $sql->prepare("INSERT INTO `tablename` VALUES ('?','?','?');"); 

/* 
bind your parameters to your query 
in our case, string integer string 
*/ 
$query->bind_param("sis",$name,$age,$email); 
/* execute the query, nice and simple */ 
$query->execute(); 
?> 

這是確定對我來說很容易理解,現在我找不到用戶登錄的一個很好的例子,我發現所有的例子都是從專業開發人員,而他們多創作出如此複雜的腳本,我甚至不需要它。已經安裝了很多準備好的例子,感覺就像他們不太好。

我一直在等待,尋找和搜索1周每天12小時爲:

我希望用戶只需登錄,然後腳本將簡單的東西是這樣的:

PAGE START

HELLO <PHP ECHO USERNAME> <PHP ECHO AGE> <PHP ECHO ANYTHING FROM DB> 
THANKS 

<?php 
ELSE 
IF USER IS NOT LOGGED IN 
REDIRECT TO THE PAGE NOTMEMBER.PHP 
?> 

末頁

爲什麼?因爲這是我用MYSQL編寫的簡單易用的方法,所有的網站結構都是基於這樣的。

示例或演示網站也將有所幫助。

非常感謝

+0

'VALUES('?','?','?')'< - 您不會引用參數標記。簡單地使用'VALUES(?,?,?)' – Phil

+0

感謝那個朋友 – Firefighter

回答

0

您的表還需要密碼列。

HTML登錄表單:

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> 
<input type="text" name="email" /> 
<input type="text" name="password" /> 
<input type="submit" name="submit" value="Log in" /> 
</form> 

趕上它在PHP文件:

if(isset($_POST['submit'])) { 
$email = $_POST['email']; 
$pass = $_POST['password']; 
if($email != '' && $pass != '') { //both not empty, proceed 
    $checkUser = $sql->prepare("SELECT * FROM `users` WHERE `email` = ? AND `pass` = ?"); 
    $checkUser->bind_param('ss', $email, $pass); 
    $checkUser->execute(); 
    if($checkUser->num_rows() > 0) { //if user exists with given email and pass 
    $_SESSION['logged-in'] = 1; 
    } 
} 
} 

確保將session_start();在每個PHP文件的頂部。然後,您只需使用

if($_SESSION['logged-in'] == 1) { 
echo 'this is for logged in users'; 
} else { 
header("Location: notMember.php"); 
exit(); 
} 
+0

感謝M8 是否有某種方式使用舊的樣式mysql佈局如: <?php會話開始如果登錄顯示頁面html與回聲> <從其中username會話用戶> HELLO THANKS <?PHP ELSE 如果用戶沒有登錄的用戶選擇IN 重要提示NOTMEMBER.PHP ?> – Firefighter