2014-01-12 3 views
1

Я искал здесь и Google, как изменить все мои MYSQL-скрипты на MYSQLI или PDO, начиная с самого начала. Дело в том, что по какой-то причине я не могу понять, потому что я неопытен, и я не могу сделать простую сессию. Вот что я начну, потому что я хочу изучить новый MYSQLi:Выполнение перехода от mysql_ к MySQLi или PDO

Я выбрал регистрационную форму (я не буду использовать ее публично, мой сайт предназначен только для друзей и не больше людей, которых я выбираю, кто будет членом и я подпишу Em Up)

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

PAGE END

Почему? Поскольку это простой и простой способ использовать код в MYSQL, и все структуры сайтов основаны на этом.

Примеры или демонстрационные сайты также будут полезны.

Большое спасибо

+0

«ЦЕННОСТИ ('?', '?', '?') '<- Вы не указываете маркеры параметров. Просто используйте 'ЗНАЧЕНИЕ' – 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 с эхом? > <выбрать из пользователей, где имя пользователя SESSION USER> ПРИВЕТ БЛАГОДАРЯ – Firefighter

1

Я рекомендую вам изучить (объекты PHP Data) PDO вместо MySQLi причина PDO поддерживает 12 различных баз данных драйверов в то время как MySQLi поддерживает только базы данных MySQL.

Чтобы узнать разницу между PDO и MySQLi visit-
PDO vs. MySQLi: Which Should You Use?

Чтобы узнать о PDO посетить это очень хороший tutorials-
1. Why you Should be using PHP's PDO for Database Access
2. PHP Database Access: Are You Doing It Correctly?

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