webForumDet fria alternativet

Hur ska jag sätta användarnamn och lösen skydd?

8 svar · 693 visningar · startad av Ice.Gold

Ice.GoldMedlem sedan okt. 20047 inlägg
#1

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>
kobranturreMedlem sedan maj 2004693 inlägg
#2

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";
}

Ice.GoldMedlem sedan okt. 20047 inlägg
#3

Jag är skitny så jag vet inte hur jag gör det...

kobranturreMedlem sedan maj 2004693 inlägg
#4

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.

kobranturreMedlem sedan maj 2004693 inlägg
#5

Här finns linformation om sessions
http://se2.php.net/manual/sv/ref.session.php

Ice.GoldMedlem sedan okt. 20047 inlägg
#6

Det är bara att inse jag kommer aldrig lära mig nått om sessions

PeddaMedlem sedan juni 20006 032 inlägg
#7

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&auml;ndarnamn:<br>
	<input name="namn" type="text" id="namn" size="50" maxlength="50" />
	<br>
	L&ouml;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
#8

Det där lärde jag mig en hel del av, tack pedda!

Ice.GoldMedlem sedan okt. 20047 inlägg
#9

Man tackar Pedda!

132 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)