
Kod z błędem:
<?php require '../funkcje/database_connect/dbsoft.php'; $sql = "INSERT INTO `database` (nazwisko, imie) VALUES ('{$_POST['1']}', '{$_POST['2']}')"; $statement = $connection->prepare($sql); if (!$statement) { } if ($statement->execute()) { } ?>
Kod poprawiony:
<?php require '../funkcje/database_connect/dbsoft.php'; $sql = "INSERT INTO `database` (nazwisko, imie) VALUES (:surname, :name)"; $statement = $connection->prepare($sql); $statement->bindParam(':name', $_POST['2'], PDO::PARAM_STR); $statement->bindParam(':surname', $_POST['1'], PDO::PARAM_STR); if (!$statement) { } if ($statement->execute()) { } $statement->execute(); ?>
Kod logowania:
<?php require '../database_connect/dbsoft.php'; $email= $_POST['email']; $password = $_POST['password']; $sekret = "XXXXXXXXXXXXXXXXXXXXXXXXX"; $sprawdz = file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret='.$sekret.'&response='.$_POST['g-recaptcha-response']); $odpowiedz = json_decode($sprawdz); if ($odpowiedz->success==false) { $_SESSION['e_bot']="Potwierdź, że nie jesteś botem!"; } $sql = 'SELECT * FROM account WHERE email="'.$email.'"'; $statement = $connection->prepare($sql); $statement->execute(); $oz = $statement->rowCount(); if($oz>0){ $row = $statement->fetchAll(PDO::FETCH_OBJ); foreach($row as $rows): $password_base = $rows->password; $email = $rows->email; $id_base = $rows->id; endforeach; if (password_verify($password, $password_base)) { $_SESSION['verify'] = true; $_SESSION['id_session'] = $id_base; function random(int $i) { return substr(str_shuffle(str_repeat($x='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', ceil($i/strlen($x)) )),1,$i); } $code = random(35); $sql = "INSERT INTO verify_code (id_user, code, date, status_code) VALUES ('$id_base', '$code', '$now', 0)"; $connection->prepare($sql)->execute(); $message="Kod do weryfikacji:\n\n$code\n\nWiadomosc zostala wygenerowana automatycznie: $time"; $sender="From: domena.pl"; $statement = null; $connection = null; } else { $_SESSION['error'] = '<span style="color:red">Nieprawidłowy login lub hasło!</span>'; $statement = null; $connection = null; } } else { $_SESSION['error'] = '<span style="color:red">Nieprawidłowy login lub hasło!</span>'; $statement = null; $connection = null; } $statement = null; $connection = null; ?>
Wiadomo, do tego mam jeszcze sprawdzanie kodu do logowania 2-etapowego ale czy wszystko jest poprawnie zrobione i co najważniejsze BEZPIECZNIE?
Przykładowe połączenie do wypisania tabeli na stronie z bazy:
<?php // NOTA INFORMACYJNA // W zapytaniu do bazy (AND ZNACZY I) a (OR ZNACZY LUB) // System warunkowy // Przypisanie wartości inputa do zmiennej $id_if = $_POST['idif']; // Zmienne konfiguracyjne $baza = "database"; // Nazwa tabeli bazy danych // Sprawdzanie wartości z formów (to omińmy bo zrobiłem zależność wczytywaną z innej strony- zostawmy 1 == 1 dla ułatwienia. if(1 == 1){ // Konfiguracja 1 $warunek_pierwszy = "imie"; $wartosc_dla_warunku_pierwszego = "jan"; $warunek_drugi = "nazwisko"; $wartosc_dla_warunku_drugiego = "kowalski"; // Tworzenie zapytania $sql = "SELECT * FROM `$baza` WHERE $warunek_pierwszy='$wartosc_dla_warunku_pierwszego' AND $warunek_drugi='$wartosc_dla_warunku_drugiego''"; // Działanie skryptu // Połączenie z bazą require '../funkcje/database_connect/dbsoft.php'; // Sprawdzanie czy istnieje w bazie użytkownik pasujący do konfiguracji 1 $qq = $connection->prepare($sql); $qq->execute(); $baza = $qq->rowCount(); if($baza == 0){ }else{ // Wypisanie danych z bazy $data = $qq->fetchAll(PDO::FETCH_OBJ); if (!$qq) { } ?>
Z góry dziękuję za wszelką pomoc
