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?
Tis niet de manier van Swets, het is jouw manier tegen de manier van 5 anderen in dit topic.quote:Op dinsdag 29 november 2005 14:32 schreef Desdinova het volgende:
word je altijd boos als het niet op jouw manier gaat?
ik bedoel kommop, het zit voor nu prima in elkaar, en het kan in principe niet fout gaan tenzij je zelf kloot (en dat doet de huistuinkeukengebruiker niet), en dat is alsnog goed af te vangen met
if (!$toelichting){} wanneer nodig.
ik heb toegegeven dat die array een goede optie is, en ik vind de switch geen goede optie.
wat is het probleem?
ik neem dingen aan, maar ik moet ze wel overtuigend genoeg vinden. Die switch loopen, kan vast, maar dat kan ik nog niet dus dat ga ik niet doen. Die array snap ik en is neergezet in duidelijke code dankzij Jera. Die kan ik zo overnemen wanneer ik wil, en dat ga ik ook doen in de toekomst.
Boos? Nee hoor, ik ben niet boos ik moet er alleen maar om lachen eigenlijk. Ik weet alleen dat ik jou niet meer ga proberen te helpen in de toekomst.quote:Op dinsdag 29 november 2005 14:32 schreef Desdinova het volgende:
word je altijd boos als het niet op jouw manier gaat?
Waarom kom je dan vragen stellen als je het zo prima voor elkaar hebtquote:ik bedoel kommop, het zit voor nu prima in elkaar, en het kan in principe niet fout gaan tenzij je zelf kloot (en dat doet de huistuinkeukengebruiker niet), en dat is alsnog goed af te vangen met
if (!$toelichting){} wanneer nodig.
What ever.quote:ik heb toegegeven dat die array een goede optie is, en ik vind de switch geen goede optie.
Eh, net begreep je de array nog niet, en nu is de array opeens 'duidelijke code'. En als je nog geen loopje in elkaar kan zetten, is er geen enkele manier om je te overtuigen omdat je het simpelweg niet begrijpt. Tevens is die switch gewoon af. Net zo goed als je eigen code is het copy/pasten en de varnamen aanpassen. Overigens maakt de switch of array niet veel uit. Beide zijn een stuk schoner dan je eigen code.quote:wat is het probleem?
ik neem dingen aan, maar ik moet ze wel overtuigend genoeg vinden. Die switch loopen, kan vast, maar dat kan ik nog niet dus dat ga ik niet doen. Die array snap ik en is neergezet in duidelijke code dankzij Jera. Die kan ik zo overnemen wanneer ik wil, en dat ga ik ook doen in de toekomst.
Beetje weinig infoquote:Op dinsdag 29 november 2005 16:15 schreef wobbel het volgende:
Iemand een kant-en-klaar script voor Sterrenbeelden?
Wat moet er gedaan worden met de sterrenbeelden?quote:Op dinsdag 29 november 2005 16:15 schreef wobbel het volgende:
Iemand een kant-en-klaar script voor Sterrenbeelden?
Als je van een datum een sterrenbeeld wilt krijgen, dan zal er via google vast wel wat te vinden zijn...quote:Op dinsdag 29 november 2005 16:15 schreef wobbel het volgende:
Iemand een kant-en-klaar script voor Sterrenbeelden?
Triest figuur.quote:Op dinsdag 29 november 2005 14:59 schreef Swetsenegger het volgende:
[..]
Boos? Nee hoor, ik ben niet boos ik moet er alleen maar om lachen eigenlijk. Ik weet alleen dat ik jou niet meer ga proberen te helpen in de toekomst.
En eerder in het topic:quote:Overigens maakt de switch of array niet veel uit.
Maakt het nou echt zoveel uit wat voor oplossing iemand kiest? Als er 4 goede manieren zijn aangedragen en er wordt er eentje van gekozen, moet je niet nog eens doordrammen en proberen jouw manier te forceren. Zelfinzicht hoort er ook bij als je anderen wilt helpen.quote:Mjah, gekut met een array zou ik ook niet doen. ... Bij uitstek een switch oplossing.
Nee, maar je kunt toch wel iets verzinnen?quote:Op dinsdag 29 november 2005 16:15 schreef wobbel het volgende:
Iemand een kant-en-klaar script voor Sterrenbeelden?
quote:
Eh ja, ik zou persoonhlijk voor een switch gaan, maar zoals gezegd is een array OOK een oplossing. Ik geef hier ook aan dat BEIDE oplossingen beter zijn dan de originele code. Dus wat is er niet duidelijk?quote:En eerder in het topic:
Eh, hij gebruikt GEEN van de aangedragen oplossingen. Zoals gezegd zijn ALLE aangedragen oplossingen beter dan dat wat hij (blijft) gebruiken. Lees het nog even rustig door.quote:Maakt het nou echt zoveel uit wat voor oplossing iemand kiest? Als er 4 goede manieren zijn aangedragen en er wordt er eentje van gekozen, moet je niet nog eens doordrammen en proberen jouw manier te forceren. Zelfinzicht hoort er ook bij als je anderen wilt helpen.
Timestamps gebruiken slaat nergens op, was foutjequote:Op dinsdag 29 november 2005 17:36 schreef DionysuZ het volgende:
@Jera
En dan ga je weer problemen krijgen bij veel PHP versies als je eerder geboren bent dan 1970?
Waar zie je dat? Hopelijk schrijft hij zelf een oplossing adhv de gegeven oplossingen, ipv de gegeven oplossingen te copy pasten.quote:Op dinsdag 29 november 2005 17:34 schreef Swetsenegger het volgende:
Eh, hij gebruikt GEEN van de aangedragen oplossingen. Zoals gezegd zijn ALLE aangedragen oplossingen beter dan dat wat hij (blijft) gebruiken. Lees het nog even rustig door.
Hoef je niet op te zoeken hoor. Feit is dat op elke betere manier die aangedragen is al wordt gecontroleerd op user input. Bovendien is er hier sprake van ofwel een switch ofwel array elementen, dus er kan weinig verkeerds voorkomen. In jouw geval was je bezig met SQL en daar zat gewoon een zware fout in (waar het minstens 2 pagina's duurde voordat het duidelijk werd).quote:En over drammen gesproken, moet ik nog even een conversatie van jouw opzoeken met betrekking tot het controleren van userinput? Waarbij je overigens terecht melde dat je dat wel moet doen. Nu dring ik aan op userinput controlle en dan ben ik 'een triest figuur' terwijl ik toen 'onvolledig' was. Make up your mind.
Waar staat dat hij er geen gebruikt? En juist dat soort mensen moet je verder helpen, mochten ze er zijn, want de mensen die vanuit zich zelf al goed werken hebben vaak geen hulp nodigquote:Hoor eens, wanneer er 4 goede oplossingen gepost zijn en de vraagsteller gebruikt er GEEN, is hij dan niet dusdanig eigenwijs dat verder helpen een beetje nutteloos wordt?
Ik denk niet dat het zo simpel isquote:Op dinsdag 29 november 2005 17:39 schreef JeRa het volgende:
[..]
Timestamps gebruiken slaat nergens op, was foutjebeter kan de vraagsteller gebruik maken van de dag in het jaar en de sterrenbeelden als ranges van dagen in het jaar opslaan
Als het puur met schrikkeljaren te maken heeft, dan maak je toch 4 rangesets (eentje voor elk jaar, inclusief het schrikkeljaar) waarbij je de ranges afhankelijk van de 'wetten' van sterrenbeelden aanpast?quote:Op dinsdag 29 november 2005 17:45 schreef DionysuZ het volgende:
[..]
Ik denk niet dat het zo simpel is. De dag waarop een sterrenbeeld begint verschilt nogal. Bijv. in een schrikkeljaar begint kreeft op 21 juni. Alsook het jaar erop en het jaar erop, maar het 3e jaar na het schrikkeljaar begint kreeft op 22 juni. Vissen begint op 19 februari, behalve 1 jaar na het schrikkeljaar, dan op 18 februari.. etc.
quote:Op dinsdag 29 november 2005 17:47 schreef JeRa het volgende:
[..]
Als het puur met schrikkeljaren te maken heeft, dan maak je toch 4 rangesets (eentje voor elk jaar, inclusief het schrikkeljaar) waarbij je de ranges afhankelijk van de 'wetten' van sterrenbeelden aanpast?
Maar niet elke 4 jaar is een schrikkeljaar (geloof als het deelbaar is door 4, behalve bij hele eeuwen? dus 2000 had niet een)quote:Op dinsdag 29 november 2005 17:47 schreef JeRa het volgende:
[..]
Als het puur met schrikkeljaren te maken heeft, dan maak je toch 4 rangesets (eentje voor elk jaar, inclusief het schrikkeljaar) waarbij je de ranges afhankelijk van de 'wetten' van sterrenbeelden aanpast?
En 2000 was juist weer de uitzonderingquote:Op dinsdag 29 november 2005 17:59 schreef the_disheaver het volgende:
[..]
Maar niet elke 4 jaar is een schrikkeljaar (geloof als het deelbaar is door 4, behalve bij hele eeuwen? dus 2000 had niet een)
Of zal daar al een PHP functie voor bestaan?
Er is ook voor alles al een functie.quote:Op dinsdag 29 november 2005 18:02 schreef DionysuZ het volgende:
http://nl2.php.net/manual/en/function.mcal-is-leap-year.php
Als hij een betere oplossing had geschreven zou je me niet gehoord hebben. Het gaat er nu gewoon om dat ALLE oplossingen genegeerd worden:quote:Op dinsdag 29 november 2005 17:42 schreef JeRa het volgende:
[..]
Waar zie je dat? Hopelijk schrijft hij zelf een oplossing adhv de gegeven oplossingen, ipv de gegeven oplossingen te copy pasten.
Stel dan geen vraag denk ik danquote: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
<knip>
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.
*zucht* je begrijpt het punt niet. Ik gaf toen een eenvoudig voorbeeld, vervolgens werd je pissed dat ik 'for the sake of explanation' user controle eruit had gelaten. Vervolgens ontstond een discussie over het gevaar van SQL injection, maar had niets te maken met het voorbeeld wat ik gaf en jouw 'gedram' nav dat voorbeeld.quote:Hoef je niet op te zoeken hoor. Feit is dat op elke betere manier die aangedragen is al wordt gecontroleerd op user input. Bovendien is er hier sprake van ofwel een switch ofwel array elementen, dus er kan weinig verkeerds voorkomen. In jouw geval was je bezig met SQL en daar zat gewoon een zware fout in (waar het minstens 2 pagina's duurde voordat het duidelijk werd).
Zie bovenstaande quote. Als mensen gewoon niet geholpen willen worden houdt het wat mij betreft op. Thats all. Dat mag je triest noemen, maar daar heb ik geen zin in.quote:Waar staat dat hij er geen gebruikt? En juist dat soort mensen moet je verder helpen, mochten ze er zijn, want de mensen die vanuit zich zelf al goed werken hebben vaak geen hulp nodig
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |