27 berichten aan het bekijken - 1 tot 27 (van in totaal 27)
  • Q:
    Bijdrager
    wdele

    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.php

    Echter 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=naam3

    En 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,
    William

    Bijdrager
    Wyodor

    Kijk 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):

    http://home.wyodor.net/demoos/WebSession/BettyBoop.html

    http://home.wyodor.net/demoos/WebSession/Admin.html

    Bijdrager
    wdele
    Wyodor op 16 juni 2013

    Kijk 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):

    http://home.wyodor.net/demoos/WebSession/BettyBoop.html

    http://home.wyodor.net/demoos/WebSession/Admin.html

    Hartstikke bedankt, Wyodor!;)

    Maar hoe wordt de user dan gedefined?

    Bijdrager
    Anoniem ex-lid
     
    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
     
    }
     
    Bijdrager
    wdele

    Maar de user wordt dan geredirect naar bijvoorbeeld http://website.nl/redirect.php?result=niels, maar hoe maak ik zo’n pagina?

    Bijdrager
    Anoniem ex-lid

    redirect.php?result=niels (al is het bij form $_POST btw)
    dus redirect.php

    Select database evt. where naam == “.$_POST[‘naam’].”; (ofzoiets)
    anders Select database evt. where naam == “.$_GET[‘naam’].”; (ofzoiets bij redirect.php?result=niels)

    Bijdrager
    Wyodor
    Bijdrager
    Jakko Westerbeke
    wdele op 16 juni 2013

    Echter 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=naam3

    Vervang 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";
    Bijdrager
    wdele

    Ik wist niet dat het maken van een pagina zoals http://hallo.nl/wachtwoord?ditishetwachtwoord zo moeilijk is!

    Bijdrager
    Stirf

    Ach, je weet nog zoveel niet.

    Bijdrager
    Anoniem ex-lid
    wdele op 16 juni 2013

    Ik 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

    Bijdrager
    wdele
    Stirf op 16 juni 2013

    Ach, 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:D

    Bijdrager
    Anoniem ex-lid
    wdele op 16 juni 2013
    Stirf op 16 juni 2013

    Ach, je weet nog zoveel niet.

    Nope. Maar veel wel;)

    Nee, je DENKT dat je veel weet, dat is wat anders.

    Bijdrager
    Fingerlicking

    Ooooooo… Niet weer de zelfde discussie he?!

    Bijdrager
    tinus_omt

    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.

    Bijdrager
    Koning Frank
    wdele op 16 juni 2013
    Stirf op 16 juni 2013

    Ach, je weet nog zoveel niet.

    Nope. Maar veel wel;)

    Als je verder kijkt dan je neus lang is, dan zie je dat veel sites werken met GET variablen in hun URL. Bv deze pagina?
    Verder weet je de basis van de basis, niet veel.

    Bijdrager
    Anoniem ex-lid
    tinus_omt op 17 juni 2013

    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.

    En in welk voorbeeld van mij, krijg je een sql injection dan …?

    Bijdrager
    Koning Frank
    MEEUW op 16 juni 2013
     
    If (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

    Lid
    lEl

    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.

    Bijdrager
    Fingerlicking

    Wel grappig dat een moderator van OMT het over sql injection heeft..

    Bit.ly doet het niet meer…

    Bijdrager
    Koning Frank

    Want het heeft niks met elkaar te maken?

    Bijdrager
    Fingerlicking

    Comment bij de link is verwijderd.. Stond een comment van een persoon met zonder account..

    Bijdrager
    Koning Frank

    Dus? Ik zie het verband niet helemaal. Het account van bot was gewoon verwijderd. Dit heeft helemaal niks met een sql injection te maken.

    Bijdrager
    Fingerlicking

    Dus…….

    Bijdrager
    tinus_omt
    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.

    Bijdrager
    Anoniem ex-lid

    Ja das wel zo. ik ging eigenlijk vanuit simpel form, zonder sql en alleen de naam zie. Omdat de TS met get wou gaan werken.

    Bijdrager
    neals

    Of bespaar jezelf nog meer ellende, en duik in een framework zoals Codeigniter of Laravel, en leer fatsoenlijk in MVC te schrijven.

27 berichten aan het bekijken - 1 tot 27 (van in totaal 27)

Je moet ingelogd zijn om een reactie op dit onderwerp te kunnen geven.