Paar vragen!

  • Beste Cp'ers,


    Ik heb hier en daar al aardig wat code gezien, en ben het een beetje verloren wat nu echt moet, en wat totaal niet meer kan.


    Zo heb ik een vendetta script bekeken, en daar staat alles dus zo:


    PHP
    if($data->status == dood OR $data->status == Dood)  {
    	$dood = mysql_query("SELECT * FROM `vermoord` WHERE `login`='{$data->login}'");


    Allebei de dingen die ik graag wil weten zitten toevallig bij elkaar in hetzelfde script.


    Is het nou het bovenstaande, of is het juist dit:

    PHP
    if($data->status == "dood" OR $data->status == "Dood")  {
    	$dood = mysql_query("SELECT * FROM `vermoord` WHERE `login`='" .$data->login. "'");


    En hoe kan ik de mysql_query verbeteren?
    Want ik zie velen scripters niet met `vermoord` `login` e.d. werken.


    Dit is gewoon een vraag om te weten te komen wat beter is voor mijn scripting, om wat professioneler te worden.


    PS: Ikzelf heb dit stukje opnieuw geschreven, wat vinden jullie hiervan?



    Kritiek welkom :)!


    Bij voorbaat dank!
    Lancer.

  • Guest, wil je besparen op je domeinnamen? (ad)
  • De tweede snippet is beter.
    Die geeft geen notices en door de variablen buiten quotes te halen kun je gemakkelijker variable in strings herkennen.


    Nog beter:

    PHP
    if(strtolower($data->status) == "dood")  { 
        $dood = mysql_query("SELECT * FROM `vermoord` WHERE `login`='" .mysql_real_escape_sring($data->login). "'");


    PS. Ik zou de accolades niet hun eigen niveau geven, en ook na elke punt-komma een enter plaatsen:


    Ok, ik heb nog wat meer dingen verbeterd, maar zo vind ik het behoorlijk wat netter.

  • Dus ik moet een if zoals deze:

    PHP
    if ($jisin == 1)


    nooit tussen "" zetten?


    Enter na een ; kan ik begrijpen!


    strtolower maakt dus de gehele naam naar kleine letters?
    Dus Lancer naar lancer, klopt dit?


    Waarom zou ik de accolades geen eigen niveau geven?
    Opzich is jou script een stuk overzichtelijker omdat alles onder elkaar staat, en de mijne is een weerwar...


    Bedankt voor de uitleg, maar ik kamp nog met 1 ding!
    Is er geen andere manier om alle $data->login e.d. te beveiligen met een mysql_real_escape_string?


    Of kan ik dit beter handmatig blijven doen, omdat ik dan weet dat het functioneert?


    PS: Beveiling moet ik inderdaad nog doen!
    PSS: Ik dacht dat beveiling zoals mysql_real_escape_string alleen bij POST's en GET's moest?


    Bedankt Darsstar!

  • Citaat van Lancer

    Dus ik moet een if zoals deze:

    PHP
    if ($jisin == 1)


    nooit tussen "" zetten?


    Cijfers zijn cijfers en geen strings en hoeven daardoor niet tussen quotes.


    Citaat van Lancer

    strtolower maakt dus de gehele naam naar kleine letters?
    Dus Lancer naar lancer, klopt dit?


    Dat klopt.


    Citaat van Lancer

    Waarom zou ik de accolades geen eigen niveau geven?
    Opzich is jou script een stuk overzichtelijker omdat alles onder elkaar staat, en de mijne is een weerwar...


    Daarom dus, ik zie de accolades trouwens liever op de zelfde regel als de if, elseif en else dan op hun eigen niveau (maar het liefst zoals in mijn voorbeeld, maar smaak valt niet te twusten)


    Citaat van Lancer

    Ik dacht dat beveiling zoals mysql_real_escape_string alleen bij POST's en GET's moest?


    Ik weet niet aan welke voorwaarden de login van jouw spel hangen.
    Als (bijvoorbeeld) quots toegestaan zijn, en je gebruikt alleen bij het registreren mysql_real_escape_string() dan is je spel niet bepaald veilig...
    Je moet user input beveiligen, en de login was ooit user input...
    Ik ben vanavond een beetje paranoia volgens mij...

Participate now!

Heb je nog geen account? Registreer je nu en word deel van onze community!