Op die manier krijg je niet toelichting1 etc maar 1toelichting 2toelichting...behalve dat, wat ben je in vredesnaam aan het doen?quote:Op dinsdag 29 november 2005 11:57 schreef Desdinova het volgende:
ik heb 3 waardes per 'show'. dus toelichting1, toelichting2, en toelichting3 bijv.
quote:Op dinsdag 29 november 2005 13:00 schreef Jimmy het volgende:
Ik weet niet wat je precies probeert te bereiken met je code, maar het ziet er heel erg vies uit.
1 2 3 4 5 6 7 8 9 10 11 12 13 | switch ($_GET['show']) { case "link1": echo $link1toelichting; break; case "link2": echo $link2toelichting; break; case "link3": echo $link3toelichting; break; } ?> |
Nee! Imho is het zeer smerig om namen van variabelen te gaan 'constructen' en deze vervolgens ook nog eens in een andere variabele te zettenquote:
1 2 3 4 5 6 7 8 9 10 11 12 | switch($show){ case "link1": $tekst = "De tekst die bij link1 hoort."; break; case "link2": $tekst = "De tekst die bij link2 hoort."; break; case "link3": $tekst = "De tekst die bij link3 hoort."; break; case "link4": $tekst = "De tekst die bij link4 hoort."; break; } |
You teh man!quote:Op dinsdag 29 november 2005 13:46 schreef DionysuZ het volgende:
Ten tweede: maak ipv variabelen $link1toelichting, $link2toelichting etc. een array $toelichting.
dit dusquote:Op dinsdag 29 november 2005 13:43 schreef JeRa het volgende:
[..]
Nee! Imho is het zeer smerig om namen van variabelen te gaan 'constructen' en deze vervolgens ook nog eens in een andere variabele te zetten
Waarom niet dit?
gegevens.php:
$toelichting = array();
$toelichting['link1'] = 'Blaat, blaat';
$toelichting['link2'] = 'Blawap!';
-etc-
en dan doe je vervolgens:
require('gegevens.php');
$show = $_GET['show'];
if (in_array($show, $toelichting)) {
echo $toelichting[$show];
}dit kun je zo uitgebreid maken als je wil.
Sow what? Is je php editor vol ofzoquote:Op dinsdag 29 november 2005 13:56 schreef Desdinova het volgende:
een switch wordt te groot. zoals ik al zei heb ik nu 6 regels voor 12 items ofzo. met een switch wordt dat dus zoiezo al 3 per item (toekomst, geschiedenis en toelichting), excl. de switch code zelf.
totdat je een keer een var in een query gebruikt en ze je database tabel droppen via sql injection en je al je gegevens kwijt bent. Moeten ze maar niet klotenquote:dat ze zelf de show kunnen invullen maakt mij geen drol uitwaarom zou je dat willen? als de ingegeven show niet bestaat wordt er niks weergegeven, moet je maar niet kloten
Hij staat eral. Wat moet je nog prutsen dan?quote:die array lijkt ook wel te werken en is korter, maar dat soort code kan ik zelf nog niet bij mekaar prutsenmisschien dat ik hem wel gebruik. ik heb er iig van geleerd
1 2 3 4 5 6 7 8 9 10 11 12 13 | switch ($_GET['show']) { case "link1": echo $link1toelichting.'<br />'.$link1geschiedenis.'br />.'$link1toekomst; break; case "link2": echo $link2toelichting.'<br />'.$link2geschiedenis.'br />.'$link2toekomst; break; case "link3": echo $link3toelichting.'<br />'.$link3geschiedenis.'br />.'$link3toekomst; break; } ?> |
Dit kan toch ook makkelijk in een lus als je regels wilt besparen?quote:Op dinsdag 29 november 2005 14:02 schreef Swetsenegger het volgende:
En als je bedoelt dat je PER link meerdere teksten hebt:
[ code verwijderd ]
LET OP!!! dit is alleen de switch code en nog GEEN controlle op userinput
Uietraard, maar voor de uitleg leek het me eenvoudiger om het uit te schrijvenquote:Op dinsdag 29 november 2005 14:06 schreef the_disheaver het volgende:
[..]
Dit kan toch ook makkelijk in een lus als je regels wilt besparen?
En ipv direct de variable te echo'en, een variable instellen die je uiteindelijk echo'ed in een pagina.
Ok, er zeggen hier 4 personen dat je huidige code niet de juiste weg is. Leer je al wat?quote:Op dinsdag 29 november 2005 14:06 schreef Desdinova het volgende:
ik post hier om te lerenniet om jullie code klakkeloos over te nemen.
Die teksten heb je toch al gedefinieerd. Het gaat nu slechts om het op beeld toveren van die tekstenquote:Ik heb 12 links. en per link 3 teksten. dus dan defineer ik 36 strings. en dat lijkt me geen goed plan.
Want de kortste code is altijd de bestequote:is mn php editor vol, nee. ga ik 36 regels coden ipv 6? nee.
Als ik met een var uit $get gegevens uit een database kan halen, kan ik ook MEER gegevens uit een database halen dan dat jij eigenlijk voor ogen hebt. Ook als je per database connectie dingen dichttimmert.quote:in SQL kan je de bevoegdheden aangeven per database connectie, dus daar zie ik ook geen problemen in.
Omdat je vars gaat constructen. Het is onoverzichtelijk en dus foutgevoelig. Ik vraag me af of je er zelf nog uitkomt als je over een jaar een extra omschrijving wilt toevoegen aan een linkjequote:En waarom was mijn code ook alweer fout gevoelig?
Ik had ook nog wat zaken toegevoegd. Belangrijkste is wel dat er mischien gegevens getoont worden, welke je niet wilt tonen.quote:Op dinsdag 29 november 2005 14:09 schreef DionysuZ het volgende:
Een table droppen is niet het enige dat kan met sql injectie. De mogelijkheden zijn eindeloos.
Ik snap niet zo goed waarom je hier nog userinput moet controlleren?quote:Op dinsdag 29 november 2005 14:02 schreef Swetsenegger het volgende:
En als je bedoelt dat je PER link meerdere teksten hebt:
[ code verwijderd ]
LET OP!!! dit is alleen de switch code en nog GEEN controlle op userinput
In dit specifieke geval is een default statement in de switch voldoende inderdaad. Maar dat is toch OOK een versie van userinput controlle eigenlijkquote:Op dinsdag 29 november 2005 14:13 schreef ikke_ook het volgende:
[..]
Ik snap niet zo goed waarom je hier nog userinput moet controlleren?
Je kunt hier toch een Default toevoegen die afvangt als het iets anders is?
-edit-
In dit specifieke geval he!!Ik hoef niet te horen wat er allemaal met sql-injectie ed kan gebeuren, want dat weet ik wel
OKquote:Op dinsdag 29 november 2005 14:17 schreef Swetsenegger het volgende:
[..]
In dit specifieke geval is een default statement in de switch voldoende inderdaad. Maar dat is toch OOK een versie van userinput controlle eigenlijk.
De booschap is nooit userinput te vertrouwen en het altijd zo te coden dat je een fallback hebt wanneer de userinput niet aan je verwachtingen voldoet. Een default value in je switch statement indien je case 'none of the above' is is prima natuurlijk.
ik zei toch dat ik t van die array had geleerd?quote:Op dinsdag 29 november 2005 14:12 schreef Swetsenegger het volgende:
[..]
Ok, er zeggen hier 4 personen dat je huidige code niet de juiste weg is. Leer je al wat?
Dat maakt niet uit, het zijn alsnog veel regels dus 1 update resulteert in 36x de aanpassingquote:[..]
Die teksten heb je toch al gedefinieerd. Het gaat nu slechts om het op beeld toveren van die teksten
Dat zeg ik niet, maar 36 of 6 vind ik interessant genoeg om te gaan voor 6.quote:[..]
Want de kortste code is altijd de beste. Ga er nog maar eens goed over nadenken.
mja maar een database is hier niet van toepassing, dus het maakt in dit geval zoiezo niet uit.quote:[..]
Als ik met een var uit $get gegevens uit een database kan halen, kan ik ook MEER gegevens uit een database halen dan dat jij eigenlijk voor ogen hebt. Ook als je per database connectie dingen dichttimmert.
Het voordeel is dat 1 aanpassinkje een regel of 2 is, en een 4e tekstdeel is zo te creeeren door gewoon het stukje code te kopieren en overal 'toelichting' te wijzigen in de nieuwe naamquote:[..]
Omdat je vars gaat constructen. Het is onoverzichtelijk en dus foutgevoelig. Ik vraag me af of je er zelf nog uitkomt als je over een jaar een extra omschrijving wilt toevoegen aan een linkje.
Je gebruikt de verkeerde argumenten voor de kortere code. Namelijk alleen 'korter'quote:Op dinsdag 29 november 2005 14:21 schreef Desdinova het volgende:
[..]
ik zei toch dat ik t van die array had geleerd?die ga ik de volgende keer wel gebruiken
[..]
Dat maakt niet uit, het zijn alsnog veel regels dus 1 update resulteert in 36x de aanpassing
[..]
Dat zeg ik niet, maar 36 of 6 vind ik interessant genoeg om te gaan voor 6.
Doe me een lol en stel hier geen vragen meer, als je te eigenwijs bent om dingen aan te nemenquote:mja maar een database is hier niet van toepassing, dus het maakt in dit geval zoiezo niet uit.
Het voordeel is dat 1 aanpassinkje een regel of 2 is, en een 4e tekstdeel is zo te creeeren door gewoon het stukje code te kopieren en overal 'toelichting' te wijzigen in de nieuwe naam
ik gaf al eerder toe dat die array beter is, maar het is voor nu ff overbodige luxe. Volgens mij kan deze code namelijk niet fout gaan, tenzij je zelf in je $get kloot, maar dan is t je eigen schuld.
toch?
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |