[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Минимальная, PHP рега на 1 стр: БД,форма,сессия
xcislav
Минимальная, одностраничная PHP регистрация: БД, форма, $_POST, $_SESSION

Кроме структуры, формируемой header("location:") всё достаточно прямолинейно,
Отправка формы попадает -> соединением с БД (PDO+немного SQL кода)
и
всё происходит методом $_POST и выводится в $_SESSION.

index.php:
    <!DOCTYPE html>
<
html>
<
h1>Register</h1>
<
form method="POST">
<
input type="text" name="user">
<
input type="pass" name="pass">
<
input type="submit">
</
form>
<?php
session_start();
if(isset($_POST['user'], $_POST['pass'])){
require 'connect.php';
$zr++;
$query = d()->prepare("INSERT INTO u (user, pass, loc) VALUES (:user, :pass, :loc)");
$query->bindParam(':user', $_POST['user']);
$query->bindParam(':pass', $_POST['pass']);
$query->bindParam(':loc', $zr);
if($query->execute()){
$_SESSION['user'] = $row['user'];
$_SESSION['pass'] = $row['pass'];
header("Location: ".$_SERVER['PHP_SELF']);
} else{
echo 'ERROR';
}
}

?>
<h1>Login</h1>
<
form method="POST">
<
input type="text" name="user">
<
input type="pass" name="pass">
<
input type="submit">
</
form>
<?php
echo $_POST['user'];
if(isset($_POST['user'], $_POST['pass'])){
require 'connect.php';
$query = d()->prepare("SELECT user, pass FROM u WHERE user=:user AND pass=:pass");
$query->bindParam(':user', $_POST['user']);
$query->bindParam(':pass', $_POST['pass']);
$query->execute();
if($row = $query->fetch()){
$_SESSION['user'] = $row['user'];
$_SESSION['pass'] = $row['pass'];
header("Location: ".$_SERVER['PHP_SELF']);
}
}

$us=$_SESSION['user'];
echo 'user ',$us;
?>
<?php

if(isset($_SESSION['user'])){
$us=$_SESSION['user'];
echo '
user '
,$us, ' ', '<a href="logout.php">Logout</a>';
echo '
'
, '<a href="zrs.php">zero session</a>';
}
?>
</html>


connect.php:
    <?php
function
d(){
try{
$db = new pdo("mysql:host=localhost;dbname=tx;","root","hyuiuik");
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
return $db;
} catch(PDOException $e){
echo 'ERROR', $e->getMessage();
}
}

?>


ВИД на табл. пользователей:
mysql> select * from u;
+
----+--------+------+------+
| id | user | pass | loc |
+----+--------+------+------+
| 1 | a | asdf | 0 |
| 2 | b | bsdf | 0 |
| 3 | b | bsdf | 0 |
| 4 | c | csdf | 0 |



Но непонимание на этапе формирования структуры подготовления и отправки собранных данных.

примерный вид:

<?php
session_start();
К
О
Д
session_write_close();

if( isset($_POST['user'] ){
К
О
Д
}else{
К О Д
}

if( !isset($_POST['user']) ){
header("location: http://" . $_SERVER['HTTP_HOST'] . "/login.php");
}else{
//user установлен
КОД ЗАПУСКА
}
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.