Cześć.
Mam pytanie do doświadczonych programistów PHP jak oceniacie mój kod asynchronicznego pobierania danych w PHP.Chodzi mi co można by w nim poprawić aby był lepszy i wydajniejszy.Stworzyłem też własny wzorzec MVC , który jest oparty na JS i czy to też jest poprawne czy raczej nie?
<?php
session_start();
//udana walidacja
$udana_walidacja = true;
//połączenie z inputem text
$email = $_GET['email'];
$imie = $_GET['imie'];
$nazwisko = $_GET['nazwisko'];
$miasto = $_GET['miasto'];
$ulica = $_GET['ulica'];
$kod = $_GET['kod'];
$numer = $_GET['numer'];
$telefon = $_GET['telefon'];
$haslo1 = $_GET['haslo1'];
$haslo2 = $_GET['haslo2'];
//walidacja e-maila
if((strlen($email)<5) ||(strlen($email)>25))
{
$udana_walidacja = false;
$zly_email = false;
$_SESSION['error_email'] = "Zły adres e-mail";
}else{
$zly_email = true;
}
$email = $_GET['email'];
$emailB = filter_var($email,FILTER_SANITIZE_EMAIL);
if((filter_var($emailB,FILTER_SANITIZE_EMAIL)==false)||($emailB!=$email))
{
$wszystko_OK = false;
$zly_email = false;
$_SESSION['e_email'] = "Niepoprawny adres e-mail";
}else{
$zly_email = true;
}
//walidacja imienia
if((strlen($imie)<3) || (strlen($imie)>15))
{
$zle_imie = false;
$udana_walidacja = false;
$_SESSION['error_imie'] = "Imię jest zbyt krutkie";
}else{
$zle_imie = true;
}
//walidacja nzawiska
if((strlen($nazwisko)<3) || (strlen($nazwisko)>30))
{
$zle_nazwisko = false;
$udana_walidacja = false;
$_SESSION['error_nazwisko'] = "Nazwisko jest zbyt krutkie";
}else{
$zle_nazwisko = true;
}
//walidacja kodu pocztowego
if(strlen($kod)<6){
$zly_kod = false;
$udana_walidacja = false;
}else{
$zly_kod = true;
}
if(strlen($numer)<1)
{
$zle_numer = false;
$udana_walidacja = false;
}else{
$zle_numer = true;
}
//walidacja miasta
if((strlen($miasto)<3) || (strlen($miasto)>25))
{
$zle_miasto = false;
$udana_walidacja = false;
$_SESSION['error_miasto'] = "Podaj poprawne miasto";
}else{
$zle_miasto = true;
}
//walidacja ulicy
if((strlen($ulica)<4) || (strlen($ulica)>25))
{
$zla_ulica = false;
$udana_walidacja = false;
$_SESSION['error_ulica'] = "Podaj poprawną ulice";
}else{
$zla_ulica = true;
}
//walidacja telefonu
if(strlen($telefon)<9){
$zly_telefon = false;
$udana_walidacja = false;
}else{
$zly_telefon = true;
}
//walidacja hasła
/* if(strlen($haslo1)<6){
$zly_haslo = false;
$udana_walidacja = false;
}*/
if(preg_match('/^([a-zA-Z0-9_-]{6,40})$/D',$haslo1))
{
$zly_haslo = false;
$udana_walidacja = false;
$_SESSION['error_haslo'] = "hasło musi zawierać min 8 znaków";
}else{
$zly_haslo = true;
}
if($haslo1 != $haslo2)
{
$zle_haslo2 =false;
$udana_walidacja = false;
$_SESSION['error_haslo'] = "hasła musza być takie same";
}else{
$zle_haslo2 = true;
}
$haslo_hash = password_hash($haslo1,PASSWORD_DEFAULT);
if(!isset($_GET['wybor']))
{
$udana_walidacja = false;
$zanacz = false;
$_SESSION['error_regulamin'] = "musisz zakceptować regulamin";
}else{
$zanacz = true;
}
//laczenie z baza mysql
require_once"connect.php";//uzuskanie wartości od connect.php
mysqli_report(MYSQLI_REPORT_STRICT);
try
{
$polaczenie = new mysqli($host, $db_user, $db_password, $db_name);
if($polaczenie->connect_error != 0)//sprawdzenie czy połączenie z bazą danych się udało
{
throw new Exception(mysqli_connect_errno());//informacja o błędzie z logowania do mysqli
}else
{
//połączyliśmy się już z bazą i sprawdzamy czy instnieje już taki e-mail
$rezultat = $polaczenie->query("SELECT iduser FROM user WHERE email='$email'");
if(!$rezultat) throw new Exception($polaczenie->error);
$ile_takich_maili = $rezultat->num_rows;
if($ile_takich_maili>0)
{
$zly_email2 = false;
$udana_walidacja = false;
$_SESSION['error_email'] = "Podany e-mail już istnieje";
}
if($udana_walidacja == true)
{
//poprawnie przeprowadzona walidacja :D
if($polaczenie->query("INSERT INTO user VALUES (NULL,'$email','$haslo_hash','$imie','$nazwisko','Polska','$miasto','$kod','$ulica','$numer','$telefon')"))
{
$_SESSION['udanarejestracja'] = true;
// echo header('location:udanarejestracja.php');
$sukces = 1;
$tablica = array($sukces);
echo json_encode($tablica);
}
else
{
throw new Exception($polaczenie->error);
}
}else{
$tablica = array(" ",$zly_email,$zle_imie,$zle_nazwisko,$zle_miasto,$zla_ulica,$zly_kod,$zle_numer,$zly_telefon,$zly_haslo,$zle_haslo2,$zanacz);
echo json_encode($tablica);
}
$polaczenie->close();
}
}
catch (Exception $e)
{
echo "Bład serwera przepraszamy za utrudnienia";
echo "<br/> Informacja dla codera".$e;
}
?>
function wyslij() {
//pobranie wszystkich informacji z pola edycyjnego
$(document).ready(function () {
$.ajax({
url:"rejestracja_walidacja.php",
dataType:"json",
type:"get",
data:{
email:$("input#email").val(),
imie:$("input#imie").val(),
nazwisko:$("input#nazwisko").val(),
miasto:$("input#miasto").val(),
ulica:$("input#ulica").val(),
kod:$("input#kod").val(),
numer:$("input#numer").val(),
telefon:$("input#telefon").val(),
haslo1:$("input#haslo1").val(),
haslo2:$("input#haslo2").val()
},
success:function (tablica) {
if(tablica[1] == 1){
$(window).attr('location', 'udanarejestracja.php');
}
if(tablica[1] == false){
// window.location="udanarejestracja.php";
$("#zly_email").html("<p class='nie_wyslano'>Wprowadzono niepoprawny e-mail</p>");
}
else {
$("#zly_email").html(" ");
}
if(tablica[2] == false){
$("#zly_imie").html("<p class='nie_wyslano'>Podaj imię</p>");
} else {
$("#zly_imie").html(" ");
}
if(tablica[3] == false){
$("#zly_nazwisko").html("<p class='nie_wyslano'>Podaj nazwisko</p>");
}else {
$("#zly_nazwisko").html(" ");
}
if(tablica[4] == false){
$("#zly_miasto").html("<p class='nie_wyslano'>Podaj miasto (Potrzebne do wysyłki)</p>");
}
else {
$("#zly_miasto").html(" ");
}
if(tablica[5] == false){
$("#zly_ulica").html("<p class='nie_wyslano'>Podaj nazwę ulicy bez liczb</p>");
}
else {
$("#zly_ulica").html(" ");
}
if(tablica[6] == false){
$("#zly_kod").html("<p class='nie_wyslano'>Podaj kod pocztowy</p>");
}else {
$("#zly_kod").html(" ");
}
if(tablica[7] == false){
$("#zly_numer").html("<p class='nie_wyslano'>Podaj numer lokalu</p>");
}else {
$("#zly_numer").html(" ");
}
if(tablica[8] == false){
$("#zly_telefon").html("<p class='nie_wyslano'>Podaj numer telefonu</p>");
}else {
$("#zly_telefon").html(" ");
}if(tablica[9] == false){
$("#zly_haslo").html("<p class='nie_wyslano'>hasło musi mieć 6 znaków i @</p>");
}else {
$("#zly_haslo").html(" ");
}
if(tablica[10] == false){
$("#zly_haslo2").html("<p class='nie_wyslano'>hasła muszą być takie same</p>");
}else {
$("#zly_haslo2").html(" ");
}
}
});
});
var czek = document.getElementById("regulamin").checked;
if (czek == true){
$(document).ready(function () {
$.ajax({
url: "rejestracja_walidacja.php",
dataType: "json",
type: "get",
data: {
wybor:$("input#wybor").val(),
email:$("input#email").val(),
imie:$("input#imie").val(),
nazwisko:$("input#nazwisko").val(),
miasto:$("input#miasto").val(),
ulica:$("input#ulica").val(),
kod:$("input#kod").val(),
numer:$("input#numer").val(),
telefon:$("input#telefon").val(),
haslo1:$("input#haslo1").val(),
haslo2:$("input#haslo2").val()
},
success:function (tablica) {
if(tablica[11] == true){
$("#zly_regulamin").html(" ");
}
}
});
});
}else {
$("#zly_regulamin").html("<p class='nie_wyslano'>Musisz wyrazić zgode</p>");
}
}