[myphp] laat niet zien je hebt niks ingevuld.

Pagina: 1
Acties:

Onderwerpen

Vraag


Acties:
  • 0 Henk 'm!

  • Hakuna-Matata
  • Registratie: April 2016
  • Laatst online: 14-02 17:27
Ik moet een formulier maken waarin postcodes worden ingevuld.
En ik moet controleren of de postcode tussen de 8000AA en de 8069ZZ vallen en niet leeg is.
Ik moet de AND-operator gebruiken, wanneer het zo is wordt de tekst regio Zwolle weergegeven.
Wanneer het veld niet leeg is en buiten de postcode-bereik valt wordt de tekst buiten regio Zwolle weergegeven.
Is het veld leeg, dan wordt de tekst voor een postcode in weergegeven.
Alleen werkt dat helaas niet, maar de rest wel, en als ik de head tag afsluit doet hij het maar half.
Zou iemand mij hiermee kunnen helpen?
Dit is mijn code
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
if(isset($_POST['postcode'])){
    if ($_POST['postcode'] >= '8000AA' && $_POST['postcode'] <= '8069ZZ') {
        $warning='binnen regio Zwolle';

    }
    else{
        $warning='buiten regio Zwolle';
    }

}
if($=="") {
    $warning='je hebt niks ingevuld';
}

?>
<!DOCTYPE html>
<html>
<head>
    <title>Postcode Zwolle</title>
<body>
<form action="02if-extra.php" method="post">

            Postcode: <input type="text" name="postcode" placeholder="voer postcode in">
            Send: <input type="submit" name="button" value="button">
</form>
<?php
echo $warning
?>
</body>
</html>

[ Voor 6% gewijzigd door Hakuna-Matata op 04-10-2016 19:58 ]

Alle reacties


Acties:
  • +2 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Heb je regel 12 al eens goed bekeken? Überhaupt errorreporting aan staan?

[ Voor 64% gewijzigd door RobIII op 04-10-2016 20:06 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Hakuna-Matata
  • Registratie: April 2016
  • Laatst online: 14-02 17:27
RobIII schreef op dinsdag 04 oktober 2016 @ 20:05:
Waarom heb je op regel 12 niet gewoon een else? Sowieso is dat maar een raar statement daar, dat zou zelfs een syntax error moeten geven?
Dat had ik, maar hij liet toen niet zien als ik niks invulde dat ie zei je hebt niks ingevuld.
Dus misschien zou dit helpen.
Ik snap dit het niet, ben wel bezig om het te gaan snappen, maar lijkt alsof ik iets mis ofzo, en dat is heel frustrerend waardoor ik gewoon niet meer weet wat ik moet doen. 8)7
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
if(isset($_POST['postcode'])){
    if ($_POST['postcode'] >= '8000AA' && $_POST['postcode'] <= '8069ZZ') {
        $warning='binnen regio Zwolle';

    }
    else{
        $warning='buiten regio Zwolle';
    }

}
else{
    $warning='je hebt niks ingevuld';
}

?>
<!DOCTYPE html>
<html>
<head>
    <title>Postcode Zwolle</title>
<body>
<form action="02if-extra.php" method="post">

            Postcode: <input type="text" name="postcode" placeholder="voer postcode in">
            Send: <input type="submit" name="button" value="button">
</form>
<?php
echo $warning
?>
</body>
</html>

[ Voor 43% gewijzigd door Hakuna-Matata op 04-10-2016 20:09 ]


Acties:
  • +1 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Begin gewoon eens met a) errorreporting aan te zetten (E_ALL) en b) Debuggen: Hoe doe ik dat?

Als je niks invult is $_POST['postcode'] volgens mij nog wel gewoon geset maar leeg? Dus zul je naar de strlen(trim($_POST['postcode'])) ofzo moeten kijken; als die 0 is is er niets ingevuld.

[ Voor 47% gewijzigd door RobIII op 04-10-2016 20:12 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Hakuna-Matata
  • Registratie: April 2016
  • Laatst online: 14-02 17:27
RobIII schreef op dinsdag 04 oktober 2016 @ 20:09:
Begin gewoon eens met a) errorreporting aan te zetten (E_ALL) en b) Debuggen: Hoe doe ik dat?

Als je niks invult is $_POST['postcode'] volgens mij nog wel gewoon geset maar leeg? Dus zul je naar de strlen(trim($_POST['postcode'])) ofzo moeten kijken; als die 0 is is er niets ingevuld.
Alles doet zoals het hoort behalve die laatste niet.
Ik snap niet echt goed wat je bedoelt, sorry.

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Hakuna-Matata schreef op dinsdag 04 oktober 2016 @ 20:20:
[...]

Alles doet zoals het hoort behalve die laatste niet.
Ik snap niet echt goed wat je bedoelt, sorry.
Heel simpel: $_POST['postcode'] zal altijd (nou ja, meestal) wel geset zijn, maar kan prima leeg zijn. Leeg en ge'set' zijn twee heel verschillende dingen.

Doe eens dit:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
error_reporting(E_ALL);

var_dump(isset($_POST['postcode']));
?>
<!DOCTYPE html>
<html>
    <head>
        <title>Postcode Zwolle</title>
    </head>
    <body>
        <form action="02if-extra.php" method="post">
            Postcode: <input type="text" name="postcode" placeholder="voer postcode in">
            <input type="submit" name="button" value="Send!">
        </form>
    </body>
</html>

Dan zul je zien dat isset($_POST['postcode']) (bijna!) altijd true returned; behalve als je niet POST. Je zult dus de ge-post-te waarde moeten bekijken; zit daar in wat je wil?

Vervang regel 4 dan eens door:
PHP:
1
2
3
4
5
6
7
$postcode = null;
if (isset($_POST['postcode'])) {
  $postcode = trim($_POST['postcode']);
} else {
  $postcode = '';
}
var_dump($postcode);

en kijk wat de output is bij (initiële) pagina laden, en bij het versturen van een lege tekstinvoer of een gevulde tekstinvoer (en gooi er eens wat spaties in, of plak eens wat spaties voor/achter een postcode).

Dat hele tweede blok code (alle 7 regels) kun je makkelijker schrijven m.b.v. een ternary en wordt dan:

PHP:
1
$postcode = isset($_POST['postcode']) ? trim($_POST['postcode']) : '';


Ik zou er dan meteen een strtoupper() overheen gooien:

PHP:
1
$postcode = (isset($_POST['postcode'])) ? strtoupper(trim($_POST['postcode'])) : '';


Of nog beter: meteen alle whitespace eruit slopen (zodat 8000 AA dus 8000AA wordt):
PHP:
1
$postcode = (isset($_POST['postcode'])) ? strtoupper(preg_replace('/\s/', '', $_POST['postcode'])) : '';

...maar ik denk dat we dan wat ver gaan :P

[ Voor 71% gewijzigd door RobIII op 04-10-2016 20:42 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Hakuna-Matata
  • Registratie: April 2016
  • Laatst online: 14-02 17:27
RobIII schreef op dinsdag 04 oktober 2016 @ 20:23:
[...]


Heel simpel: $_POST['postcode'] zal altijd (nou ja, meestal) wel geset zijn, maar kan prima leeg zijn.

Doe eens dit:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
error_reporting(E_ALL);

var_dump(isset($_POST['postcode']));
?>
<!DOCTYPE html>
<html>
    <head>
        <title>Postcode Zwolle</title>
    </head>
    <body>
        <form action="02if-extra.php" method="post">
            Postcode: <input type="text" name="postcode" placeholder="voer postcode in">
            <input type="submit" name="button" value="Send!">
        </form>
    </body>
</html>

Dan zul je zien dat isset($_POST['postcode']) (bijna!) altijd true returned; behalve als je niet POST. Je zult dus de ge-post-te waarde moeten bekijken; zit daar in wat je wil?

Vervang regel 4 dan eens door:
PHP:
1
2
3
4
5
6
7
$postcode = null;
if (isset($_POST['postcode'])) {
  $postcode = trim($_POST['postcode']);
} else {
  $postcode = '';
}
var_dump($postcode);

en kijk wat de output is bij (initiële) pagina laden, en bij het versturen van een lege tekstinvoer of een gevulde tekstinvoer (en gooi er eens wat spaties in, of plak eens wat spaties voor/achter een postcode).

Dat hele tweede blok code (alle 7 regels) kun je makkelijker schrijven m.b.v. een ternary en wordt dan:

PHP:
1
$postcode = (isset($_POST['postcode'])) ? trim($_POST['postcode']) : '';
Dankje, mijn code werkt nu.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
error_reporting(E_ALL);
$postcode=isset($_POST['postcode'])? trim($_POST['postcode']) :null;
if(strlen($postcode)===0) {
    $warning = 'je hebt niks ingevuld';
} else if ($postcode >= '8000AA' && $_POST['postcode'] <= '8069ZZ') {
        $warning='binnen regio Zwolle';
} else{
        $warning='buiten regio Zwolle';
    }

?>
<!DOCTYPE html>
<html>
<head>
    <title>Postcode Zwolle</title>
<body>
<form action="02if-extra.php" method="post">

            Postcode: <input type="text" name="postcode" placeholder="voer postcode in">
            Send: <input type="submit" name="button" value="button">
</form>
<?php
echo $warning
?>
</body>
</html>

Maar ik snap niet het niet echt, want je moet toch ook die postcodes invullen, die trim en die var_dump snap ik niet?
Ik doe echt mijn best om het te snappen.
Het kan zijn dat ik soms niet goed lees, omdat ik vrij zenuwachtig ben voor de programmeertoets die in week 44/45 komt, en je die moet halen wil je doorgaan met de opleiding.
Dit is tot nu de enige opleiding die ik leuk vind, en dat maakt het allemaal dat ik heel nerveus wordt als ik iets niet snap.
Want ik wil gewoon het kunnen snappen, en daarom ben ik er ook heel vaak mee bezig.

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Nee, mijn code die ik perongeluk postte (en die je dus letterlijk overgenomen hebt) i.p.v. de hints in de juiste richting die er nu staan werkt ;)
Met copy/pasten kom je er niet. Je zult 't moeten leren begrijpen. Daarom zeggen we hier altijd:
Give a man a fish and feed him for a day. Teach a man how to fish and feed him for a lifetime.
Die code had ik nooit moeten posten; ik had die nog op mijn clipboard staan i.p.v. de hints die nu in mijn vorige post staan. Mijn excuses daarvoor, maar het demonstreert dus wel mooi meteen waarom we nooit volledige oplossingen posten: je leert er niets van.
Hakuna-Matata schreef op dinsdag 04 oktober 2016 @ 20:43:
Maar ik snap niet het niet echt, want je moet toch ook die postcodes invullen, die trim en die var_dump snap ik niet?
Dan zoek ze eens op?
http://php.net/manual/en/function.trim.php
http://php.net/manual/en/function.strlen.php
http://php.net/manual/en/function.var-dump.php

[ Voor 55% gewijzigd door RobIII op 04-10-2016 20:50 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Hakuna-Matata
  • Registratie: April 2016
  • Laatst online: 14-02 17:27
RobIII schreef op dinsdag 04 oktober 2016 @ 20:46:
[...]

Nee, mijn code die ik perongeluk postte (en die je dus letterlijk overgenomen hebt) i.p.v. de hints in de juiste richting die er nu staan werkt ;)
Met copy/pasten kom je er niet. Je zult 't moeten leren begrijpen. Daarom zeggen we hier altijd:

[...]

Die code had ik nooit moeten posten; ik had die nog op mijn clipboard staan i.p.v. de hints die nu in mijn vorige post staan. Mijn excuses daarvoor, maar het demonstreert dus wel mooi meteen waarom we nooit volledige oplossingen posten: je leert er niets van.

[...]

Dan zoek ze eens op?
http://php.net/manual/en/function.trim.php
http://php.net/manual/en/function.strlen.php
http://php.net/manual/en/function.var-dump.php
Ik ben ze aan het opzoeken.
Zijn er filmpjes die echt goede uitleg geven over heel php?
Want ik ben als de dood dat ik het verkeerd aanleer.

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Hakuna-Matata schreef op dinsdag 04 oktober 2016 @ 20:52:
Zijn er filmpjes die echt goede uitleg geven over heel php?
Leren, zéker de basis, doe je uit een boek en/of documentatie IMHO. Er zijn vast een aantal mensen die nu met allerlei sites komen aankakken die helemaal geweldig zijn maar filmpjes moet je zien als een extra bron van informatie, niet als dé bron IMHO.

Verder: Wil je niet telkens mijn complete post(s) quoten? Quote liever het deel / de delen waarop je reageert of gewoon niets als je niet direct op een zin / alinea reageert. Ondanks dat de quotes "inklappen" met een "toon volledig bericht" leest / scrolled het nogal vervelend als er telkens complete nutteloze blokken quotes staan die geen direct nut hebben. Zéker als er verder nog niemand deelneemt aan de discussie en het telkens een RobIII»Hakuna-Matata»RobIII»Hakuna-Matata»... is..

[ Voor 37% gewijzigd door RobIII op 04-10-2016 20:59 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Hakuna-Matata
  • Registratie: April 2016
  • Laatst online: 14-02 17:27
[quote]RobIII schreef op dinsdag 04 oktober 2016 @ 20:55:
[...]

Leren, zéker de basis, doe je uit een boek en/of documentatie IMHO.

Wil je niet telkens mijn complete post(s) quoten? Quote liever het deel / de delen waarop je reageert of gewoon niets als je niet direct op een zin / alinea reageert.
Owh oke
Ik ga dat opzoeken en dan leer ik hopelijk iets van.

[ Voor 31% gewijzigd door Hakuna-Matata op 04-10-2016 21:23 ]


Acties:
  • 0 Henk 'm!

  • DJMaze
  • Registratie: Juni 2002
  • Niet online
Hakuna-Matata schreef op dinsdag 04 oktober 2016 @ 19:54:
PHP:
1
$warning='binnen regio Zwolle';
Dat is eigenlijk geen $warning maar een $message ;)

Maak je niet druk, dat doet de compressor maar


Acties:
  • +1 Henk 'm!

  • InZane
  • Registratie: Oktober 2000
  • Laatst online: 01:06
DJMaze schreef op woensdag 05 oktober 2016 @ 11:09:
[...]

Dat is eigenlijk geen $warning maar een $message ;)
True, maar ik geloof dat dat nog het kleinste probleem is als ik 't topic zo lees :+

[ Voor 4% gewijzigd door InZane op 05-10-2016 13:27 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Ik denk dat je het meeste moet gaan werken aan je instelling. Een stuk code kopiëren en dan zeggen 'Mijn code werkt' is niet de juiste manier. Het gaat om daadwerkelijk begrijpen wat er gebeurt, weten wat je fout hebt gedaan en wat er veranderd is waardoor het nu wel werkt.

Ook is zelf doen, proberen, uitzoeken, de juiste manier om verder te komen. Kant en klare oplossingen gaan je niet verder helpen op de lange termijn. Als je iets niet snapt, zoek het op. :-)

Acties:
  • 0 Henk 'm!

  • Hakuna-Matata
  • Registratie: April 2016
  • Laatst online: 14-02 17:27
Verwijderd schreef op donderdag 06 oktober 2016 @ 23:50:
Ik denk dat je het meeste moet gaan werken aan je instelling. Een stuk code kopiëren en dan zeggen 'Mijn code werkt' is niet de juiste manier. Het gaat om daadwerkelijk begrijpen wat er gebeurt, weten wat je fout hebt gedaan en wat er veranderd is waardoor het nu wel werkt.

Ook is zelf doen, proberen, uitzoeken, de juiste manier om verder te komen. Kant en klare oplossingen gaan je niet verder helpen op de lange termijn. Als je iets niet snapt, zoek het op. :-)
Ik heb met een nieuwe opdracht iemand gevraagd om hulp, en ik snap ook waaorm de code werkt.

Acties:
  • 0 Henk 'm!

  • Ventieldopje
  • Registratie: December 2005
  • Laatst online: 19-09 11:00

Ventieldopje

I'm not your pal, mate!

Het belangrijkste is gewoon debuggen, zeker als je net om de hoek komt kijken en dingen niet snapt. Precies daarvoor is debugging.

Zet error reporting aan in je php.ini, installeer xdebug en pak een goeie IDE zoals PHPstorm. Zie hierbijvoorbeeld hoe dat te doen: https://www.jetbrains.com...2/configuring-xdebug.html.

Zonder goeie IDE en debugging instellingen is het alsof je in het donker rijd zonder lampen aan. Als je de weg op je duimpje kent lukt dat prima maar is die weg nieuw voor je knal je keer op keer tegen de boom ;)

offtopic:
Bij LAMP installaties zoals Xampp staat xdebug vaak al aan standaard. Maar dat helpt niet als error_reporting uit staat natuurlijk ;)

[ Voor 11% gewijzigd door Ventieldopje op 07-10-2016 12:42 ]

www.maartendeboer.net
1D X | 5Ds | Zeiss Milvus 25, 50, 85 f/1.4 | Zeiss Otus 55 f/1.4 | Canon 200 f/1.8 | Canon 200 f/2 | Canon 300 f/2.8


Acties:
  • 0 Henk 'm!

  • ajakkes
  • Registratie: Maart 2004
  • Laatst online: 16-05 22:32

ajakkes

👑

Hakuna-Matata schreef op vrijdag 07 oktober 2016 @ 10:52:
[...]

Ik heb met een nieuwe opdracht iemand gevraagd om hulp, en ik snap ook waaorm de code werkt.
Ik twijfel of je weet waarom je de trim functie gebruikt. En of je inmiddels weet wat var_dump voor output geeft.

Heb je al getest of de postcode 80011A in Zwolle ligt? Ik denk dat die niet in Zwolle ligt. En postcode 8001aA. Want die ligt er wel.

En krijg ik altijd een waarschuwing als ik je pagina op vraag of alleen wanneer op Send klik zonder iets in te vullen?

Heb je de AND functie al gebruikt?

👑


Acties:
  • 0 Henk 'm!

  • V-rg
  • Registratie: Juni 2007
  • Laatst online: 20-09 14:26
Ik herken de opdracht die je moet maken... :+.

Had zelf vrijstelling voor de reader waar deze opdracht in zit maar ik heb wel een goede vriend van me geholpen met deze opdracht (beter gezegd het helemaal gemaakt voor hem)... Weet gelijk op welke school je zit. Maar ik zou inderdaad advies nemen wat andere zeiden dat je veel meer zelf moet gaan uitzoeken zeker omdat dit nog vrij simpel is om zelf uit te zoeken, dit zei ik net zo goed tegen een maat van mij. Hierna moet je de OOP reader maken, daarna de MVC reader en dan kan je immers gewoon niet meer alles vragen, zeker bij je portfolio website + eindproject ga je in de problemen raken.

Maar goed uiteindelijk is het je eigen keuze.

Neem aan dat je in de "niet-FLEX" klas zit?

Edit: De opdracht die hij moet maken is er niet vereist dat er checks en dergelijke op moet komen zoals spaties etc. Dit wordt namelijk later behandeld, het boekje waar de opdracht in staat gaat stapsgewijs van echt de basis naar de wat meer geavanceerdere functies. Dus zolang het bij 8020AA de if statement goed is en bij 7300ZZ niet goed is, is de opdracht gemaakt.

[ Voor 19% gewijzigd door V-rg op 07-10-2016 16:44 ]


Acties:
  • 0 Henk 'm!

  • borft
  • Registratie: Januari 2002
  • Laatst online: 15-09 16:33
Misschien sowieso es beginnen met de postcode uit elkaar te trekken, en te valideren of de waardes ergens op lijken.

hint: een postcode bestaat uit 2 delen:
4 digits EN 2 letters

Wat gebeurt er nu als je bv ()()() invult ipv een echt postcode? ;)

Acties:
  • 0 Henk 'm!

  • CH4OS
  • Registratie: April 2002
  • Niet online

CH4OS

It's a kind of magic

Er is een simpele regular expression, waarmee je iedere postcode kan (in)valideren, zou dus eerder dat gebruiken dan de vergelijking die je nu probeert.

PHP:
1
{\A[1-9][0-9]{3} ?([A-RT-Za-rt-z][A-Za-z]|[sS][BCbcE-Re-rT-Zt-z])\z}
is een expression zoals wij die op het werk gebruiken, maar je kunt deze wel dusdanig aanpassen, zodat de reguler expression wel valideert op de juiste range postcodes. :) De website http://regexr.com is daarbij een handig hulpmiddeltje.

Kijk ook even op http://www.rvh1.nl/index.php/home/postcode, hier staan meer voorbeelden. Concreet komt het erop neer dat postcodes beginnen vanaf 1000 en geen SS, SD of SA mogen hebben. SS for obvious reasons, de andere twee zullen er ook wat mee te maken hebben denk ik zo, maar weet dat niet 100% zeker. ;)

Je kunt vervolgens het bereik van de postcode aanpassen, zodat deze dus minimaal 8000AZ en maximaal 8069ZZ is en de rest invalideert.

[ Voor 32% gewijzigd door CH4OS op 07-10-2016 16:22 ]


Acties:
  • 0 Henk 'm!

  • DJMaze
  • Registratie: Juni 2002
  • Niet online
Mensen, mensen, mensen.

A. Alleen een Nederlandse postcode is [1-9][0-9]{3}[A-Z]{2}. Alle andere landen hebben wel/geen postcode in een ander formaat.

B. De regex van CH4AOS is correct omdat de postcode SA, SD, SS niet worden gebruikt. Maar tot 2005 werden ook de letters 'F', 'I', 'O', 'Q', 'U' en 'Y' niet gebruikt. Als je een website had opgeleverd in 2004 met zo'n "ristrictie", dan moest je in 2005 al je code aanpassen.
Het zou ook betekenen dat je klanten wonende in België/Duitsland niet kan bedienen.

Zie: Wikipedia: Postcode

Maak je niet druk, dat doet de compressor maar


Acties:
  • 0 Henk 'm!

  • Ventieldopje
  • Registratie: December 2005
  • Laatst online: 19-09 11:00

Ventieldopje

I'm not your pal, mate!

DJMaze schreef op vrijdag 07 oktober 2016 @ 16:47:
Mensen, mensen, mensen.

A. Alleen een Nederlandse postcode is [1-9][0-9]{3}[A-Z]{2}. Alle andere landen hebben wel/geen postcode in een ander formaat.

B. De regex van CH4AOS is correct omdat de postcode SA, SD, SS niet worden gebruikt. Maar tot 2005 werden ook de letters 'F', 'I', 'O', 'Q', 'U' en 'Y' niet gebruikt. Als je een website had opgeleverd in 2004 met zo'n "ristrictie", dan moest je in 2005 al je code aanpassen.
Het zou ook betekenen dat je klanten wonende in België/Duitsland niet kan bedienen.

Zie: Wikipedia: Postcode
Daarnaast valideer je er alsnog niet mee of een postcode daadwerkelijk bestaat ;) Heeft geen enkel nut om zo'n restrictie er in te bouwen inderdaad.

www.maartendeboer.net
1D X | 5Ds | Zeiss Milvus 25, 50, 85 f/1.4 | Zeiss Otus 55 f/1.4 | Canon 200 f/1.8 | Canon 200 f/2 | Canon 300 f/2.8


Acties:
  • 0 Henk 'm!

  • Hakuna-Matata
  • Registratie: April 2016
  • Laatst online: 14-02 17:27
V-rg schreef op vrijdag 07 oktober 2016 @ 15:53:
Ik herken de opdracht die je moet maken... :+.

Had zelf vrijstelling voor de reader waar deze opdracht in zit maar ik heb wel een goede vriend van me geholpen met deze opdracht (beter gezegd het helemaal gemaakt voor hem)... Weet gelijk op welke school je zit. Maar ik zou inderdaad advies nemen wat andere zeiden dat je veel meer zelf moet gaan uitzoeken zeker omdat dit nog vrij simpel is om zelf uit te zoeken, dit zei ik net zo goed tegen een maat van mij. Hierna moet je de OOP reader maken, daarna de MVC reader en dan kan je immers gewoon niet meer alles vragen, zeker bij je portfolio website + eindproject ga je in de problemen raken.

Maar goed uiteindelijk is het je eigen keuze.

Neem aan dat je in de "niet-FLEX" klas zit?

Edit: De opdracht die hij moet maken is er niet vereist dat er checks en dergelijke op moet komen zoals spaties etc. Dit wordt namelijk later behandeld, het boekje waar de opdracht in staat gaat stapsgewijs van echt de basis naar de wat meer geavanceerdere functies. Dus zolang het bij 8020AA de if statement goed is en bij 7300ZZ niet goed is, is de opdracht gemaakt.
Ik zit in een gewone klas.
Ik ben van plan om in de vakantie ook ermee bezig te zijn voor die toets die eraan komt.

Acties:
  • 0 Henk 'm!

  • V-rg
  • Registratie: Juni 2007
  • Laatst online: 20-09 14:26
Hakuna-Matata schreef op vrijdag 07 oktober 2016 @ 17:29:
[...]

Ik zit in een gewone klas.
Ik ben van plan om in de vakantie ook ermee bezig te zijn voor die toets die eraan komt.
Had al zo'n vermoeden dat je in de "normale" klas zat omdat bij Flex die toets niet wordt gegeven. Veel succes in ieder geval :).

Acties:
  • 0 Henk 'm!

  • Hakuna-Matata
  • Registratie: April 2016
  • Laatst online: 14-02 17:27
V-rg schreef op vrijdag 07 oktober 2016 @ 19:54:
[...]


Had al zo'n vermoeden dat je in de "normale" klas zat omdat bij Flex die toets niet wordt gegeven. Veel succes in ieder geval :).
Dankjewel

Acties:
  • 0 Henk 'm!

  • Hakuna-Matata
  • Registratie: April 2016
  • Laatst online: 14-02 17:27
V-rg schreef op vrijdag 07 oktober 2016 @ 19:54:
[...]


Had al zo'n vermoeden dat je in de "normale" klas zat omdat bij Flex die toets niet wordt gegeven. Veel succes in ieder geval :).
Ik heb dat html wel gedaan, maar dat php had ik die else en elseif, maar kreeg errors.

Had die berekening niet.

Dus ik ben gezakt...
Ik heb 8 punten, dus omgerekend een 2.7, want je kon er 20 halen voor een 5,5.
Iedereen heeft hem verkloot, en de degene die echt php kan zei dat er geen kant van klopt.
En hij zei dat de toets te moeilijk was voor een groep beginners.
Laagste is 2.3 hoogste is 10 uit de klas
Gemiddelde ligt rond de 2.3-3.3
Soms een uitschieter naar een 4 of een 7.7 of een 10.
Dus ongeveer 20 mensen van de 25 mensen gaan de toets maandag herkansen, en hopelijk haal ik hem dan wel.
En anders word het met geluk havo ng/nt, en dan de genetica, DNA richting in van dieren.

Acties:
  • 0 Henk 'm!

  • DJMaze
  • Registratie: Juni 2002
  • Niet online
Hakuna-Matata schreef op donderdag 27 oktober 2016 @ 22:00:
en de degene die echt php kan zei dat er geen kant van klopt.
En wat klopt er dan niet volgens hun?
Ik geef je hieronder een aantal voorbeelden en wat logica, en dan zie je dat er meedere mogelijkheden zijn om het antwoord te krijgen.

Het is de bedoeling dat je er van leert en niet klakkeloos overneemt.
Dit zal ook door de leraar direct worden herkent en ben je alsnog gezakt.



Wat is 8000AA en 8069ZZ ?
Het is 2 keer: 4 cijfers en 2 letters

Welke logica zit in: 8000AA t/m 8069ZZ ?
Het alfabet is A t/m Z, in beide begint het 2x met een A en eindigend op Z
Je kan het dus opsplitsen in:
- 8000 t/m 8069
- A t/m Z
- A t/m Z

Wat kan je dan missen in: 8000AA t/m 8069ZZ ?
De twee letters omdat die toch al het hele A-Z bereik zijn.

En dan nu de PHP lessen (die leraar als opstap had kunnen geven)
PHP:
1
<?php echo intval('8000AA');

PHP:
1
<?php echo substr('8069ZZ', 0, 4);

PHP:
1
2
3
4
<?php
if (preg_match('/^([0-9]{4})([A-Z]{2})$/i', '8000AA', $postcode)) {
    print_r($postcode);
}

PHP:
1
<?php var_dump( version_compare('8000AA', '8069ZZ', '<=') );


spoiler:
Spoiler tag werkt niet om code :(

Een oplossingsmogelijkheid
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
if (isset($_POST['postcode'])) {
    if (preg_match('/^[1-9][0-9]{3}[A-Z]{2}$/Di', $_POST['postcode'])) {
        if (version_compare('8000AA', $_POST['postcode'], '<=')
         && version_compare('8069ZZ', $_POST['postcode'], '>=')
        ) {
            $message = 'binnen regio Zwolle';
        } else {
            $message = 'buiten regio Zwolle';
        }
    } else {
        $error = 'invalide postcode';
    }
}



Dit moet natuurlijk al wel behandeld zijn op school, anders snap je de logica nooit.
Het is allemaal nog simpel ook.
Complexer zou zijn als de opdracht is: tussen 8000BC en 8069AZ

Ik zou heel graag de uitdrukking en reactie van de leraar willen zien/horen als hij de version_compare() versie voor zijn neus krijgt. O-)

[ Voor 41% gewijzigd door DJMaze op 28-10-2016 00:08 ]

Maak je niet druk, dat doet de compressor maar


Acties:
  • 0 Henk 'm!

  • Hakuna-Matata
  • Registratie: April 2016
  • Laatst online: 14-02 17:27
Ik ga nog eens naar die code kijken.
Die leraar gaat niet zo op details als hier wordt beschreven, en daarom snap ik niet echt wat je ermee kan of wat er bedoelt wordt.
En dat boekje snap ik ook niet echt goed, leer meer van die ene klasgenoot dan van die leraar.
De leraar doet wel z'n best om het uit te leggen.
1 iemand kan beter php dan die leraar en wij hebben de indruk dat die leraar dat niet zo leuk vindt.
De toets ging over een formulier maken.
En je moet de sinus, en de cosinus uitrekenen.
En bij het zien van het woordje sinus had ik een black out.
Dat html is perfect gelukt, maar dat php helaas niet.
En dat had bijna iedereen.
Met die formule ging het bij bijna iedereen mis.
Ik wist niet hoe je een wortelteken kon krijgen.
En de tijd was bijna om.
Maar iemand uit m'n klas heeft met een groepje die toets doorgenomen, en nu snappen we het wel.
En morgen gaat die leraar het met ons doornemen.

Acties:
  • 0 Henk 'm!

  • V-rg
  • Registratie: Juni 2007
  • Laatst online: 20-09 14:26
Hakuna-Matata schreef op donderdag 27 oktober 2016 @ 22:00:
[...]

Dus ik ben gezakt...
Ik heb 8 punten, dus omgerekend een 2.7, want je kon er 20 halen voor een 5,5.
Iedereen heeft hem verkloot, en de degene die echt php kan zei dat er geen kant van klopt.
En hij zei dat de toets te moeilijk was voor een groep beginners.
Laagste is 2.3 hoogste is 10 uit de klas
Gemiddelde ligt rond de 2.3-3.3
Soms een uitschieter naar een 4 of een 7.7 of een 10.
Dus ongeveer 20 mensen van de 25 mensen gaan de toets maandag herkansen, en hopelijk haal ik hem dan wel.
En anders word het met geluk havo ng/nt, en dan de genetica, DNA richting in van dieren.
Dat klinkt als een pittige toets inderdaad, mocht je geen Google gebruiken en dergelijke? (vanwege dat wortel "commando" kon je zo opzoeken :p).

Hoop dat de uitleg van de docent boel duidelijker maakt en dat meer er gaan slagen... want anders blijft er wel een erg kleine klas over. Maar moet ook zeggen dat soms de stapjes qua PHP best hoog zitten voor mensen die totaal geen programmeerervaring hebben.

Veel succes dan maar weer maandag!

offtopic:
Voel me beetje "offtopic" gaan :+

Acties:
  • 0 Henk 'm!

  • Hakuna-Matata
  • Registratie: April 2016
  • Laatst online: 14-02 17:27
V-rg schreef op vrijdag 28 oktober 2016 @ 09:45:
[...]


Dat klinkt als een pittige toets inderdaad, mocht je geen Google gebruiken en dergelijke? (vanwege dat wortel "commando" kon je zo opzoeken :p).

Hoop dat de uitleg van de docent boel duidelijker maakt en dat meer er gaan slagen... want anders blijft er wel een erg kleine klas over. Maar moet ook zeggen dat soms de stapjes qua PHP best hoog zitten voor mensen die totaal geen programmeerervaring hebben.

Veel succes dan maar weer maandag!

offtopic:
Voel me beetje "offtopic" gaan :+
Dankjewel
We mochten alles gebruiken behalve internet.
Hij was te pittig voor ons als groep beginners zei degene die een 10 heeft gehaald.
Diegene gaat van het weekend weer sessies geven aan de mensen die willen.
2 hadden een voldoende en 23 hadden een onvoldoende en een zware ook nog. (1,9 tot 4, maar meeste was tussen de 2.3 of de 3.3).
En dat is bij de andere klassen precies net zo ongeveer.
Die man had het uitgelegd aan ons, en nu snappen mensen het.
Maar die man zei als je een 3 haalt moet je gaan kijken naar een andere opleiding ne als je een 5,5 haalt dan moet je kijken of je dat wel echt wilt.
Dus iedereen zat met het idee van als ik hiervoor zak dan moet ik een andere opleiding gaan doen.
Pagina: 1