Input balk 'splitsen' in 5 balkjes

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Machiel K

Machiel K

30/08/2012 09:36:57
Quote Anchor link
Hallo.

Ik heb een input balkje waar je een soort van wachtwoord moet invoeren.
Maar ik wil dat het in plaats van 1 input balk er 5 worden maar wel dat ze samen één vormen.

Het is nu dus zo:
[Wachtwoord]

Maar ik zou het zo willen hebben:
[WA] [CH] [TW] [OO] [RD]

Zou dit kunnen en zo ja, hoe?
Waarom ik dit zo wil is nu even niet de vraag ;)

Alvast bedankt voor het reageren.
Machiel
 
PHP hulp

PHP hulp

05/11/2024 12:33:41
 
Smoke nvt

Smoke nvt

30/08/2012 09:43:37
Quote Anchor link
Ik denk dat het wel mogelijk is. Waarom je het wil zal voor mij een vraag blijven.

Je zouw in html 5 input velden moet maken en die vervolgens via php weer aan elkaar moeten knopen.
 
Ozzie PHP

Ozzie PHP

30/08/2012 09:45:34
Quote Anchor link
Inderdaad, gewoon 5 input velden maken.
 
Machiel K

Machiel K

30/08/2012 09:54:00
Quote Anchor link
Als ik dat zou doen dan moet ik dit doen. Als voorbeeld neem ik even MK als wachtwoord.

Dit bij 1:
[MK123]

Dit zou ik willen.
[M] [K] [1] [2] [3]

Maar ik moet dit doen, anders lukt het niet om 'in te loggen'.
[MK123] [MK123] [MK123] [MK123] [MK123]

Toevoeging op 30/08/2012 09:55:19:

Wat ik kan doen is voor M, K, 1, 2 en 3 elk een apparte input naam maken en allemaal los als wachtwoord in de MySQL zetten.

Even testen.
 
Wouter J

Wouter J

30/08/2012 09:56:41
Quote Anchor link
En je zou het dan in PHP ook nog mooi kunnen maken:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<form ...>
    <label for="pass">Wachtwoord: </label><br>
    <input type=text name=pass[] id=pass><input type=text name=pass[]><input type=text name=pass[]><input type=text name=pass[]><input type=text name=pass[]>
    <!-- ... -->
</form>

Afhandeling:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
if ('POST' == $_SERVER['REQUEST_METHOD']) {
    // ...

    $pass = implode('', $_POST['pass']); // alle velden worden weer 1 value

    // of

    $pass = implode('.', $_POST['pass']);
    // als je nu [ab][cd][ef][gh][ij] hebt ingevuld
    // wordt het wachtwoord ab.cd.ef.gh.ij

    // of

    echo $_POST['pass'][1]; // wordt cd
}
 
Kris Peeters

Kris Peeters

30/08/2012 09:58:57
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<input name="wachtwoord[]"/>
<input name="wachtwoord[]"/>
<input name="wachtwoord[]"/>
<input name="wachtwoord[]"/>
<input name="wachtwoord[]"/>


...

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['wachtwoord']) ) {
  $wachtwoord = '';
  foreach ($_POST['wachtwoord'] as $item) {
    $wachtwoord .= $item;
  }  
}

// en hier heb je dan je volledige wachtwoord
?>
 
Ozzie PHP

Ozzie PHP

30/08/2012 10:05:30
Quote Anchor link
@Kris, implode is hier een betere oplossing (zie voorbeeld Wouter).
 
Kris Peeters

Kris Peeters

30/08/2012 10:12:23
Quote Anchor link
Je hebt gezien dat beide posts op heel weinig tijd van mekaar zijn gepost en de mijne dus op geen enkele manier een poging tot verbetering is op de vorige post, he ...
Gewijzigd op 30/08/2012 10:12:55 door Kris Peeters
 
Machiel K

Machiel K

30/08/2012 10:15:01
Quote Anchor link
Gelukt! Bedankt voor alle reacties en hulp! :)
 
Ozzie PHP

Ozzie PHP

30/08/2012 10:22:25
Quote Anchor link
Kris Peeters op 30/08/2012 10:12:23:
Je hebt gezien dat beide posts op heel weinig tijd van mekaar zijn gepost en de mijne dus op geen enkele manier een poging tot verbetering is op de vorige post, he ...

Dat suggereerde ik ook helemaal niet :)
Ik gaf enkel aan dat implode hier een betere keuze is in plaats van de array in een foreach loop aan elkaar plakken. Was niet vervelend bedoeld ofzo hoor??
 
Write Down

Write Down

30/08/2012 11:39:37
Quote Anchor link
Ozzie PHP op 30/08/2012 10:22:25:
Kris Peeters op 30/08/2012 10:12:23:
Je hebt gezien dat beide posts op heel weinig tijd van mekaar zijn gepost en de mijne dus op geen enkele manier een poging tot verbetering is op de vorige post, he ...

Dat suggereerde ik ook helemaal niet :)
Ik gaf enkel aan dat implode hier een betere keuze is in plaats van de array in een foreach loop aan elkaar plakken. Was niet vervelend bedoeld ofzo hoor??


Omdat ik misschien nogal een wetenschappelijk type ben, wou ik even kijken of het wel waar is wat je hier verteld. Daarom heb ik heb de benodigde tijd voor beide scripts getest. Inderdaad, de oplossing van Wouter is de meest efficiënte.
 
Kris Peeters

Kris Peeters

30/08/2012 18:30:10
Quote Anchor link
Offtopic:

Dit wou ik toch even kwijt ...

Om te beginnen, ik niet op mijn teentjes getrapt; ik kan tegen een stootje. Maar het lijkt me toch interesant om dit even te vertellen.

Wanneer ik antwoord op een topic, denk ik niet in de eerste plaats aan: "wat is het beste script dat bestaat voor het probleem van die mens?".
Waar ik vooral op let, is: "waarmee wordt die mens het best geholpen?".

Soms vinden mensen een script online. Dat script is slecht geschreven, niet gedocumenteerd en de TS vraagt ons om het "werkende te krijgen".
Voor mij is het dan heel simpel: zoek dan een script dat wel werkt! Als je dan toch vertrekt van iets wat je gevonden hebt ... zoek dan wat beter. Het is verloren tijd om daar verbeteringen op te geven. Uit mijn mond klinkt dit misschien soms wat grof; so be it, ik heb slechte, diplomatieke skills.

Wanneer mensen iets zelf schrijven en het script posten:
In dit geval probeer ik zo veel mogelijk te antwoorden in de taal en het niveau die de TS spreekt. De TS probeert bij te leren en probeert te begrijpen wat hij mis heeft gedaan en waar de oplossing te vinden is.
Ik probeer zijn script terug te geven, maar dan verbeterd; en ik leg de lat net iets hoger dan hij gewoon is (zoals ik het kan inschatten, adhv. het script), maar niet veel meer.

Daarom is het ook zo belangrijk dat mensen code posten. Bv. Iemand die niet weet hoe hij een syntax error kan oplossen, help je niet door hem er op te wijzen dat hij beter PDO gebruikt ipv. de classieke mysql-functies. Dit is ver boven zijn niveau; daar heeft hij niets aan.

Ik probeer het minimum aan code te verbeteren.
Wat is het probleem waar de TS specifiek mee zit? wat is daar de oplossing voor?
Wanneer mensen hun weg niet meer vinden in hun eigen script, zeg ik ze dat ze goed moeten letten op indentatie. Dit is op dat moment relevant. Wanneer dit probleem niet aan de basis ligt, zwijg ik er over.

Ik zal nooit klagen over "... or die() ...", tenzij dit echt aan de basis ligt van het probleem.
Wanneer fouten niet worden opgevangen; wanneer de TS af komt met fouten als " parameter 1 verwacht een resource; er werd een Boolean gegeven ...", dan weet ik dat het relevant kan zijn om hierover te beginnen. Wanneer de fout verder/later gebeurt, is het probleem elders; dan zwijg ik hier over.

Over dit topic hier: hier heb ik weinig argumenten om liever een foreach te gebruiken, dan een implode. Implode is hier de betere optie. Achteraf kan je de aaneengeplakte waarde 1 keer door mysql_real_escape halen, indien nodig.

Maar even later, deze middag, kwam dat topic:
http://www.phphulp.nl/php/forum/topic/multiple-select-naar-database/86406/#618956
Dat is ongeveer het zelfde probleem. Maar daar zie ik wel een goede reden om de foreach te gebruiken. En ik heb het gevoel dat ik de enige ben die mensen waarschuwt voor injection wanner een $_POST een array is.

Ja, implode is minder code, maar dat is geen reden om het script niet te beschermen.
[/offtopic]

nu ja ... prettige avond, iedereen
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.