Я начал PHP недавно, и мне было интересно:
У меня есть php-файл, который содержит только функцию sqlConnect();
который проверяет, что пользователь еще не зарегистрирован в БД MySQL, и если это так, перенаправляет пользователя на страницу html, которая является формой для пользователя, чтобы ввести имя пользователя и пароль для БД.
После того, как пользователь отправил форму, я хочу вернуться к той точке, где я оставил (в функции).
Одно вы также должны знать, что $_SESSION
запускается в другом файле, который вызывает эту функцию.
Вот что я пытался, но это не сработало:
connect.php:
<?php function sqlConnect() { $_SESSION['CurrentPage'] = "/php/sql/connect.php"; if(!array_key_exists('mysql_username', $_SESSION) && !array_key_exists('mysql_passwd', $_SESSION)) { echo "<script>window.location='/forms/sql_login.php';</script>"; } $servername = "localhost"; $username = $_SESSION['mysql_username']; $passwd = $_SESSION['mysql_passwd']; $db_name = "ToolDB"; // create connection $sql_connection = new mysqli($servername, $username, $passwd, $db_name); // check that it was established if($sql_connection->connect_error) { $msg = $sql_connection->connect_error; echo "<script>alert('Impossible de se connecter à la base de données MySQL : $msg.');</script>"; return NULL; } else { $_SESSION['mysql_username'] = $username; $_SESSION['mysql_passwd'] = $passwd; return $sql_connection; } } ?>
sql_connection.php:
<?php session_start(); $url = $_SESSION['CurrentPage']; ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>Sound Department - Program Making Tool (form)</title> <link rel="stylesheet" type="text/css" href="/style/style.css" /> </head> <body> <header> <nav> <h2 style="margin-left: 10px; font-family: sans-serif;">Sound Department - Program Making Tool (MySQL Login Page)</h2> </nav> </header> <div class="bodyElement"> <form action="<?php echo $url ?>" method="post"> <p>Nom d'utilisateur : <input type="text" name="mysql_username" /></p> <p>Mot de passe : <input type="password" name="mysql_passwd"/></p> <p><input type="submit" name="submit" value="Submit" /></p> </form> </div> </body> </html>
Кто-нибудь знает, как это достичь?
PS: Я знаю, что я не должен хранить пароль в виде обычного текста, но сайт работает в моей локальной сети, и я подумал, что сейчас просто изменю свой код, чтобы сохранить пароль более удобным способом позже.
ob_end_clean(); header("Location: example.com"); exit();
Поместите это в конец, где вы хотите, чтобы пользователь был перенаправлен. Заголовок () не позволяет перенаправлять после вывода, но ob_end_clean()
позволяет перенаправить после вывода.
Вы можете использовать функцию header () для перенаправления клиентов на другую страницу.
<?php header('Location: <your page>'); exit; ?>