Hur ska jag sätta skydd så man måste logga in för att få tillgång till det som står nedan?
Jag är en nybörjare...
...och helt ny i detta foum! :birp
<?
if(isset($_POST["mess"])) {
$new = file_get_contents("note.txt");
$f = fopen("note.txt","w");
fwrite($f,"<p><font color='#000000'>Tid: </font>".date("d/m H:i")."<br><font color='#000000'>Namn: </font>".$_POST['name']."<br><font color='#000000'>Ämne: </font>".$_POST['subject']."<br><font color='#000000'>Meddelande:</font><br>".$_POST['note']."<br></p>\n".$new);
fclose($f);
}
?>
<html>
<head>
<title>Gästboken</title>
<link rel="stylesheet" href="style.css" type="text/css">
<script type="text/javascript">
<!--
function error() {
with(document.gb) {
if (name.value == "" || subject.value == "" || note.value == "") {
alert("Fyll i alla fält!");
name.focus();
return false;
}
}
}
//-->
</script>
</head>
<body>
<form name="gb" method="post" action="guestbook.php" onsubmit="return error();">
<p>
Namn:
<br>
<input type="text" name="name">
<br>
Ämne:
<br>
<input type="text" name="subject">
<br>
Meddelande:
<br>
<textarea cols=30 rows=5 name="note" wrap=virtual></textarea><br><br>
<input type="submit" name="mess" value="Skicka"> <input type=reset value="Rensa">
</p>
</form>
<p>Meddelanden:</p>
<?
readfile("note.txt");
?>
</body>
</html>
Du får använda dig av sessions.
Edit: Gör det mer klart
Användaren loggar in. Om användarnamnet och lösenordet stämmer så ger du en sessionvariabel ett värde t.ex:
$_SESSION['inloggad'] = "ja";
Sedan skickar du vidare användaren med en header till sidan där all information står. I den sidan så lägger du till en if sats
if($_SESSION['inloggad'] == "ja"){
Visa allt
}
else{
echo "Du är inte inloggad";
}
Jag är skitny så jag vet inte hur jag gör det...
Men det är inte säkert mot XSS. Har faktiskt knappt använt sessions så jag är inte riktigt säker på hur man ska skydda sig mot xss.
Det är bara att inse jag kommer aldrig lära mig nått om sessions
PeddaMedlem sedan juni 20006 032 inlägg Skrev ihop ett inloggningsscript som bör funka.
Ändra Användarnamn och lösenord till det du vill ha.
<?php
session_start(); // Alltid överst på sidan
// Ditt användarnamn
$username = "icegold";
// Ditt lösenord
$password = "test";
// Inloggning
if (isset($_POST['Submit'])){
// Hittades inte användarnamn och lösenord
// skicka till formulär med felmeddelande
if ($username != $_POST['namn'] OR $password != $_POST['losen']){
header("Location: guestbook.php?badlogin=");
exit;
}
// Sätt sessionen om namn och lösen stämde
$_SESSION['sess_user'] = $_POST['namn'];
header("Location: guestbook.php");
exit;
}
if(isset($_POST["mess"])) {
$new = file_get_contents("note.txt");
$f = fopen("note.txt","w");
fwrite($f,"<p><font color='#000000'>Tid: </font>".date("d/m H:i")."<br><font color='#000000'>Namn: </font>".$_POST['name']."<br><font color='#000000'>Ämne: </font>".$_POST['subject']."<br><font color='#000000'>Meddelande:</font><br>".$_POST['note']."<br></p>\n".$new);
fclose($f);
}
?>
<html>
<head>
<title>Gästboken</title>
<link rel="stylesheet" href="style.css" type="text/css">
<script type="text/javascript">
<!--
function error() {
with(document.gb) {
if (name.value == "" || subject.value == "" || note.value == "") {
alert("Fyll i alla fält!");
name.focus();
return false;
}
}
}
//-->
</script>
</head>
<body>
<?php
// Om inte inloggad visa inloggnings formulär
if (!isset($_SESSION['sess_user'])){
echo "<h3>Logga in</h3>\n";
// Visa felmeddelande vid felaktig inloggning
if (isset($_GET['badlogin'])){
echo "Fel användarnamn eller lösenord!<br>\n";
echo "Försök igen!\n";
}
?>
<form name="login" id="login" method="post" action="guestbook.php">
Användarnamn:<br>
<input name="namn" type="text" id="namn" size="50" maxlength="50" />
<br>
Lösenord:<br>
<input name="losen" type="password" id="losen" size="50" maxlength="50" /><br>
<input name="Submit" type="submit" value="Logga in" />
</form>
<?php
} else {
?>
<form name="gb" method="post" action="guestbook.php" onsubmit="return error();">
<p>
Namn:
<br>
<input type="text" name="name">
<br>
Ämne:
<br>
<input type="text" name="subject">
<br>
Meddelande:
<br>
<textarea cols=30 rows=5 name="note" wrap=virtual></textarea><br><br>
<input type="submit" name="mess" value="Skicka"> <input type=reset value="Rensa">
</p>
</form>
<p>Meddelanden:</p>
<?php
readfile("note.txt");
}
?>
</body>
</html>
TympanonMedlem sedan nov. 2004302 inlägg Det där lärde jag mig en hel del av, tack pedda!