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?
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |