Witam. Na wstępie zaznaczę, że wiem o istnieniu kilku pytań na innych forach, ale żadne mi nie pomogły. To samo z yt.
Mam trzy pliki, które chcę połączyć by jedno było do zalogowania (i jest) i drugie by było dostępne po zalogowaniu. Kombinowałem i zawsze zostawałem na logowaniu. Nawet jak odpalałem ten drugi plik, to wracałem do logowania. To trzecie jet do usuwania session. I tak, korzystam z metody session.
o to co mam:
login.php
<html lang = "en">
<head>
<title>Tutorialspoint.com</title>
<link href = "css/bootstrap.min.css" rel = "stylesheet">
<style>
body {
padding-top: 40px;
padding-bottom: 40px;
background-color: #ADABAB;
}
.form-signin {
max-width: 330px;
padding: 15px;
margin: 0 auto;
color: #017572;
}
.form-signin .form-signin-heading,
.form-signin .checkbox {
margin-bottom: 10px;
}
.form-signin .checkbox {
font-weight: normal;
}
.form-signin .form-control {
position: relative;
height: auto;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
padding: 10px;
font-size: 16px;
}
.form-signin .form-control:focus {
z-index: 2;
}
.form-signin input[type="email"] {
margin-bottom: -1px;
border-bottom-right-radius: 0;
border-bottom-left-radius: 0;
border-color:#017572;
}
.form-signin input[type="password"] {
margin-bottom: 10px;
border-top-left-radius: 0;
border-top-right-radius: 0;
border-color:#017572;
}
h2{
text-align: center;
color: #017572;
}
</style>
</head>
<body>
<h2>Enter Username and Password</h2>
<div class = "container form-signin">
<?php
$msg = '';
if (isset($_POST['login']) && !empty($_POST['username'])
&& !empty($_POST['password'])) {
if ($_POST['username'] == 'tutorialspoint' &&
$_POST['password'] == '1234') {
$_SESSION['valid'] = true;
$_SESSION['timeout'] = time();
$_SESSION['username'] = 'tutorialspoint';
header("location: form.php");
exit;
}else {
$msg = 'Wrong username or password';
}
}
?>
</div> <!-- /container -->
<div class = "container">
<form class = "form-signin" role = "form"
action = "<?php echo htmlspecialchars($_SERVER['PHP_SELF']);
?>" method = "post">
<h4 class = "form-signin-heading"><?php echo $msg; ?></h4>
<input type = "text" class = "form-control"
name = "username" placeholder = "username = tutorialspoint"
required autofocus></br>
<input type = "password" class = "form-control"
name = "password" placeholder = "password = 1234" required>
<button class = "btn btn-lg btn-primary btn-block" type = "submit"
name = "login">Login</button>
</form>
Click here to clean <a href = "logout.php" tite = "Logout">Session.
</div>
</body>
</html>
drugie to form.php
<?php
session_start();
if(!isset($_SESSION['username'])) {
die("Please login");
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Formularze</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
</head>
<body style="background-color: blue; color: white">
<form action="formularz.php" method="get">
Dodaj nazwisko: <input type = "text" name="zmienna1"><br>
Dodaj imie: <input type = "text" name="zmienna2"><br>
Dodaj telefon: <input type = "text" name="zmienna3"><br>
Dodaj miasto: <input type = "text" name="zmienna4"><br>
<input type = "submit" Value="send">
</form>
<?php
if (isset($_GET['zmienna1']) && isset($_GET['zmienna2']) && isset($_GET['zmienna3']) && isset($_GET['zmienna4']) ) {
$servername = "localhost";
$username = "root";
$password = "vertrigo";
$dbname = "cw";
$przechwycona_zmianna1=$_GET['zmienna1'];
$przechwycona_zmianna2=$_GET['zmienna2'];
$przechwycona_zmianna3=$_GET['zmienna3'];
$przechwycona_zmianna4=$_GET['zmienna4'];
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "INSERT INTO book (surname, name, phone, city) VALUES ('$przechwycona_zmianna1', '$przechwycona_zmianna2', '$przechwycona_zmianna3', '$przechwycona_zmianna4') ";
if ($conn->query($sql) === TRUE) {
echo "Wstawiono.";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
header('Location: formularz.php');
}
?>
<?php
$servername = "localhost";
$username = "root";
$password = "vertrigo";
$dbname = "cw";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT id, surname, name, phone, cityFROM book";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "ID: " . $row["id"]. " - surname: " . $row["surname"]. " name: " . $row["name"]. " phone:" . $row["phone"]. " city:". $row["city"]. "<br>";
}
} else {
echo "0 results";
}
$conn->close();
?>
</body>
</html>
Na internecie podają właśnie taką metodę z "session start()" i pod tym m.in. "if(!isset($_SESSION['username']))", ale to nic nie daje.
O co w tym chodzi?