Gå til innhold

admin panel / loggin


Anbefalte innlegg

Videoannonse
Annonse

Innlogging:

- Sjekk at inntastet passord og brukernavn stemmer (MERK: du bør ufarliggjøre brukernavnet ved å benytte mysql_real_escape(), addslashes() eller lignende)

- opprett en session med brukerid/brukernavn, passord (hashet sha1 eller md5), ip og browser (+ andre ting du måtte ønske)

 

Sjekk på hver side:

- Sjekk at brukerid/brukernavn og passord stemmer (for å unngå at noen på samme webhotell skulle finne på å noe)

- Sjekk at browser og ip stemmer overens

- Hvis en av de to over feiler ugyldiggjør du session ($_SESSION = array(); og session_destroy()) hvis ikke åpner du siden

 

Utlogging:

- $_SESSION = array(); og session_destroy();

Lenke til kommentar
  • 2 uker senere...

Se den kan brukes ja.

Men jeg har noen enkle (!) sessions login greier, og jeg ender opp med:

 

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /customers/soteland.net/soteland.net/httpd.www/phpeditor/innlogget.php:2) in /customers/soteland.net/soteland.net/httpd.www/phpeditor/innlogget.php on line 3

Du er nå logget inn med brukernavn: .
Logg ut

 

Hver gang... har kopiert slavisk (og erstattet brukernavnene da ++) to uavhengige koder som begge resulterte i dette :(

 

Noen hint?

 

edit:

logginn.php

<form name="sporring" method="post" action="logginnaction.php" enctype="multipart/form-data">
Brukernavn:  
<input type="text" name="brukernavn" maxlength="30">
<br>
Passord:       
<input type="password" name="passord" maxlength="30">
<br>
<input type="submit" value="Logg inn">
</form>

 

logginnaction.php

<?php
$brukernavn = "brukenavnetmitt";
$MD5_passord = "d3454db4355e44ce36518568red22590e8";
$brukerdata = $_POST['brukernavn'];
$passord = md5($_POST['passord']);

if($passord == "$MD5_passord" && $brukerdata == "$brukernavn"){

   session_start();
   $_SESSION['innlogget'] = 1;
   $_SESSION['brukernavn'] = $brukernavn;
   $_SESSION['passord'] = $MD5_passord;
   echo "<a href=\"innlogget.php\">Gå til editor</a>";	
//	header("Location: innlogget.php");
}
   
   else{
       echo "Feil brukernavn eller passord! Sjekk at Caps Lock ikke er aktivert og prøv igjen.";
   }
   
?> 

 

innlogget.php

<?php
session_start();

if($_SESSION['brukernavn']=="brukenavnetmitt" && $_SESSION['passord']=="d3454db4355e44ce36518568red22590e8")
{
   echo " <!-- Din HTML kode her! --!> <br>
   Du er nå logget inn med brukernavn: $brukernavn.
   <br>
   <a href=\"loggut.php\">Logg ut</a>

   ";
}
else
{
   echo "Du må være logget inn for å nå disse sidene! <a href=\"login.php\">Logg inn</a>!";
}
?> 

 

Har prøvd videresending med header("blabla

Skal egentlig bruke database for å henta passord, men når ikke dette funker så vil jeg få det til å virke først.

Så jeg sitter fast med en session_start() som er sinna på meg :p (tror jeg)

Endret av aeinstein
Lenke til kommentar
Se den kan brukes ja.

Men jeg har noen enkle (!) sessions login greier, og jeg ender opp med:

 

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /customers/soteland.net/soteland.net/httpd.www/phpeditor/innlogget.php:2) in /customers/soteland.net/soteland.net/httpd.www/phpeditor/innlogget.php on line 3

 

Hver gang... har kopiert slavisk (og erstattet brukernavnene da ++) to uavhengige koder som begge resulterte i dette :(

 

Noen hint?

5750922[/snapback]

 

header informasjonen må sendes før noe annet blir sendt ut.. dvs at dette må plassere slik at det ikke kommer noen "print" eller andre ting først.

 

Du må også passe på at det eikke er noen blanke linjer/tegn før <?php tager.

 

EDIT: du ser også hvor outputen startet: /customers/soteland.net/soteland.net/httpd.www/phpeditor/innlogget.php linje 2 og 3..

Endret av trondes
Lenke til kommentar

Da fikset jeg feilmeldingen med å ta bort et mellomrom/nylinje før <?php

:)

Da er det kanskje fikset alt... hmmm

Ja dillet litt til så nå er alt bænkers!

TAKK!

(irriterer meg litt over php som er sååå følsomt overfor små feil som ikke sees med det blotte øye nesten...)

Lenke til kommentar
  • 5 måneder senere...

litt off topic :blush:

 

et , eller . feil så får du jo den lange kryptiske feilmeldingen

for oss som ikke er så _veldig_ flinke med php enda kan det være vanskelig og finne ut hva som er feil, spesielt når man mener at man ikke har gjort noe feil. Men slik er vel alle prog språk :p

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...