Toon posts:

[php] overbodige of slordige code

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik zit ff te kloten en ben echt toe aan vakantie.
Maar jongens, dit kan toch veel korter of niet?!

PHP:
1
2
3
4
5
6
if($HTTP_POST_VARS["operator"]!="") {
   $operator = $HTTP_POST_VARS["operator"];
} elseif($HTTP_GET_VARS["operator"]!=""{
   $operator = $HTTP_GET_VARS["operator"];
} else {
   $operator = "OR" }


Helaas ondersteund de server nog geen $_POST en $_GET;

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 28-08 12:00

Janoz

Moderator Devschuur®

!litemod

korter? Mischien is ietsje langer beter. Ik zou zelf nog een isset toevoegen eigenlijk.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

zie geen reden om dit korter te maken....?

Verwijderd

Topicstarter
omdat het er vrij slordig uit ziet als ik dit voor 25 variabelen moet gaan doen.
Hoewel ik het dan natuurlijk in een functie zou kunnen plaatsen.

Verwijderd

Ik zou er zoiets van maken:
PHP:
1
2
3
if(isset($HTTP_POST_VARS["operator"]))    $operator = $HTTP_POST_VARS["operator"]; 
elseif(isset($HTTP_GET_VARS["operator"])) $operator = $HTTP_GET_VARS["operator"]; 
else                                      $operator = "OR";

Ik geef hier de voorkeur aan omdat het een hoop {} geklooi scheelt, dat vind ik persoonlijk leesbaarder. Ook zou ik de " vervangen door ' maar omdat de php parser daar hier moeilijk overdoet heb ik ze maar even laten staan.

offtopic:
Je krijgt met jou code bovendien een parse error op lijntje 3 vanwege een ) die je vergeten bent. :o

  • Skate2000
  • Registratie: November 1999
  • Laatst online: 29-12-2024
Volgens mij is het gewoon OK, ik zou het zo laten staan.. :)

Verwijderd

Topicstarter
ah die van Daniel is ook wel netjes hoor!

Verwijderd

Ja he? :D

Verwijderd

je kunt wel iets met foreach doen denk ik (als je het met 25 vars moet doen), lees dan in het begin een array in met je eigen keys (dus bijvoorbeeld $keys["operator"] = "none") dan kan je die gebruiken om te kijken of je alles hebt...

  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02-2025

SchizoDuckie

Kwaak

volgens mij moet ie zo (in verkortte if mode)

PHP:
1
$operator = (!empty($HTTP_POST_VARS["operator"])) ? $HTTP_POST_VARS["operator"] : (!empty($HTTP_GET_VARS["operator"])) ? $HTTP_GET_VARS["operator"] : "OR";


korte if structuur in php is :9

ff voor de duidelijkheid:

PHP:
1
$waarde = (expressie) ? true actie : false actie;


dus bijvoorbeeld:

PHP:
1
$tweaker = ($nerd == true && $contactgestoord == true) ? true : false;

Stop uploading passwords to Github!


  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
waarom accepteer je die zut sowieso uit de GET en uit de POST parameters? Kun je niet gewoon een normale strakke interface definieëren?

  • thomaske
  • Registratie: Juni 2000
  • Laatst online: 14-07 14:28

thomaske

» » » » » »

PHP:
1
2
$operator = "OR";
if (isset($_REQUEST["operator"])) $operator = $_REQUEST["operator"];


:)

hmmz.. werkt natuurlijk alleen maar als er superglobals zijn..

Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."


Verwijderd

zo heb je er later nog vaker lol van:

function GetVar($name, $default = "") {
if (isset($HTTP_POST_VARS[$name])) return $HTTP_POST_VARS[$name];
if (isset($HTTP_GET_VARS[$name])) return $HTTP_GET_VARS[$name];
return $default;
}

$operator = GetVar("operator", "OR"));

Verwijderd

Topicstarter
Waar slaat dat van een strakke interface nou op?!


Het gaat om het volgende namelijk:

Ik heb een formulier met een x-aantal velden.
De waardes van de velden dienen voor het zoeken in een database.

De method van dit formulier is post.

Zoekresultaten kunnen over meerdere pagina's verspreid worden.
Dus als ik naar een volgende / vorige pagina ga, moeten de zoekvariabelen weer meegegeven worden. Dit doe ik door get-variabelen in een url mee te geven.

Ik zou ook het formulier als method get kunnen gebruiken, maar dat vind ik niet zo netjes.

Een resultatenpagina moet dus zowel post- als getvariabelen kunnen verwerken.

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 01-09 13:54

Crazy D

I think we should take a look.

Verwijderd schreef op 04 september 2002 @ 23:52:
Ik heb een formulier met een x-aantal velden.
De waardes van de velden dienen voor het zoeken in een database.

De method van dit formulier is post.
Je zou de methode van het formpje ook get kunnen maken... :)

Exact expert nodig?


  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Papa Eend:
PHP:
1
$tweaker = ($nerd == true && $contactgestoord == true) ? true : false;
Een echte tweaker schrijft dat gewoon zo ;) :
PHP:
1
$tweaker = $nerd == true && $contactgestoord == true

Deze eigenschap van een tweaker kan ik dan weer gaan uitdrukken in zo'n conditionele expressie, maar dat laat ik maar even zitten ;) .

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • Grum
  • Registratie: Juni 2001
  • Niet online
Verwijderd schreef op 04 september 2002 @ 23:52:
Dus als ik naar een volgende / vorige pagina ga, moeten de zoekvariabelen weer meegegeven worden. Dit doe ik door get-variabelen in een url mee te geven.

Ik zou ook het formulier als method get kunnen gebruiken, maar dat vind ik niet zo netjes.
Gebruik post & hidden form-vars/sessions.

  • Rotjeknor
  • Registratie: April 2001
  • Laatst online: 03-02 15:29
mbravenboer schreef op 05 september 2002 @ 10:55:
[...]

Een echte tweaker schrijft dat gewoon zo ;) :
PHP:
1
$tweaker = $nerd == true && $contactgestoord == true

Deze eigenschap van een tweaker kan ik dan weer gaan uitdrukken in zo'n conditionele expressie, maar dat laat ik maar even zitten ;) .
Uhm, waarom true erachter?
PHP:
1
$tweaker = $nerd && $contactgestoord;

(-:

Ook Knor is aangestoken met het ligfietsvirus!


Verwijderd

Grum schreef op 05 september 2002 @ 10:58:
[...]


Gebruik post & hidden form-vars/sessions.
offtopic:
Het gebruik van get-variabelen is juist van belang in je interface zodat users ook direkt een url in kunnen typen met de locatie waar ze naartoe willen. Als je die data in hidden inputs gaat knallen blijft je urrel er misschien wel mooi uitzien, maar ben je dat stukje functionaliteit kwijt.

  • goalgetter
  • Registratie: Juni 1999
  • Laatst online: 25-08 15:24
Euhmz... Waarom check je niet gewoon de REQUEST_METHOD?

PHP:
1
2
3
4
5
6
7
8
9
10
11
if ($REQUEST_METHOD == "GET")
{
  $array = $HTTP_GET_VARS;
}
elseif ($REQUEST_METHOD == "POST")
{
  $array = $HTTP_POST_VARS;
}
$operator = $array["operator"];
$blaat = $array["blaat"];
//etc...

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 01-09 13:54

Crazy D

I think we should take a look.

Verwijderd schreef op 05 september 2002 @ 23:08:
offtopic:
Het gebruik van get-variabelen is juist van belang in je interface zodat users ook direkt een url in kunnen typen met de locatie waar ze naartoe willen. Als je die data in hidden inputs gaat knallen blijft je urrel er misschien wel mooi uitzien, maar ben je dat stukje functionaliteit kwijt.
Heb je gelijk in, maar waarom dan ook nog klooien met post, en niet alles via get doen.

Exact expert nodig?


  • netiul
  • Registratie: December 2001
  • Laatst online: 31-08 11:33
Persoonlijk vind ik de de meest duidelijke code :P:

PHP:
1
2
3
4
5
6
if(!empty($HTTP_POST_VARS["operator"])) 
   $operator = $HTTP_POST_VARS["operator"];
elseif(!empty($HTTP_GET_VARS["operator"])
   $operator = $HTTP_GET_VARS["operator"];
else
   $operator = "OR";

[ Voor 0% gewijzigd door netiul op 06-09-2002 10:00 . Reden: ff brackets wegdoen :) ]


  • supakeen
  • Registratie: December 2000
  • Laatst online: 09-09-2025
Kun je niet gewoon
PHP:
1
2
3
4
5
$var = POST["bla"];
//om iets dat gepost is te pakken

$var = GET["bla"];
//om iets uit de url te pakken

heb lang niet meergephped :P

Verwijderd

Crazy_D schreef op 06 september 2002 @ 01:09:
[...]

Heb je gelijk in, maar waarom dan ook nog klooien met post, en niet alles via get doen.
offtopic:
Wil jij dan gevoelige (passwords) / onbelangrijke (waarden van zojuist gesubmitte veldnamen) / vaste (datum en tijd in hidden field) informatie ook vrolijk via GET laten lopen, zodat iedereen vrij is ook die te veranderen? Nee natuurlijk wil je dat niet.

  • Sjaaky
  • Registratie: Oktober 2000
  • Laatst online: 22-08 16:45
offtopic:
Wil jij dan gevoelige (passwords) / onbelangrijke (waarden van zojuist gesubmitte veldnamen) / vaste (datum en tijd in hidden field) informatie ook vrolijk via GET laten lopen, zodat iedereen vrij is ook die te veranderen? Nee natuurlijk wil je dat niet.
POST data kan je net zo goed faken. GET is het alleen iets makkelijker.

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 01-09 13:54

Crazy D

I think we should take a look.

Verwijderd schreef op 06 september 2002 @ 11:17:
offtopic:
Wil jij dan gevoelige (passwords) / onbelangrijke (waarden van zojuist gesubmitte veldnamen) / vaste (datum en tijd in hidden field) informatie ook vrolijk via GET laten lopen, zodat iedereen vrij is ook die te veranderen? Nee natuurlijk wil je dat niet.
Nee uiteraard niet, maar ik doelde vooral op dit probleem. Als je, bij de search, de "vorige" en "volgende" linkjes met get doet, staat er dus geen sensitive info in (geen wachtwoord bv) dus zie ik niet in waarom je dan het search formulier een post laat doen, om later via get dezelfde info mee te geven. Dan zou ik die search-form ook via get afhandelen.

Exact expert nodig?


  • Apollo_Futurae
  • Registratie: November 2000
  • Niet online
offtopic:
extreem van het onderwerp af:

[quote]The rusted chains of prison moons are shattered by the sun.
I walk a road, horizons change the tournament's begun.
The purple piper plays his tune, the choir softly sing;
Three lullabies in an ancient tongue, for the court of the crimson kin[/quote]

Nog een King Crimson fan? :)

KC roeleerdt 8)

Pas de replâtrage, la structure est pourrie.


  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 23:53
Rotjeknor schreef op 05 september 2002 @ 22:40:
Uhm, waarom true erachter?
(-:
Omdat dat netter is.

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 02:09
Bloated code is naar mijn mening niet netter. Wanneer je veel code moet doorlezen zijn dit soort zinloze toevoegingen ontzettend irritant. Verduidelijkingen waar relevant zijn natuurlijk prima, maar wanneer je de &&-operator gebruikt, moeten de twee argumenten wel boolean variables zijn. Ze expliciet als booleans evalueren is dus volstrekt nutteloos.

Alleen de meest onervaren PHP programmeurs zal de betekenis van dergelijke constructies kunnen ontgaan.

  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 23:53
Soultaker schreef op 06 september 2002 @ 22:56:
Bloated code is naar mijn mening niet netter. Wanneer je veel code moet doorlezen zijn dit soort zinloze toevoegingen ontzettend irritant. Verduidelijkingen waar relevant zijn natuurlijk prima, maar wanneer je de &&-operator gebruikt, moeten de twee argumenten wel boolean variables zijn. Ze expliciet als booleans evalueren is dus volstrekt nutteloos.

Alleen de meest onervaren PHP programmeurs zal de betekenis van dergelijke constructies kunnen ontgaan.
Als jij heel veel code hebt, en je gaat zoeken naar die ene if-statement waar je iets op ja/nee wilt controleren, en je kunt zoeken op het woordje true, is dat lekker makkelijk. Mijn php-editor geeft het woordje true een aparte kleur, dus het zou mij meteen opvallen.

Verwijderd

Bullshit. Code moet lekker kort en bondig zijn, geen gezeik met extra trues en falses. Allemaal extra parsewerk. Bovendien vind ik het persoonlijk absoluut niet leesbaar.

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 01-09 13:54

Crazy D

I think we should take a look.

Een beetje parser heeft niet echt moeite met een extra == true, of een if die over 2 regels is uitgespreidt of zo... code moet imho vooral goed en duidelijk leesbaar zijn, het zijn mensen die de code later moeten doorlezen en aanpassen.... (maar daar is volgens mij in een ander topic alleens uitgebreider over gekletst).

Exact expert nodig?

Pagina: 1