hand·te·ke·ning (de ~ (v.))
[ Voor 51% gewijzigd door Confusion op 27-09-2005 11:43 ]
Wie trösten wir uns, die Mörder aller Mörder?
Wat je bijvoorbeeld wel kan doen is er een array van maken:
1
2
3
4
5
| while($teller <= 10)
{
echo $test[$teller];
$teller++;
} |
disjfa - disj·fa (meneer)
disjfa.nl
Verwijderd
volgens mij gewoon een string met die test namen..
[ Voor 7% gewijzigd door Verwijderd op 27-09-2005 11:44 ]
1
2
3
4
5
6
| $teller = 0; while($teller <= 10) { $varname = 'test_' . $teller; echo $$varname; $teller++; } |
Don't be afraid of the dark, be afraid of what it hides
1
2
3
4
5
| $teller=0; while($teller<=10){ echo $test_{$teller}.'<br>'; $teller++; } |
Sole survivor of the Chicxulub asteroid impact.
Verwijderd
Edit:
/me is voor de verandering eens Spuit 1
[ Voor 14% gewijzigd door Verwijderd op 27-09-2005 11:53 ]
1
| $_POST['test_'.$teller]; |
zou voldoende moeten zijn.
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
Als het echt niet mogelijk is formulierarray's te gebruiken (al zie ik niet in waarom dat niet zou kunnen) dan zou ik zelf de $_POST array loopen en eruit halen wat ik nodig (begint de key met 'test_'?) heb ipv vieze constructies te gebruiken waarbij de structuur en het overzicht snel weg isDark Wanderer schreef op dinsdag 27 september 2005 @ 11:32:
Hoe moet het dan wel (gebruik maken van formulierarrays is niet mogelijk)?
Ik begin traag te worden
[ Voor 7% gewijzigd door Erkens op 27-09-2005 11:50 ]
Dark Wanderer schreef op dinsdag 27 september 2005 @ 11:32:
Hallo,
Stel, ik heb de variabele $test_1 tot en met $test_10 die uit een formulier zijn gepost, en ik wil dit getal met een while bepalen op deze manier
code:
1 2 3 4 5$teller=0; while($teller<=10){ echo "$test_".$teller." <br>"; $teller++; }
Dan werkt dit niet!
Hoe moet het dan wel (gebruik maken van formulierarrays is niet mogelijk)?
1
2
3
4
5
6
| $teller=0; while($teller<=10){ // $_POST voor post variablen en $_GET voor get variablen echo $_POST[$test ."_".$teller]. "<br>"; $teller++; } |
[ Voor 8% gewijzigd door LuCarD op 27-09-2005 11:52 ]
Programmer - an organism that turns coffee into software.
Als je ze uitleest heb je een array. Wil je de grootte weten => count($naam).
Het formulier is zo gemaakt (als voorbeeld 10 tekstvelden):
1
2
3
4
5
6
7
8
| <form tag blabla>
<?
$teller=0;
while($teller<=10){
?><input type="text" name="test_<?echo$teller;?>">/n<?
$teller++;
}
?> |
En nu wil ik deze velden op dezelfde manier echo'en, maar ik weet niet hoe ik die variabele naam moet maken. ik dacht dus zo
1
2
3
4
5
6
7
8
| <?
$teller=0;
while($teller<10){
$var='$_POST[\'test_$teller\']';
echo $var; echo "<br>";
$teller++;
}
?> |
En dat echo-en wil dus niet
hand·te·ke·ning (de ~ (v.))
Verwijderd
(in PHP5 in ieder geval zeker weten)
Waarom uberhaupt het jezelf moeilijk maken door er $test_ voor te zetten?
Met alleen getallen werk je toch iets soepeler.
Persoonlijk vind ik dat je gewoon een andere manier moet zoeken, maar dat mag je
natuurlijk helemaal zelf weten
Dark Wanderer schreef op dinsdag 27 september 2005 @ 11:54:
code:
1 2 3 4 5 6 7 8<form tag blabla> <? $teller=0; while($teller<=10){ ?><input type="text" name="test_<?echo$teller;?>">/n<? $teller++; } ?>
En dat echo-en wil dus niet
1
2
3
4
5
6
7
8
| <form tag blabla>
<?
$teller=0;
while($teller<=10){
?><input type="text" name="test[<?echo$teller;?>]">/n<?
$teller++;
}
?> |
disjfa - disj·fa (meneer)
disjfa.nl
Als je het formulier zelf maakt zie ik geen enkele reden om zo moeilijk te doen.Dark Wanderer schreef op dinsdag 27 september 2005 @ 11:54:
Het formulier is zo gemaakt (als voorbeeld 10 tekstvelden):
1
2
3
4
5
6
7
8
9
| <form tag blabla> <? $teller=0; while($teller<=10){ ?><input type="text" name="test_<?echo $teller;?>">/n<? <!-- Oude --> ?><input type="text" name="test[<?echo $teller;?>]">/n<? <!-- Nieuwe --> $teller++; } ?> |
En wat heb je hier een lompe toekenning in???
1
2
3
4
5
6
7
8
9
| <? $teller=0; while($teller<10){ $var='$_POST[\'test_$teller\']'; // oud $var=$_POST['test_'.$teller]; // werkt beter echo $var; echo "<br>"; $teller++; } ?> |
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
Jij wilt getallen als variabelenaam gebruiken? Dan wil ik nooit code van jou lezen.Verwijderd schreef op dinsdag 27 september 2005 @ 11:54:
Waarom uberhaupt het jezelf moeilijk maken door er $test_ voor te zetten?
Met alleen getallen werk je toch iets soepeler.
Wie trösten wir uns, die Mörder aller Mörder?
Ik denk dat je dat anyway niet wilt.Confusion schreef op dinsdag 27 september 2005 @ 12:04:
[...]
Jij wilt getallen als variabelenaam gebruiken? Dan wil ik nooit code van jou lezen.
hand·te·ke·ning (de ~ (v.))
Joow, dit werkteLuCarD schreef op dinsdag 27 september 2005 @ 11:51:
[...]
PHP:
1 2 3 4 5 6 $teller=0; while($teller<=10){ // $_POST voor post variablen en $_GET voor get variablen echo $_POST[$test ."_".$teller]. "<br>"; $teller++; }
spuit 11
Bedankt!
hand·te·ke·ning (de ~ (v.))
Verwijderd
Nee dat niet, ik zou uberhaupt niet op deze wijze programmeren.Confusion schreef op dinsdag 27 september 2005 @ 12:04:
[...]
Jij wilt getallen als variabelenaam gebruiken? Dan wil ik nooit code van jou lezen.
Maar mijn code lezen wil je ook niet
waar komt die $test vandaan
verder is het beter als je eerst kijkt of een bepaalde POST/GET variabele wel gezet is voordat je hem uit leest (wat niet kan, en waarom je dan dus een notice krijgt) aangezien je nooit zeker kan weten dat de client wel alles netjes heeft verstuurd.
Bedankt!
hand·te·ke·ning (de ~ (v.))
waarom zou je een select veld niet moeten checken? userinput == userinputDark Wanderer schreef op dinsdag 27 september 2005 @ 12:22:
Jah $test is ff voorbeeldsituatie, ik hoef niet te checken want het is een select veld. Ik zit in andermand code, en die wil het zo en zo hebben, op deze lompe manier, dus dan moet het maar, ik heb ook niet voor deze aanpak gekozen
Bedankt!
Het wordt al gevalideerd met een javascript onsubmit()Erkens schreef op dinsdag 27 september 2005 @ 12:23:
[...]
waarom zou je een select veld niet moeten checken? userinput == userinput
hand·te·ke·ning (de ~ (v.))
Don't be afraid of the dark, be afraid of what it hides
disjfa - disj·fa (meneer)
disjfa.nl
Daar hebben ze de <?= voor uitgevonden
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
Maarre, kan je met php niet checken wat de url van de postreferrer is?
hand·te·ke·ning (de ~ (v.))
die referrer wordt ingesteld door de client, dus ook niet 100% betrouwbaar (als die al meegestuurd wordt)Dark Wanderer schreef op dinsdag 27 september 2005 @ 14:03:
hmm daar heb ik niet bij nagedacht, bedankt voor de tip.
Maarre, kan je met php niet checken wat de url van de postreferrer is?
Bedankt voor de tip.
hand·te·ke·ning (de ~ (v.))
Verwijderd
Edit:
Ik had het inderdaad over de volgorde van het implementeren. Erkens en Janoz gaat door voor de vaatwasser ...
[ Voor 34% gewijzigd door Verwijderd op 27-09-2005 16:05 ]
Ik denk dat jij andersom bedoeldeVerwijderd schreef op dinsdag 27 september 2005 @ 14:18:
Maak altijd eerst server side validatie, en daarna pas client side meuk om het wat sneller te maken voor de gebruiker ...
hand·te·ke·ning (de ~ (v.))
Nee, altijd eerst zorgen dat alle validatie werkt op de server, eventueel kan je dan clientside validatie later nog toevoegen om het voor de gebruiker wat makkelijker te maken. Als je altijd op deze manier te werk gaat zullen je scripts/sites een stuk veiliger (kunnen) zijn
Hij heeft het over de volgorde van ontwikkelen, niet de volgorde van uitvoeren
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
Oh, op die fiets (ook wel een persoons tendem genoemd)Janoz schreef op dinsdag 27 september 2005 @ 15:35:
[...]
Hij heeft het over de volgorde van ontwikkelen, niet de volgorde van uitvoeren
Ik heb altijd wel server side gevalidate, maar was sinds kort over gestapt op clientside. Dacht dat het niet uitmaakte. Maar ik ga nu weer lekker terug naar serverside
hand·te·ke·ning (de ~ (v.))