rigtigt hemmeligt ord

Tags:    php mysql

Hej


Det er sådan nogle af de første sider der har jeg gøre sådan lidt med noget if hvis altså id passer må han bliver sendt videre ellers skal han blive log af..

men det er sådan at jeg har bygge kode sådan her ;

Fold kodeboks ind/udPHP kode 


og hvis han id er f.eks 42 bliver han sendt videre til bruger_indstillinger_godkendt.php

der skal han/hun så inde taste det hemmelig kode ord som er lige her herherher

ind på bruger_indstillinger_godkendt.php
har jeg gøre sådan her ;

Fold kodeboks ind/udPHP kode 


så nu er jeg kommet til bruger_indstillinger_godkendt_ok.php

og jeg kan bare ikke komme videre her fra,,

jeg har prøve at gøre sådan her men det er totalt forkert fordi den skal ligesom selv husk på en eller anden måde at hvorfor et hemmelig ord bruger har. men ved ikke lige sådan hvordan jeg skal totalt 100% gøre det..

jeg tænker lidt på at jeg skal bruge noget session når de f.eks logger ind så "husk den brugers hemmelig kode ord"

men jeg har bygge kode sådan her

Fold kodeboks ind/udPHP kode 


ja jeg ved godt der er fejl men det er derfor at jeg prøve mig frem selv uden at spørger så meget men lige her er jeg står helt af da det ikke virker 100%..

Du må gerne sige til hvis jeg skal lave et eller andet om fordi jeg vil gøre det på bedste muligt, det skal være sådan at det er kunne det rigtigt password som kan blive sæt der:)


sådan her ser min godkendt log ind fil ud altså godkendt.php;


Fold kodeboks ind/udPHP kode 


Du må virkelig lige spørger mig om noget hvis det er at du gerne vil vide et eller andet.. :)




Jeg har prøve mig lidt videre og prøve mig til det her men der kommer fejl hmm

Fold kodeboks ind/udPHP kode 

her er fejl til min kode :O

Notice: Undefined variable: _SESSION in C:\xampp\htdocs\ny\bruger_indstillinger_godkendt_ok.php on line 2

Notice: Undefined variable: _SESSION in C:\xampp\htdocs\ny\bruger_indstillinger_godkendt_ok.php on line 3

Fejl

sådan her ser det ud nu når man skal log ind på siden :


Fold kodeboks ind/udPHP kode 







Indlæg senest redigeret d. 04.04.2012 03:49 af Bruger #17136
7 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 7 karma
Sorter efter stemmer Sorter efter dato
jeg tror du skal kigge lidt på, hvordan man laver SQL kald og validere login ... der er jo intet af det du har lavet der virker :D



I det første kode eksempel, der henter du $id fra session laver et sql kald med det id uden, at tænke på sql injektions eller noget. Derefter siger du if($id) .... Men if $id hvad ... Om den er sat er den korrekt? Hvad med sql kaldet?


Nu kan man normalt ikke lave sql injection med SESSIONS. Det er jo ikke noget brugeren bare kan ændre som han ønsker, så jeg ville nok synes det ville være pjattet at skulle til at validere alt hvad han har liggende i SESSIONS hele tiden.

Og angående din vildledende kommentar til hans "if($id)" - altså din kommentar "Men if $id hvad": Det er ganske korrekt php han laver der, og det virker rent faktisk efter hensigten. Jeg kan godt se hvordan du måske har problemer med at forstå hans kodestump, hvis du ikke kender til php. Men så bør du måske ikke kommentere med sådan en autoritet i stemmen, som måske får ham til at tro at det er ham der er fjollet og ikke dig.

Læs eventuelt lidt her http://php.net/manual/en/control-structures.if.php og her http://www.php.net/manual/en/language.types.boolean.php#language.types.boolean.casting . Det er burde være common knowledge....



Hej Jesper,

Den første regel ved programmering du skal kende er flg: stol -aldrig- på bruger indput. specielt ikke i php som ikke er typestærkt.

grunden til jeg siger dette er når man ser på denne linje:
$userQuery = mysql_query("SELECT * FROM brugere WHERE email='$email'") or die(mysql_error());

så har du ingen form for sikkerhed mod det som hedder injections, dette kan du læse mere om her: http://da.wikipedia.org/wiki/SQL_injection

Det næste jeg vil anbefale dig er at gøre brug af en sqlmanager class til at holde styr på din sql forbindelse så du altid er sikker på det er den rigtige du rammer.

som det trejde vil jeg anbefale dig til ikke at slå mail adresen op først men lave dit sql kald hvor du kontrollere om der er en bruger hvor mail og password stemmer. da det andet er en klar sikkerheds risiko da du giver folk udefra mulighed for at finde frem til din admin konto.

Her udover kan jeg ikke lige få overblik over hvilken af dine koder der er den du ren faktisk bruger.

Mvh
Mark S. Johansen



jeg tror du skal kigge lidt på, hvordan man laver SQL kald og validere login ... der er jo intet af det du har lavet der virker :D

Hvad mener du helt?



Indlæg senest redigeret d. 04.04.2012 16:25 af Bruger #17136
I det første kode eksempel, der henter du $id fra session laver et sql kald med det id uden, at tænke på sql injektions eller noget. Derefter siger du if($id) .... Men if $id hvad ... Om den er sat er den korrekt? Hvad med sql kaldet?


ja Jeg kan godt se hvad du mener og jeg er kommet frem til det her;

og det virker 100%

Fold kodeboks ind/udPHP kode 




jaja Mads jeg ved det godt, at de ting jeg ikke nævnte var de bedste eksempler jeg kender skam fint PHP.

Det er rigtigt SESSIONS ikke umiddelbart indeholder usikker data. Men det ændre ikke på han skal beskytte imod sql injection de andre steder hvor han foretager SQL kald.

if($id) virker fint.. ja, men hvad med if($sql) i eksempel 2? Checker den ikke kun om kaldet lykkeds(!) og ikke om hvad svaret var?!.

Som sagt, mine eksempler var måske ikke de bedste jeg fik fremhævet, men jeg var måske også lidt for hurtig om, at svare. Det ændre dog ikke på det faktum, at han bør gennemgå sin kode og kigge lidt mere på hvordan han kan optimere den.



I det første kode eksempel, der henter du $id fra session laver et sql kald med det id uden, at tænke på sql injektions eller noget. Derefter siger du if($id) .... Men if $id hvad ... Om den er sat er den korrekt? Hvad med sql kaldet?



t