Я пытаюсь добраться до точки, где у меня будет страница входа и страница регистрации, используя тот же файл контроллера php. Когда сайт site.com/?login вводится, отображается страница входа в систему (это делается), а затем, когда пользователь отправляет страницу входа в систему только сейчас, я хочу, чтобы она отображала «доступ предоставлен/отклонен». То же самое относится и к странице регистрации (site.com/?registeration переходит на страницу регистрации, и отправка печатает, была ли она успешной или нет). Я сталкиваюсь с проблемой, когда при отправке любой страницы она не показывает результат, который я ожидаю.простая страница PHP не работает должным образом
<?php
include $_SERVER['DOCUMENT_ROOT'] . 'includes/db_connection.php';
/*********************Registration page code***************************/
if (isset($_GET['register']))
{
$action = 'register_form';
include 'register.html.php';
exit();
}
if (isset($_POST['action']) and $_POST['action'] == 'register_form') {
$username = mysqli_real_escape_string($connection, $_POST['username']);
$email = mysqli_real_escape_string($connection, $_POST['email']);
$password = mysqli_real_escape_string($connection, $_POST['password']);
$output = 'Username: ' . $username . ' Email: ' . $email . ' Password: ' . $password;
$sql = 'INSERT INTO user (username,email,password) VALUES
("'. $username .'","'. $email .'","'. $password .'")';
if (!mysqli_query($connection, $sql))
{
$error = 'Error registering user: ' . mysqli_error($connection);
include 'output.html.php';
exit();
}
include 'output.html.php';
exit();
}
/*************************************************************************/
if (isset($_GET['login']))
{
$action = 'login_form';
include 'login.html.php';
exit();
}
if (isset($_POST['action']) and $_POST['action'] == 'login_form')
{
$username = mysqli_real_escape_string($connection, $_POST['username']);
$password = mysqli_real_escape_string($connection, $_POST['password']);
$output = 'Username: ' . $username . ' Password: ' . $password;
$sql = 'SELECT COUNT(*) FROM user WHERE username="'.$username.'" AND password="'.$password.'"';
$result = mysqli_query($link, $sql);
if (!$result)
{
$error = 'Error seeing if user exists in the DB.';
include 'output.html.php';
exit();
}
$num = mysqli_num_rows($result);
if($num > 0) {
$output .= '\nAccess Granted!';
} else {
$output .= '\nAccess Denied! Please register first...';
}
include 'output.html.php';
exit();
}
$output = 'Database connection established.<br/>Server root: ' . $_SERVER['DOCUMENT_ROOT'];
include 'output.html.php';
?>
Код ниже моя страница регистрации (страница Логин очень похожи):
<?php include_once $_SERVER['DOCUMENT_ROOT'] .
'/includes/helpers.inc.php'; ?>
<!DOCTYPE html>
<html>
<head>
<title>Registration</title>
<!--link type="text/css" rel="stylesheet" href="stylesheet.css"/-->
</head>
<body>
<div id="content">
<form id="registration_form" method="POST" action="?<?php htmlout($action); ?>">
<label for="username-id">Username:</label>
<input id="username-id" type="text" name="username" autofocus="autofocus" /><br/><br/>
<label for="email-id">Email:</label>
<input id="email-id" type="email" name="email" /><br/><br/>
<label for="password1-id">Password:</label>
<input id="password1-id" class="text-input" type="password" name="password" /><br/><br/>
<label for="password2-id">Retype Password:</label>
<input id="password2-id" class="text-input" type="password" name="password_repeat" /><br/><br/>
<input type="submit" value="Register"/>
</form>
</div>
</body>
</html>
output.html.php страница это простая страница, которая эхо в $ вывода и $ ошибок.
Любые идеи о том, что я делаю неправильно? Я довольно новичок в PHP. Большинство этого кода следовали за книгой. Создайте собственный веб-сайт, управляемый базой данных, используя PHP & MySQL.
'он не показывает вывод, который я ожидаю' Что он показывает и что вы ожидаете от него? –
Возможно, 'output.html.php' должен также вывести' $ error' ... –
@u_mulder показывает, что установлено соединение с базой данных. Корень сервера: C:/wamp/www/'в основном, что находится внизу контроллера. И если я вхожу в систему, я ожидаю, что он покажет доступ к приему или доступ запрещен – Nick