Net als hoofdletter ook spatie tussen letters en cijfers forceren?

Status
Niet open voor verdere reacties.

lady johnny

Gebruiker
Lid geworden
10 nov 2008
Berichten
38
Wij hebben een webshop waar men producten kan bestellen en hiervoor zich registreert.

Veel mensen voeren alles in kleine letters in, erg irritant en meer werk voor ons, doordat ik het graag netjes houd op de factuur.
Nu kunnen we natuurlijk bij het adres de eerste hoofdletter forceren en bij postcode alle letters hoofdletter maken.

Zie:

$adres = ucfirst($_REQUEST["adres"]);
$postcode = strtoupper($_REQUEST["postcode"]);

Maar ik zou graag voor de postcode ook eenheid willen maken door standaard 1111 AA te doen ipv 1111AA.
Is er zoiets, waarmee ik een spatie forceer tussen de cijfers en letters?

Ik begrijp de optie dat er een vakje van 4 voor de cijfers gemaakt kan worden en vakje van 2 voor de letters maar dan moet ik de bestanden en database aan gaan passen en heb liever zo weinig mogelijk geknoei er aan, dus dacht misschien is er een andere optie voor?
 
Als het puur voor de postcode is, is het makkelijkste om gewoon een spatie te forceren na de 4e plek in de string.

Klein stukje code wat dat doet:

PHP:
if ( strlen( $postcode ) == 6 ) {
$postcode = substr( $postcode, 0, 4 ) . ' ' . substr( $postcode, 5, 2 );
}

Zit verder geen controle op; wat er gebeurt is gewoon een spatie tussen het 4e en 5e teken. Je moet dus van tevoren controleren of het een geldige postcode is. Omdat ie em alleen zet als de beginlengte 6 is, zal er geen extra spatie komen als er al een stond.
 
Bedankt voor de reactie!
Heb je enig idee waar ik het beste

Deze code:

if ( strlen( $postcode ) == 6 ) {
$postcode = substr( $postcode, 0, 4 ) . ' ' . substr( $postcode, 5, 2 );
}

kan neerzetten?

Dit is de code rondom postcode:

if ($_POST["verzend"])
{
$selectie = $_REQUEST['selectie'];
$naam = ucwords($_REQUEST["afz_naam"]);
$adres = ucfirst($_REQUEST["adres"]);
$postcode = strtoupper($_REQUEST["postcode"]);
$plaats = ($_REQUEST["plaats"]);
$email = $_REQUEST["afz_email"];
$opmerking = $_POST['opmerking'];
$keuze = $_POST['betaling'];

En daarna komt een if en een else if (klant geregistreerd en opslaan in database of juist niet).
 
Uhm als je helemaal geen controle op de postcode uitvoert zou ik em tussen $postcode en $plaats zetten.

Maar op dit moment is "#@KJDF" ook een geldige postcode, ik weet niet dat het een probleem wordt voor je programma later.
 
Zonet bij een test vulde ik dit in: 1111ab en dat werd 1111 b

Er kwam dus wel een spatie, alleen op de plek van de spatie gooit ie de letter er uit :)
 
Oeps, sorry je moet tellen vanaf 0. Doe het eens zo?

PHP:
$postcode = substr( $postcode, 0, 4 ) . ' ' . substr( $postcode, 4, 2 );
 
Haha, geen sorry zeggen :) Vind het al tof dat je wilt helpen!
Bij deze is het dus opgelost, super!!:D
 
@Frats, ik weet niet of je dit nog leest maar zou je me kunnen helpen om wat beveiligingen erin te zetten?

Ik zou bijvoorbeeld graag willen zien dat:

-Het veld Adres ook minimaal 1 cijfer moet laten zien. Ik krijg regelmatig mensen die een bestelling zo plaatsen:

Naam: Voornaam (bijv Piet)
Adres: Achternaam (bijv Pietersen)

Mensen plaatsen dus regelmatig bij adres hun Achternaam. Dus als daar nu een controle komt dat er minimaal 1 cijfer in moet staan (dat bevat een adres immers altijd als huisnummer) dan zien mensen bijvoorbeeld of de foutmelding dat het huisnummer ontbreekt, en dan zien ze wel dat ze hun achternaam ingevuld hebben bij het adres, of als een foutmelding niet kan een rood lijntje om het vak,
dan gaan mensen zelf wel kijken van he er is iets mis, en dan zullen ze beter lezen.


Het andere punt is inderdaad de postcode.
Hoe zou je hierop een controle willen uitoefenen? We hebben namelijk ook bestellingen van belgen en die hebben er geen letters achter, dus kun je lijkt mij alleen de controle uitoefenen dat de eerste 4, 4 cijfers moeten zijn?
En dat tekens als @ etc er niet in voor mogen komen?

Bij adres is dat denk ik niet wenselijk en Naam ook niet want als je de naam Desirée hebt dan heb je ook een vreemd teken er in. Of mensen gebruiken punten in naam of straatnaam.

Als laatste weet ik dat er ook controles zijn op de e-mail.
Hoe worden deze controles uitgevoerd? Dat het moet eindigen op .??? of dat er perse een @ in voor moet komen?
 
Ik hoop dat je het ook goed vind als ik probeer te helpen :$
Dit alles kan met de functie preg_match()

Hier kan je het één en ander lezen over regular expressions...
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan