Witam
To mój pierwszy post na forum proszę o wyrozumiałość mam problem z kodem PHP muszę go oddzielić od HTML przy pomocy Sparty jednak nie mam pomysłu jak to zrobić.
Sama rejestracja wygląda tak, nie wstawiam wszystkiego
<?php
session_start();
if (isset($_POST['email']))
{
//Udana walidacja? Załóżmy, że tak!
$wszystko_OK=true;
//Sprawdź poprawność nickname'a
$nick = $_POST['nick'];
//Sprawdzenie długości nicka
if ((strlen($nick)<3) || (strlen($nick)>20))
{
$wszystko_OK=false;
$_SESSION['e_nick']="Nick musi posiadać od 3 do 20 znaków!";
}
if (ctype_alnum($nick)==false)
{
$wszystko_OK=false;
$_SESSION['e_nick']="Nick może składać się tylko z liter i cyfr (bez polskich znaków)";
}
//sprawdzanie poprawnosci nazwiska
$surname = $_POST['surname'];
//
if (!preg_match('/^[A-ZŁŚ]{1}+[a-ząęółśżźćń]+$/',$surname) )
{
$wszystko_OK=false;
$_SESSION['e_surname']="Błędne Nazwisko ";
}
//sprawdzanie poprawnosci imie
$name = $_POST['name'];
if (!preg_match('/^[A-ZŁŚ]{1}+[a-ząęółśżźćń]+$/',$name) )
{
$wszystko_OK=false;
$_SESSION['e_name']="Błędne imię";
}
//Zapamiętaj wprowadzone dane
$_SESSION['fr_nick'] = $nick;
$_SESSION['fr_name'] = $name;
$_SESSION['fr_surname'] = $surname;
if (isset($_POST['regulamin'])) $_SESSION['fr_regulamin'] = true;
require_once "connect.php";
mysqli_report(MYSQLI_REPORT_STRICT);
try
{
$polaczenie = new mysqli($host, $db_user, $db_password, $db_name);
if ($polaczenie->connect_errno!=0)
{
throw new Exception(mysqli_connect_errno());
}
else
{
}
?>
<!DOCTYPE html>
<html lang="pl">
<head>
<meta charset="utf-8">
<title> ......</title>
<link href="bootstrap.css" rel="stylesheet">
<link href="style.css" rel="stylesheet">
konta -->
</head>
<body>
<div class="jumbotron">
<form method="post">
<div class="form-register">
name : <br /> <input type="text" value="<?php
if (isset($_SESSION['fr_name']))
{
echo $_SESSION['fr_name'];
unset($_SESSION['fr_name']);
}
?>" name="name" /><br />
<?php
if (isset($_SESSION['e_name']))
{
echo '<div class="error">'.$_SESSION['e_name'].'</div>';
unset($_SESSION['e_name']);
}
?>
surname : <br /> <input type="text" value="<?php
if (isset($_SESSION['fr_surname']))
{
echo $_SESSION['fr_surname'];
unset($_SESSION['fr_surname']);
}
?>" name="surname" /><br />
<?php
if (isset($_SESSION['e_surname']))
{
echo '<div class="error">'.$_SESSION['e_surname'].'</div>';
unset($_SESSION['e_surname']);
}
?>
Nick: <br /> <input type="text" value="<?php
if (isset($_SESSION['fr_nick']))
{
echo $_SESSION['fr_nick'];
unset($_SESSION['fr_nick']);
}
?>" name="nick" /><br />
<?php
if (isset($_SESSION['e_nick']))
{
echo '<div class="error">'.$_SESSION['e_nick'].'</div>';
unset($_SESSION['e_nick']);
}
?>
<footer class="footer">
<p> ....... </p>
</footer>
</div> <!-- /container -->
</body>
</html>
PHP/Smarty
tworzę plik rejestracja.html
<form method="post" action="register_in.php">
<div class="#">
```html
<center><label>Login</label></center>
<input type="text" name="login" class="form-control"/>
<center>{$smarty.session.fr_nick}</center>
</div>
<div class="#">
<center><label>Imię</label></center>
<input type="text" name="name" class="form-control"/>
<center>{$smarty.session.fr_name2}</center>
</div>
<div class="#">
<center><label>Nazwisko</label></center>
<input type="text" name="surname" class="form-control"/>
<center>{$smarty.session.fr_surname}</center>
</form>
</div>
rejestracja.php
<?php
session_start();
require_once('lib/Smarty.class.php');
$smarty = new Smarty();
$smarty -> template_dir = 'html';
$smarty -> compile_dir = 'temp';
$smarty -> cache_dir = 'cache';
if (isset($_SESSION['fr_nick']))
{
echo $_SESSION['fr_nick'];
unset($_SESSION['fr_nick']);
}
if (isset($_SESSION['fr_surname']))
{
echo $_SESSION['fr_surname'];
unset($_SESSION['fr_surname']);
}
if (isset($_SESSION['fr_name']))
{
echo $_SESSION['fr_name'];
unset($_SESSION['fr_name']);
}
$smarty -> display('register.html');
?>
rejestracja_in.php
<?php
session_start();
//walidacja
if (isset($_POST['e-mail'])) // wystarczy jedna zmienna, bo formularz jest wysyłany w całości
{
//udana walidacja, ustawiamy flage
$wszystko_OK=true;
//Sprawdź poprawność nickname'a
$nick = $_POST['nick'];
//Sprawdzenie długości nicka
if ((strlen($nick)<3) || (strlen($nick)>20))
{
$wszystko_OK=false;
$_SESSION['e_nick']="Nick musi posiadać od 3 do 20 znaków!";
}
if (ctype_alnum($nick)==false)
{
$wszystko_OK=false;
$_SESSION['e_nick']="Nick może składać się tylko z liter i cyfr (bez polskich znaków)";
}
//sprawdzanie poprawnosci nazwiska
$surname = $_POST['surname'];
//
if (!preg_match('/^[A-ZŁŚ]{1}+[a-ząęółśżźćń]+$/',$surname) )
{
$wszystko_OK=false;
$_SESSION['e_surname']="Błędne Nazwisko ";
}
//sprawdzanie poprawnosci imie
$name = $_POST['name'];
if (!preg_match('/^[A-ZŁŚ]{1}+[a-ząęółśżźćń]+$/',$name) )
{
$wszystko_OK=false;
$_SESSION['e_name']="Błędne imię";
}
//Zapamiętaj wprowadzone dane
$_SESSION['fr_nick'] = $nick;
$_SESSION['fr_name'] = $name;
$_SESSION['fr_surname'] = $surname;
if (isset($_SESSION['e_nick']))
{
echo '<div class="error">'.$_SESSION['e_nick'].'</div>';
unset($_SESSION['e_nick']);
}
if (isset($_SESSION['e_surname']))
{
echo '<div class="error">'.$_SESSION['e_surname'].'</div>';
unset($_SESSION['e_surname']);
}
if (isset($_SESSION['e_name']))
{
echo '<div class="error">'.$_SESSION['e_name'].'</div>';
unset($_SESSION['e_name']);
}
?>