Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  10 1192
Jeg er ny når det gjelder PHP og har funnet et script som jeg ikke vet hvordan jeg skal endre...

Kan noen fikse dette scriptet slik at:

- hvis noen skriver feil passord kommer det opp en tekst som sier: beklager, feil passord/brukernavn....
- slik at scriptet leder til en annen .php (login side, medlemside) istedenfor den samme. (else) Jeg bruker dreamweaver og vil helst ha login-siden for seg selv og ikke på samme side
- si om scriptet er trygt for passordbeskyttelse av viktige ting
ps. ikke gjør scriptet for avansert:P på forhånd takk
- eventuelt dersom dette ikke er bra kom med noe bedre

--------------------------------------------------------------------------------------------------

<?php

$username = "user";
$password = "pass";

if ($_POST['txtUsername'] != $username || $_POST['txtPassword'] != $password) {

?>
<p>
<b>Logg inn</b>
</p>
<form name="form" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<div align="center">
<center>
<table border="0" cellpadding="5" cellspacing="0">
<tr>
<td><label for="txtUsername">Username</label>
</td>
<td><input type="text" title="Skriv inn brukernavn" name="txtUsername" /></td>
</tr>
<tr>
<td><label for="txtpassword">Password</label>
</td>
<td><input type="password" title="Skriv inn passord" name="txtPassword" /></td>
</tr>
</table>
</center>
</div>
<p align="center"><input type="submit" name="Submit" value="Login" /></p>
</form>

<?php
}
else {
?>

<p class="style3">Velkommen til det personlige området! </p>

<?php
}
?>
Prøv med denne(lagre som login.php):

Kode

<?php 
ob_start();
session_start(); 
if( isset($_POST['Submit']) ) { 
$user=$_POST['bruker']; 
$pass=$_POST['pass']; 

if(empty($user)){
die("Venligst skriv inn et brukernavn!");
}

if(empty($pass)){
die("Venligst skriv inn et passord!");
}

if (($user==="Brukernavn") && ($pass==="passord"))  { 
$_SESSION["bruker"] = $user; 
$_SESSION["pass"] = $pass; 
header( "location: index.php"); 
} else { 
echo "FEIL!&nbsp; Brukernavnet &quot;$user&quot; eksisterer ikke, eller er stavet feil. Det samme gjelder passordet"; 
} 
} 
?>
html form:

Kode

<form action='login.php' method=POST>
Brukernavn: <input type='text' name='bruker' /><br />
Passord: <input type='password' name='pass' class='tekst-boks-pass' /> <br>
<input type='submit' value='Logg inn' name='Submit' ' />  
</form>
header( "location: index.php"); = Sender deg til "index.php". Bare endre "index.php" til den siden du vil sendes til etter inn logging.
Sist endret av marfo; 22. mai 2007 kl. 22:02.
Trådstarter
8 0
Jeg har prøvd scriptet, men når jeg logger inn, skriver brukernavn og passord så kommer jeg til login-siden ikke index... Og jeg lurer på om scriptet er så bra at ikke index.php kan kopieres når du er logget inn å så spre linken. Altså å gå inn på den passordbeskyttetde siden uten å ha skrevet passord/brukernavn først :S
Vet ikke kor sikkert det er, men som jeg sa i mitt første innlegg: header ("Location index.php");
må byttes ut! "index.php" skal byttes ut med den siden du vil skal komme opp etter du har logget inn. velkommen.php e.l.
Limited edition
Moff's Avatar
For å beskytte medlemsområdet så sjekker du bare session-dataene på nytt da disse lagres ved innlogging.

Kode

[COLOR=Green]
<?php
[/COLOR]

[COLOR=Blue]
$user = "user";
$pass = "pass";
[/COLOR]

[COLOR=Green]
if ([/COLOR][COLOR=Blue]$_SESSION["bruker"][/COLOR] [COLOR=Green]===[/COLOR] [COLOR=Blue]$user[/COLOR] [COLOR=Green]&&[/COLOR] [COLOR=Blue]$_SESSION["pass"][/COLOR] [COLOR=Green]===[/COLOR] [COLOR=Blue]$pass[/COLOR][COLOR=Green]) {
?>[/COLOR]

<p class="style3">Velkommen til det personlige området! </p>

[COLOR=Green]<?
} else {
echo[/COLOR] [COLOR=Red]"FEIL!&nbsp; Brukernavnet &quot;$user&quot; eksisterer ikke, eller er stavet feil. Det samme gjelder passordet"[/COLOR][COLOR=Green]; 
}
?>[/COLOR]
Sist endret av Moff; 23. mai 2007 kl. 18:30.
Hva med denne? :

Kode

<?php
	ob_start();
	session_start(); 
if (isset($_SESSION['bruker'])) {
echo "
<html>
<head>
</head>
<body> 
Bla bla bla, innhold
</body>
</html>
";
}

else{
die ("Du har ikke tilgang til denne siden!";
}
Edit: Du kan også bytte ut:

Kode

else{
die ("Du har ikke tilgang til denne siden!";
}
Med:

Kode

else{
header ("Location: error.php");
}
Men det forutsetter at du har laget en error.php side!
Sist endret av marfo; 23. mai 2007 kl. 18:48.
Limited edition
Moff's Avatar
... Da får man vel strengt tatt erroren hvis man er logget inn?
Meg bekjent brukes isset til å sjekke om en variabel eksisterer, og i dette scriptet så får man error hvis 'bruker' eksisterer. Det blir vel kanskje litt feil. Right?
Funker hos meg...
Bruker nesten samme skriptet på en side jeg lager, bare jeg bruker det til å vise andre linker e.l. når du er logget in. Funker fjell!
Limited edition
Moff's Avatar
Merkelige greier. Jeg har ikke testet det, jeg bare leser.
Scriptet sjekker om det finnes en SESSION i browseren ved navn: bruker. Og viss den finnes: vises det du vil skal vises. viss ikke: vises en error melding, eller du blir sendt videre til en error side. Enkelt og greit, Funker fjell.