Проста login система
Здравейте , ето примерен PHP код за проста логин система:
<?php session_start(); if ($_SERVER['REQUEST_METHOD'] === 'POST') { $username = $_POST['username']; $password = $_POST['password']; // Тук трябва да проверим дали потребителското име и паролата са правилни if (validateCredentials($username, $password)) { $_SESSION['username'] = $username; header('Location: secure_page.php'); exit(); } else { $error_message = 'Грешно потребителско име или парола.'; } } function validateCredentials($username, $password) { // Вместо тези хардкоднати проверки може да имате логика, която сравнява данните с база от данни или друг източник return ($username === 'потребителско_име' && $password === 'парола'); } ?> <html> <head> <title>Логин форма</title> </head> <body> <?php if (isset($error_message)) { ?> <div><?php echo $error_message; ?></div> <?php } ?> <form method="post" action=""> <div> <label>Потребителско име:</label> <input type="text" name="username" /> </div> <div> <label>Парола:</label> <input type="password" name="password" /> </div> <div> <input type="submit" value="Вход" /> </div> </form> </body> </html>
Това е много прост PHP код, който показва форма за логин, приема потребителско име и парола, проверява дали съвпадат с предварително дефинирано потребителско име и парола, и ако са правилни, записва потребителското име в сесията и пренасочва потребителя към защитената страница secure_page.php.
Трябва да знаете, че този код не е достатъчно сигурен за бизнес приложения, тъй като не предпазва от атаки като SQLinjection и XSS (Cross-Site Scripting). По тази причина е важно да се осигури коректно обработване на данните и да се предотвратят потенциални атаки във всеки един момент.
Всяка логин система обикновено използва база данни, където се съхраняват потребителските данни и паролите.
Ето един примерен начин да се създаде таблица в MySQL база данни, която да съхранява потребителските данни:
CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL, password VARCHAR(255) NOT NULL );
Тази таблица има 3 колони – id, username и password. Колоната id е автоматично генерирано число, което се използва като уникален идентификатор за всеки потребител. Колоните username и password съхраняват потребителското име и криптирана парола, съответно.
След това, може да се използва PHP код, който да вземе потребителските данни от HTML формата за логин, да провери дали съществува потребител с такова потребителско име и парола в базата данни, и да разреши достъпа до защитените страници, ако данните съвпадат.
Въпреки това, е важно да се напомни, че криптирането на паролите е важно, за да се осигури максимална сигурност на потребителските данни. Освен това, е важно да се използват подготвени заявки, за да се предотвратят SQLинжекции.
Скрипта за логин може да се интегрира в HTML страницата. Обикновено това се прави с помощта на PHP скриптове, които генерират HTML кода на страницата.
Един примерен начин да се интегрира логин скрипта в HTML страница е чрез използване на PHP include стейтмънт, който да включи логин скрипта в страницата. Ето примерен код:
<!-- index.php --> <!DOCTYPE html> <html> <head> <title>My Website</title> </head> <body> <?php include 'login.php'; ?> <h1>Welcome to My Website</h1> <!-- Other page content here --> </body> </html>
В този пример, login.php е името на PHP файла, който съдържа логин скрипта. Като се включи този файл с помощта на include стейтмънт, логин формата ще бъде показана в HTML страницата. Потребителите ще могат да въведат потребителско име и парола, и да се логнат в системата. След това, може да се използват PHP условия, за да се провери дали потребителят е логнат и да се покажат само защитените страници, когато потребителят е логнат успешно.
Ето и примерен код на HTML и CSS, който може да се използва за стилизиране на елементите на страницата, генерирани от горния PHP скрипт:
<!DOCTYPE html> <html> <head> <title>My Website</title> <style> /* Стилизиране на заглавието на страницата */ h1 { color: #333; font-size: 28px; font-weight: bold; text-align: center; } /* Стилизиране на контейнера за резултатите */ .results-container { max-width: 800px; margin: 0 auto; padding: 20px; background-color: #f1f1f1; } /* Стилизиране на редовете с данни */ .result-row { margin-bottom: 10px; padding: 10px; background-color: #fff; border-radius: 5px; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); } /* Стилизиране на данните в реда */ .result-data { display: inline-block; margin-right: 10px; font-size: 18px; } </style> </head> <body> <h1>My Website</h1> <div class="results-container"> <?php // Свързване с базата данни $servername = "localhost"; $username = "db_username"; $password = "db_password"; $dbname = "db_name"; $conn = new mysqli($servername, $username, $password, $dbname); // Проверка за грешки при свързване if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } // Изпълнение на SQL заявки $sql = "SELECT * FROM table_name"; $result = $conn->query($sql); // Генериране на HTML код за показване на информацията if ($result->num_rows > 0) { while($row = $result->fetch_assoc()) { echo "<div class='result-row'>"; echo "<span class='result-data'>" . $row["column1"] . "</span>"; echo "<span class='result-data'>" . $row["column2"] . "</span>"; echo "</div>"; } } else { echo "0 results"; } // Затваряне на връзката с базата данни $conn->close(); ?> </div> </body> </html>
В този примерен код, се използват CSS3 свойства, като border-radius, box-shadow, display: inline-block, margin-right и други, за да се добавят стил и декорация на елементите на страницата. Основният контейнер за резултатите има фонов цвят, рамка, отстъпки и др.
“© 2023 Тони Ангелчовски Всички права запазени”
По-съвременна практика при изработката на уеб приложения е използването на MVC (Model-View-Controller) архитектура. Ето един базов пример за PHP MVC…
PHP е програмен език създаден през 1994 година от Рон Рас. Той е главно използван за създаване на динамични веб…