-
Q:
Nog een PHP vraagje
Beste OMT’ers,
Ik heb een form en op basis van de content in dat form wordt de gebruiker doorgestuurd. Nu heb ik drie aparte pagina’s:
If result = naam1
redirect = naam1.php
If result = naam2
redirect = naam2.php
If result = naam3
redirect = naam3.phpEchter wil ik nu dat het zo gaat:
If result = naam1
redirect = redirect.php?result=naam1
If result = naam2
redirect = redirect.php?result=naam2
If result = naam3
redirect = redirect.php?result=naam3En dan natuurlijk dat naam1, naam2 en naam3 ieder andere content krijgen te zien.
Alleen ik weet niet hoe dit heet en hoe dit moet… iemand een idee?
Alle hulp is erg gewaardeerd!
Bedankt,
WilliamKijk hier eens :
http://home.wyodor.net/demoos/WebSession/data/sessioninclude.txt
Dan zie je dit :
if ( $user == $BettyUser ) { header('Location: ' . $BettyPage ); exit; } // removed else if if ( !($user == $AdminUser) ) // Everybody else { header('Location: ' . $NoAccessPage ); exit; } }
Hier toegepast (wel goeie naam en wachtwoord invullen):
Wyodor op 16 juni 2013Kijk hier eens :
http://home.wyodor.net/demoos/WebSession/data/sessioninclude.txt
Dan zie je dit :
if ( $user == $BettyUser ) { header('Location: ' . $BettyPage ); exit; } // removed else if if ( !($user == $AdminUser) ) // Everybody else { header('Location: ' . $NoAccessPage ); exit; } }
Hier toegepast (wel goeie naam en wachtwoord invullen):
Hartstikke bedankt, Wyodor!
Maar hoe wordt de user dan gedefined?
If (naamresult1 == $_POST['naam']){ redirect = redirect.php?result=$_POST['naam']; }elseif (naamresult2 == $_POST['naam']){ redirect = redirect.php?result=$_POST['naam']; }elseff (naamresult3 == $_POST['naam']){ redirect = redirect.php?result=$_POST['naam']; }else{ form }
Maar de user wordt dan geredirect naar bijvoorbeeld http://website.nl/redirect.php?result=niels, maar hoe maak ik zo’n pagina?
Dit is de login script :
http://home.wyodor.net/demoos/WebSession/data/login_msql.txt
Text en uitleg van al dit fraais :
wdele op 16 juni 2013Echter wil ik nu dat het zo gaat:
If result = naam1
redirect = redirect.php?result=naam1
If result = naam2
redirect = redirect.php?result=naam2
If result = naam3
redirect = redirect.php?result=naam3Vervang al dat door
$redirect = "redirect.php?result=$result";
Eventueel met een if() ervoor om ongeldige resultaten af te vangen. Iets als:
$geldig = array("naam1", "naam2", "naam3"); if(in_array($result, $geldig)) $redirect = "redirect.php?result=$result"; else $redirect = "ongeldig.html";
Ik wist niet dat het maken van een pagina zoals http://hallo.nl/wachtwoord?ditishetwachtwoord zo moeilijk is!
wdele op 16 juni 2013Ik wist niet dat het maken van een pagina zoals http://hallo.nl/wachtwoord?ditishetwachtwoord zo moeilijk is!
http://hallo.nl/wachtwoord?ditishetwachtwoord < zo krijg je een sql injection….. of een ddos aanval
Stirf op 16 juni 2013Ach, je weet nog zoveel niet.
Nope. Maar veel wel
http://hallo.nl/wachtwoord?ditishetwachtwoord < zo krijg je een sql injection….. of een ddos aanval
Is ook niet veilig
Let in ieder geval op dat je niet zomaar dingen die van het internet komen in je database opdrachten gaat plakken, zoals in de voorbeelden van MEEUW, want dan heb je SQL injection en dan word je gehackt.
Als je het systeem van naam1=waarde1 gebruikt kun je de waarde terug vinden in $_GET[‘naam1’]. Als je dat niet gebruikt kun je ook gewoon alles achter ? terug vinden in $_SERVER[‘QUERY_STRING’].
Als je daar niet uitkomt raad ik je aan om op internet even te zoeken naar een php tutorial of zo waarin ze de basisbeginselen uitleggen.
tinus_omt op 17 juni 2013Let in ieder geval op dat je niet zomaar dingen die van het internet komen in je database opdrachten gaat plakken, zoals in de voorbeelden van MEEUW, want dan heb je SQL injection en dan word je gehackt.
Als je het systeem van naam1=waarde1 gebruikt kun je de waarde terug vinden in $_GET[‘naam1’]. Als je dat niet gebruikt kun je ook gewoon alles achter ? terug vinden in $_SERVER[‘QUERY_STRING’].
Als je daar niet uitkomt raad ik je aan om op internet even te zoeken naar een php tutorial of zo waarin ze de basisbeginselen uitleggen.
En in welk voorbeeld van mij, krijg je een sql injection dan …?
MEEUW op 16 juni 2013If (naamresult1 == mysql_real_escape_string($_POST['naam'])){ redirect = redirect.php?result=$_POST['naam']; }elseif (naamresult2 == mysql_real_escape_string($_POST['naam'])){ redirect = redirect.php?result=$_POST['naam']; }elseff (naamresult3 == mysql_real_escape_string($_POST['naam'])){ redirect = redirect.php?result=$_POST['naam']; }else{ form }
Zo. Verholpen. En zolang je geen database hebt runnen boeit het niet
Hmm, je zou toch ook nog beter nog prepared statements gebruiken. Dat versnelt het meervuldig gebruik van dezelfde query met afwijkende parameters.
Maar inderdaad, zolang je niet in je database zit te neuzen heb je geen SQL injections… Eerder code injections, maar das weer wat anders.MEEUW op 16 juni 2013…
Select database evt. where naam == “.$_POST[‘naam’].”; (ofzoiets)
anders Select database evt. where naam == “.$_GET[‘naam’].”; (ofzoiets bij redirect.php?result=niels)Dan krijg je dus SQL injection. Ga niet zitten klungelen met mysql_real_nog_realer_really_escape_string en aanverwanten, gebruik prepared statements, dan houd je de code en de gegevens uit elkaar en dan kunnen je gegevens niet ineens code worden.
Je moet ingelogd zijn om een reactie op dit onderwerp te kunnen geven.