Avatar billede tjensen Nybegynder
15. maj 2003 - 09:47 Der er 11 kommentarer og
1 løsning

Sessions til validering

Hej Nørder ;)

Nu har jeg taget springet fra asp over i php verdenen. Men jeg savner helt vildt mine asp sessions, har læst helt vildt i php manualen og spg her på eksperten, men har stadig ikke gennemskuet det. I asp gjorde jeg sådan:

Udsnit fra en validring:
If Not autoriseret.EOF then //tjekker folks login og pass
    Session("validering") = "valid" //Sætte en session

Udsnit fra en menu:
Links
..
..
<br><hr><br>
If Session("validering") = "valid" then
Admin menu
..
..

Hvordan ville det se ud i php?

//Thomas
Avatar billede Slettet bruger
15. maj 2003 - 09:55 #1
<?
session_start();

if(*din sætning der validerer bruger*) {
$_SESSION['validering'] = "valid";
}



///tjek validering

if($_SESSION['validering'] == "valid") {
echo "Admin menu";
}

?>
Avatar billede tjensen Nybegynder
15. maj 2003 - 09:59 #2
Tak! ;)
Hvordan med .EOF den tjekkede en Access igennem, og nåede den ikke End-Of-File satte den sessionen. Ved du noget om hvad det ville hedde fra php til MySQL?
Avatar billede razor Nybegynder
15. maj 2003 - 10:10 #3
EOF i en database? Du må vist lige forklare lidt mere :-)
Avatar billede Slettet bruger
15. maj 2003 - 10:13 #4
Ja, det ville nok være noget i stil med

$sql = "SELECT brugernavn,adgangskode FROM etellerandet WHERE brugernavn = 'hans' AND adgangskode = 'abc'";
$result = mysql_query($sql);

while($row = mysql_fetch_array($result)) {
$_SESSION['validering'] = "valid";
}

I ovennævnte eksempel skal du (som altid) huske at parse dine SQL input, da en ondsindet hacker kan lave en SQL injection, f.eks. i stil med

' OR 1=1

Så husk at addslashes() på alle dine inputfelter hvis du ikke gør det i forvejen, eller hvis magic_quotes er slået fra.
Avatar billede tjensen Nybegynder
15. maj 2003 - 10:14 #5
<!--#include file="ssi/forbindelse.asp"-->
<%
Set autoriseret = Server.CreateObject ("ADODB.Recordset")
autoriseret.Open "SELECT * FROM adgang WHERE brugernavn = '" & brugernavn & "' AND adgangskode = '" & adgangskode & "'", database

If Not autoriseret.EOF then
    Session("validering") = "valid"
Avatar billede tjensen Nybegynder
15. maj 2003 - 10:16 #6
Argh, addslashes() har hørt det før, men har ikke brugt tid til at sætte mig ind i det endnu.. Men det gemmer jeg nu lige til et andet spørgsmål, hvis mit selv studie ikke hjælper mig ;)
Avatar billede tjensen Nybegynder
15. maj 2003 - 10:19 #7
Men nu har du hjulpet mig et lang stykke El barto! Tak for det, resten vil jeg lade være op til mine kommende talenter! :)

Så bare drop et svar af her El barto! Tak for det!
//Thomas
Avatar billede razor Nybegynder
15. maj 2003 - 10:20 #8
Addslashes er bare en opfindelse der gør det muligt at undgå SQL injections :-)

Forestil dig følgende:

  mysql_query("SELECT f FROM t WHERE f = '$val'");

Hvad hvis $val er "' OR '1'='1"? Med addslashes bliver det så til: "\' OR \'1\'=\'1"
Avatar billede tjensen Nybegynder
15. maj 2003 - 10:22 #9
ja okay, og så 'unslashes' man den vel bare lige inden brug, eller forstår mysql_query den med alle \?
Avatar billede Slettet bruger
15. maj 2003 - 10:25 #10
svar :)
Avatar billede tjensen Nybegynder
15. maj 2003 - 10:26 #11
Det her virker jo ikke, hvordan er det lige det sakl se ud? Ligger i glemmebogen. ;)

Se brugernavn og pass...

$sql = "SELECT brugernavn,adgangskode FROM etellerandet WHERE brugernavn = '<?php print $_POST['navn'] ?>' AND adgangskode = '<?php print $_POST['pass'] ?>'";
Avatar billede swaxi Nybegynder
15. maj 2003 - 12:08 #12
ikke bruge print ...
$sql = "SELECT brugernavn,adgangskode FROM etellerandet WHERE brugernavn = '" . $_POST['navn'] . "' AND adgangskode = '" . $_POST['pass'] . "'";
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester