Verificatie script

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2 3

Michael -

Michael -

28/02/2023 10:07:03
Quote Anchor link
Arno van Zanten op 28/02/2023 09:33:06:
start.php bevat een andere pagina.
Dat is de 18plus pagina


Maar die voeg je dan alleen toe wanneer de controle is gedaan, na een refresh kom je daar niet meer. Denk dat de opbouw van je script niet helemaal klopt.

Index -> Check op sessie -> Zo niet -> Stuur door naar formulier -> Formulier juist ingevuld -> Set sessie -> Ga terug naar index.
 
PHP hulp

PHP hulp

04/05/2024 19:17:12
 
- Ariën  -
Beheerder

- Ariën -

28/02/2023 10:11:33
Quote Anchor link
En for the record, gebruik je ook een pagina-systeem? Zoals index.php?pagina=contact, die vervolgens alle invoer in $_GET['pagina'] wat geldig, gevalideerd is, in de include() plaatst?

In dat geval kan je de controle op 18+ ook daar al uitvoeren (met uitsluiten van je verificatie-pagina). Anders moet je dat op elke pagina doen. Het liefst wil je voor elke site één voordeurtje hebben waardoor iemand naar binnen komt, en dat is dan de index.php.

Met Michael's flow en met deze tip heb je een logische website voor elkaar.
Gewijzigd op 28/02/2023 10:12:31 door - Ariën -
 
Arno van Zanten

Arno van Zanten

28/02/2023 10:33:55
Quote Anchor link
- Ariën - op 28/02/2023 09:38:38:
Oke. Hoe wil je eigenlijk die headers op lijn 39 en 42 uitvoeren terwijl je daarvoor al HTML hebt staan?

lijn 39 is een include, geen header
 
- Ariën  -
Beheerder

- Ariën -

28/02/2023 10:34:42
Quote Anchor link
42 dan, de verwijzing naar disney.
Gewijzigd op 28/02/2023 10:35:05 door - Ariën -
 
Arno van Zanten

Arno van Zanten

28/02/2023 10:35:19
Quote Anchor link
- Ariën - op 28/02/2023 10:34:42:
42 dan


die zit in een functie
 
- Ariën  -
Beheerder

- Ariën -

28/02/2023 10:36:46
Quote Anchor link
Arno van Zanten op 28/02/2023 10:35:19:
- Ariën - op 28/02/2023 10:34:42:
42 dan


die zit in een functie

Nee. Of jij moet andere gedachten hebben over een functie in PHP :-P
Of je hebt inmiddels flink staan breken in je code dat je die nu wel gemaakt hebt.
Gewijzigd op 28/02/2023 10:37:31 door - Ariën -
 
Arno van Zanten

Arno van Zanten

28/02/2023 10:39:41
Quote Anchor link
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
15
16
17
18
19
20
21
22
23
24
<?php
if(isset($_POST['verify']))
                {

                $day = $_POST['day'];
                $month = $_POST['month'];
                $year = $_POST['year'];
                
                $birthday = mktime(0,0,0,$month,$day,$year);
                $difference = time() - $birthday;
                
                $age = floor($difference / 31556926);
                
                if($age >= 18)
                    {

                        $_SESSION['over18'] = 1;
                        include('inc/start.php');
                    }
else{
                        $_SESSION['under18'] = 0;
                        header('location: https://www.disney.com/');
                    }
                }
else {
*
/ some form /*                
                }

?>


alles wat tussen { script / functie } in zit, valt toch in een functie of script?
 
- Ariën  -
Beheerder

- Ariën -

28/02/2023 10:42:13
 
Michael -

Michael -

28/02/2023 10:48:29
Quote Anchor link
Maar we hadden al aangegeven dat je beter REQUEST_METHOD kunt gebruiken ipv isset() en een makkelijkere manier voor de leeftijd. Ik zie dat je deze adviezen niet toevoegt.

Daarnaast zou ik ook nog controleren of de ingevoerde datum geldig is en een header gebruiken ipv een include aangezien je anders in de POST blijft hangen (refresh maar eens, dan wil de browser opnieuw posten). Ook heb je 'under18' niet nodig aangezien je 'over18' gewoon als True (1) of False (0) zet. Dan krijg je dus iets als

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
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<?php
// Check of er gepost is
if($_SERVER['REQUEST_METHOD'] === 'POST') {
    
    // Set sessie op False
    $_SESSION['over18'] = False;

    // Check of de variabelen die we willen aanwezig zijn.
    if(isset($_POST['year'], $_POST['month'], $_POST['day'])) {

        // Check of de ingevoerde data een geldige datum is
        if(checkdate($_POST['month'], $_POST['day'], $_POST['year'])) {

            // Bereken leeftijd
            $birthday = new DateTime($_POST['year'] . '-' . $_POST['month'] . '-' . $_POST['day']);
            $today = new DateTime('today');
            $age = $birthday->diff($today)->y;
    
            // Set session
            if($age >= 18) {
                $_SESSION['over18'] = True;
                header('location: inc/start.php');
            }
else {
                header('location: https://www.disney.com/');
            }
        }
else {
            header('location: ' . $_SERVER['SCRIPT_NAME'] . '?error');
        }
    }
else {
        header('location: ' . $_SERVER['SCRIPT_NAME'] . '?error');
    }
}

if(isset($_GET['error'])) {
    echo '<p>Birthday is invalid.</p>';
}

?>

<div class='text-user'>Insert your birthday to verify</div>
    <div class='container'>
        <form id='contact' method='POST'>
            <fieldset>
                <input placeholder='Day' type='number' name='day' tabindex='1' autofocus>
                <input placeholder='Month' type='number' name='month' tabindex='1' autofocus>
                <input placeholder='Year' type='number' name='year' tabindex='1' autofocus>
            </fieldset>
            <button name='verify' type='submit' id='contact-submit' data-submit='...Sending'>Verify</button>
        </form>
    </div>
<div class='text-user'>Under construction, not all working yet</div>
Gewijzigd op 28/02/2023 10:51:28 door Michael -
 
Arno van Zanten

Arno van Zanten

28/02/2023 10:55:29
Quote Anchor link
Michael - op 28/02/2023 10:48:29:
Maar we hadden al aangegeven dat je beter REQUEST_METHOD kunt gebruiken ipv isset() en een makkelijkere manier voor de leeftijd. Ik zie dat je deze adviezen niet toevoegt.

Daarnaast zou ik ook nog controleren of de ingevoerde datum geldig is en een header gebruiken ipv een include aangezien je anders in de POST blijft hangen (refresh maar eens, dan wil de browser opnieuw posten). Ook heb je 'under18' niet nodig aangezien je 'over18' gewoon als True (1) of False (0) zet. Dan krijg je dus iets als....


Heel erg aardig van je kerel, ik begrijp je heel goed.
Maar ik probeer, dat wat ik heb overgenomen van een user op YT, te begrijpen.
Ja het is een verouderede code en ik ben nog niet zo ver als jullie met de PHP structuur code. Ik ben eigenlijk 8 jaar geleden gestopt met scripten, wegens verandering van baan en leef situatie.
Ik heb het weer pas recentelijk op gepakt en er is veel bij gekomen in de tijd dat ik gestopt was. Veel puzzel werk en veel uitzoeken.
HTML echter blijft grotendeels het zelfde, daar verander eigenlijk weinig of niks in.
PHP veranderd en vernieuwd bijna elke dag wel iets en daar zit het bij mij.
Ik zit nog met oude code te scripten en niet alles werkt meer zoals eerst en dus moet ik uitzoeken wat wel en niet werkt en proberen de nieuwere versie van PHP te begrijpen.

Dus heel erg aardig en ik begrijp jullie goede bedoelingen ook.
Ik probeer eerst altijd mijn code zover te begrijpen en te verbeteren, maar dat vergt voor mij tijd en energie ;)
Gewijzigd op 28/02/2023 11:27:28 door - Ariën -
 
- Ariën  -
Beheerder

- Ariën -

28/02/2023 11:32:44
Quote Anchor link
Welk filmpje is dat dan op YouTube? Ik vrees eerlijk gezegd dat het geen goed voorbeeld is, als je netjes wilt programmeren. Ik heb wel vaker wat YouTube tutorials gezien, maar vaak was het niet de juiste en nette manier qua opzet van de code.
Gewijzigd op 28/02/2023 11:34:43 door - Ariën -
 
Michael -

Michael -

28/02/2023 13:03:08
Quote Anchor link
Inderdaad wat Arien zegt. Het lijkt me ook niet handig om het eerst 'verkeerd' aan te leren.
Qua versie maakt het niks uit. De basis PHP wat je tot nu toe gebruikt is zo goed als gelijk in PHP4 als in PHP8.
 
Arno van Zanten

Arno van Zanten

28/02/2023 13:05:50
Quote Anchor link
- Ariën - op 28/02/2023 11:32:44:
Welk filmpje is dat dan op YouTube? Ik vrees eerlijk gezegd dat het geen goed voorbeeld is, als je netjes wilt programmeren. Ik heb wel vaker wat YouTube tutorials gezien, maar vaak was het niet de juiste en nette manier qua opzet van de code.


https://www.phphulp.nl/php/forum/topic/verificatie-script/104640/2/#759068


Toevoeging op 28/02/2023 13:06:08:

Daarin staat onder de link
 
Ivo P

Ivo P

28/02/2023 13:33:18
Quote Anchor link
Die tutorial op Youtube is dus 11 jaar oud.

Dan heb je het dus over PHP 5.3 maximaal. PHP 5.4 kwam eind 2011 uit.
En de maker zal zijn kennis op een oudere versie van PHP baseren.

Wat qua redirects mee kan spelen: velen vinden het wel een handige setting om standaard een outputbuffer aan te zetten. Daarbij mag je dan eerst 4 MB aan data outputten, voor het ook werkelijk naar buiten gaat.

Tot die tijd kun je dan dus alsnog een extra header sturen.

Leuk debuggen: waarom werkt mijn script voor Jan die op Plein 1 woont wel, maar voor Hendrik-Jan met Lange Achternaam op de Hele Lange Straatnaam 1111 niet. (omdat Jan niet onder de buffer blijft)

Kortom:
Leuk zo'n tutorial, maar dat is ongeveer als Nederlands leren mbv een boek uit 1906: Er zijn eenige zaaken eenigzins veranderd aan den Nederlandsche taal en evenzeer aan het programmeeren met PHP.
 
Arno van Zanten

Arno van Zanten

28/02/2023 14:00:53
Quote Anchor link
Ivo P op 28/02/2023 13:33:18:
Die tutorial op Youtube is dus 11 jaar oud.

Dan heb je het dus over PHP 5.3 maximaal. PHP 5.4 kwam eind 2011 uit.
En de maker zal zijn kennis op een oudere versie van PHP baseren.

Wat qua redirects mee kan spelen: velen vinden het wel een handige setting om standaard een outputbuffer aan te zetten. Daarbij mag je dan eerst 4 MB aan data outputten, voor het ook werkelijk naar buiten gaat.

Tot die tijd kun je dan dus alsnog een extra header sturen.

Leuk debuggen: waarom werkt mijn script voor Jan die op Plein 1 woont wel, maar voor Hendrik-Jan met Lange Achternaam op de Hele Lange Straatnaam 1111 niet. (omdat Jan niet onder de buffer blijft)

Kortom:
Leuk zo'n tutorial, maar dat is ongeveer als Nederlands leren mbv een boek uit 1906: Er zijn eenige zaaken eenigzins veranderd aan den Nederlandsche taal en evenzeer aan het programmeeren met PHP.


Dat is wat ik ook aangaf, ik ben al 8 jaar niet meer bezig geweest met scripten in PHP.
En ja er veranderd dagelijks wel iets in PHP.
Daar ben ik ook van bewust, dus daarom probeer ik het wel te begrijpen, maar voor mij gaat dat niet zo snel als bij jullie, ben ook weer wat ouder geworden in 8 jaar ;)
 
- Ariën  -
Beheerder

- Ariën -

28/02/2023 14:05:38
Quote Anchor link
Een goede site die lekker actuele is, is deze: https://www.phptutorial.net/.
Er staan ook goede tips op, en leuke 'snippets'.
 
Adoptive Solution

Adoptive Solution

28/02/2023 14:10:19
Quote Anchor link
Quote:
ik ben al 8 jaar niet meer bezig geweest met scripten in PHP


8 jaar niet meer bezig geweest met PHP?

Vorig jaar toch 11 keer een topic geplaatst in dit forum

https://www.phphulp.nl/profiel/arno-van-zanten/38434/
 
Arno van Zanten

Arno van Zanten

28/02/2023 15:12:25
Quote Anchor link
Ja klopt maar ik ben wel al een tijdje eruit geweest
 

Pagina: « vorige 1 2 3



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.