【发布时间】:2021-04-16 06:28:16
【问题描述】:
我有一个 server.php 文件来处理注册表。
server.php 看起来像:
<?php
session_start();
// initializing variables
$username = "";
$email = "";
$ig_name = "";
$errors = array();
// connect to the database
$db = mysqli_connect('localhost', 'secret', 'secret', 'test');
// REGISTER USER
if (isset($_POST['reg_user'])) {
// receive all input values from the form
$username = mysqli_real_escape_string($db, $_POST['username']);
$ig_name = mysqli_real_escape_string($db, $_POST['ig_name']);
$password_1 = mysqli_real_escape_string($db, $_POST['password_1']);
$password_2 = mysqli_real_escape_string($db, $_POST['password_2']);
// form validation: ensure that the form is correctly filled ...
// by adding (array_push()) corresponding error unto $errors array
if (empty($username)) { array_push($errors, "A Felhasználónév mező nem lehet üres."); }
if (empty($ig_name)) { array_push($errors, "Az IG név mező nem lehet üres."); }
if (empty($password_1)) { array_push($errors, "A Jelszó mező nem lehet üres."); }
if ($password_1 != $password_2) {
array_push($errors, "A két jelszó nem egyezik.");
}
// first check the database to make sure
// a user does not already exist with the same username and/or email
$user_check_query = "SELECT * FROM users WHERE username='$username' OR ig_name='$ig_name' LIMIT 1";
$result = mysqli_query($db, $user_check_query);
$user = mysqli_fetch_assoc($result);
if ($user) { // if user exists
if ($user['username'] === $username) {
array_push($errors, "A felhasználónév már regiszrálva van.");
}
}
// Finally, register user if there are no errors in the form
if (count($errors) == 0) {
$password = md5($password_1);//encrypt the password before saving in the database
$query = "INSERT INTO users (username, ig_name, password)
VALUES('$username', '$ig_name', '$password')";
mysqli_query($db, $query);
$_SESSION['username'] = $username;
$_SESSION['success'] = "Sikeresen bejelentkeztél.";
$_SESSION['ig_name'] = $user['ig_name'];
header('location: index.php');
}
}
if (isset($_POST['login_user'])) {
$username = mysqli_real_escape_string($db, $_POST['username']);
$password = mysqli_real_escape_string($db, $_POST['password']);
$ig_name = mysqli_real_escape_string($db, $_POST['ig_name']);
if (empty($username)) {
array_push($errors, "A Felhasználó mező nem lehet üres");
}
if (empty($password)) {
array_push($errors, "A Jelszó mező nem lehet üres.");
}
if (count($errors) == 0) {
$password = md5($password);
$query = "SELECT * FROM users WHERE username='$username' AND password='$password'";
$results = mysqli_query($db, $query);
if (mysqli_num_rows($results) == 1) {
$_SESSION['username'] = $username;
$_SESSION['success'] = "Sikeresen bejelentkeztél.";
header('location: index.php');
}else {
array_push($errors, "Hibás adatot adtál meg.");
}
}
}
?>
我想从 SQL 中获取 $ig_name 变量作为值,行名称是“ig_name”,然后在 settings.php 中使用它
我的 settings.php 看起来像:
<?php
session_start();
if (!isset($_SESSION['username'])) {
$_SESSION['msg'] = "You must log in first";
header('location: login.php');
}
if (isset($_GET['logout'])) {
session_destroy();
unset($_SESSION['username']);
header("location: login.php");
}
?>
<!DOCTYPE html>
<html>
<head>
<title>CDS - Adatbázis</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<span style="margin-left:30px;top:10px;position:relative;font-size:30px;cursor:pointer;color:white;" onclick="openNav()">☰ open</span>
<div id="mySidenav" class="sidenav">
<a href="javascript:void(0)" class="closebtn" onclick="closeNav()">×</a>
<a href="index.php">Főoldal</a>
<div w3-include-html="content.html"></div>
<a href="#">Keresett személy / Jármű</a>
<a href="#">Ismert rendszámok</a>
<a href="#">Beállítások</a>
<a href="index.php?logout='1'">Kijelentkezés</a>
</div>
<script>
function openNav() {
document.getElementById("mySidenav").style.width = "250px";
}
function closeNav() {
document.getElementById("mySidenav").style.width = "0";
}
$(function(){
$("#includedContent").load("b.html");
});
</script>
<div class="header">
<h2>Beállítások</h2>
</div>
<div class="content">
<!-- notification message -->
<?php if (isset($_SESSION['success'])) : ?>
<div class="error success" >
<h3>
<?php
echo $_SESSION['success'];
unset($_SESSION['success']);
?>
</h3>
</div>
<?php endif ?>
<!-- logged in user information -->
<?php if (isset($_SESSION['username'])) : ?>
<?php include('server.php') ?>
<div>
<table style="width: 60%;" border="0" cellpadding="5">
<tbody>
<tr>
<td> Felhasználónév:</td>
<td> <strong><?php echo $_SESSION['username']; ?></strong></td>
</tr>
<tr>
<td> IG neved:</td>
<td> <strong><?php $ig_name =$_GET['ig_name']; echo $ig_name; ?></strong></td>
<td> </td>
</tr>
<tr>
<td> Jelszó:</td>
<td> </td>
<td> </td>
</tr>
</tbody>
</table>
</div>
<?php endif ?>
</div>
</body>
</html>
有些 html 字符串是匈牙利语,所以不用管它。
我应该如何获取,然后在设置中发送“ig_name”行?我不想使用新的 sql 连接,就在 server.php 中
【问题讨论】: