Wegschrijven naar DB gaat niet, Stapgewijs hulp ? van blz 1 -> 12

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2 3 ... 9 10 11 12 volgende »

Frank -

Frank -

21/12/2007 17:31:00
Quote Anchor link
wouter schreef op 21.12.2007 17:27:
Iddem , maar ik controleer eerst even dit , jou stukje is te ingewikkeld voor me :-)

Notice: Undefined offset: 1 in /home/phpdesi/domains/php-design.be/public_html/wouter/Grootsysteem/verwerk.php on line 11
Je hebt geen geldig uur ingevuld

list($uur, $minuut) = explode(':', $_POST['uur']);
list($dag, $maand, $jaar) = explode('-', $_POST['dag']);

mvg
Waarom verwacht jij in de variabele $_POST['dag'] een complete datum? Lijkt mij niet logisch.

Echo deze variabelen ook eens, dan weet je wat de input is.
 
PHP hulp

PHP hulp

29/04/2024 12:58:17
 
Wouter K

Wouter K

21/12/2007 17:31:00
Quote Anchor link
pgfrank : als je invuld 1700 zou hij het moeten verwerken als 17:00 (dit kan soms gebeuren dat de invuller vergeet een : te zetten
 
Joren de Wit

Joren de Wit

21/12/2007 17:35:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
elseif(empty($uur) || is_numeric($uur))
?>

Als je een uur in het formaat hh:mm invult, zal dat uur niet numeriek zijn. Dus is_numeric() kun je hier niet gebruiken.

@Frank: dat is nog een overblijfsel van het brakke beginscript. Maar ondanks dat de naamgeving bijzonder krom is, bevatten $_POST['dag'] volgens mij een datum en $_POST['uur'] een tijdstip in het formaat hh:mm.
 
Frank -

Frank -

21/12/2007 17:37:00
Quote Anchor link
Ok, duidelijk, hoogste tijd om goede namen te gaan gebruiken!
 
Jan Koehoorn

Jan Koehoorn

21/12/2007 17:37:00
Quote Anchor link
wouter schreef op 21.12.2007 17:31:
pgfrank : als je invuld 1700 zou hij het moeten verwerken als 17:00

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
    $tijd
= '17:00';
    $tijd = preg_replace ('/[^0-9]/', '', $tijd);
    if (strlen ($tijd) != 4) {
        echo 'foutmelding';
    }

    else {
        $h = substr ($tijd, 0, 2);
        $m = substr ($tijd, 2, 2);
        $tijd = $h . ':' . $m;
        echo $tijd;
    }

?>
 
Jan Koehoorn

Jan Koehoorn

21/12/2007 17:38:00
Quote Anchor link
@ wouter: ik heb 1 van je posts verwijderd wegens bumpen.

mod-edit::
Bumpen

Twee of meer keer achter elkaar in je eigen topic posten, voordat andere forumleden gereageerd hebben, heet "bumpen".
Omdat het opdringerig overkomt is bumpen pas na 24 uur toegestaan.
Bumpen kan een reden zijn voor de admins en mods om een topic te sluiten.
Gebruik het Afbeelding knopje om je tekst aan te passen indien nodig.
 
Wouter K

Wouter K

21/12/2007 17:38:00
Quote Anchor link
How How How (nee de kerstman is er nog niet)

Ik kan moeilijk of niet deze code zomaar inwerken oftwel doe ik gewoon die LIST weg en plaats deze code ?


Ok, jan , zag het telaat ..:(

heb inmiddels als meer als 150 mails verwijderd van dit topic :p

(zie profiel, ik doe normaal nooit bumping)
Gewijzigd op 01/01/1970 01:00:00 door Wouter K
 
Joren de Wit

Joren de Wit

21/12/2007 17:41:00
Quote Anchor link
Quote:
Ik kan moeilijk of niet deze code zomaar inwerken oftwel doe ik gewoon die LIST weg en plaats deze code ?
Simpelweg copy/paste gaat natuurlijk niet werken, dat werkt bijna nooit.

Ga er eens over nadenken hoe en waar je dat in je code zou willen hebben. Ga het invoegen en kijk of het werkt. Krijg je een foutmelding, werk hem weg en probeer het opnieuw....
 
Jan Koehoorn

Jan Koehoorn

21/12/2007 17:41:00
Quote Anchor link
Zie mijn post van 17:37

Die maakt een goeie tijd van een ingevulde string, of geeft een foutmelding als er niets van te maken valt.
 
Wouter K

Wouter K

21/12/2007 17:43:00
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL);
include('db_config.php');

if($_SERVER['REQUEST_METHOD'] == 'POST')
{

    $naam = trim($_POST['naam']);
    $uur = trim($_POST['uur']);
    $dag = trim($_POST['dag']);
    
    $tijd = $_POST['uur'];
    $tijd = preg_replace ('/[^0-9]/', '', $tijd);
    if (strlen ($tijd) != 4) {
        echo 'foutmelding';
    }

    else {
        $h = substr ($tijd, 0, 2);
        $m = substr ($tijd, 2, 2);
        $tijd = $h . ':' . $m;
        echo $tijd;
    }


    list($dag, $maand, $jaar) = explode('-', $_POST['dag']);
    
    if(empty($naam))
    {

        echo 'Je bent vergeten een naam in te vullen.';
    }

    elseif(empty($uur) || is_numeric($uur))
    {

        echo 'Je hebt geen geldig uur ingevuld';
    }

    elseif(!@checkdate($maand, $dag, $jaar))
    {

        echo 'Je hebt geen geldige datum ingevuld';
    }

    else
    {
        $dbFormaat = $jaar.'-'.$maand.'-'.$dag.'-'.$uur.':00';
        $sql = "
            INSERT INTO afspraken (
                afspraak,
                naam )
            VALUES (
                '"
.$dbFormaat."',
                '"
.$naam."' )
            "
;
        
        if(!$res = mysql_query($sql))
        {

            if(mysql_errno() == 1062)
            {

                echo 'Dit tijdstip is al bezet!<br>Bekijk <a href="showafspraak.php">hier</a> welke nog vrij zijn.';
            }

            else
            {
                trigger_error(mysql_error().'<br />In query: '.$sql);
            }
        }

        else
        {
            echo 'Invoegen van nieuwe afspraak is gelukt!<br>';
        echo 'Bekijk <a href="showafspraak.php">hier</a> naar al de gemaakte afspraken.';
        }
    }
}

?>



Uitkomst..
17:00Je hebt geen geldig uur ingevuld
 
Frank -

Frank -

21/12/2007 17:45:00
Quote Anchor link
$dbFormaat = $jaar.'-'.$maand.'-'.$dag.'-'.$uur.':00';

Dat levert geen geldige datumtijd op, tussen dag en uur hoort geen - te staan.

Verder ben je de ene keer met $uur bezig en de andere keer met $tijd. Ik verwacht daar problemen.
 
Wouter K

Wouter K

21/12/2007 17:47:00
Quote Anchor link
ik controleer de datum

Hij moet altijd zo zijn

08-09-2007 ipv 08092007

dan kijk ik het uur op dezelfde manier na ..
 
Jan Koehoorn

Jan Koehoorn

21/12/2007 17:47:00
Quote Anchor link
wouter schreef op 21.12.2007 17:43:
Uitkomst..
17:00Je hebt geen geldig uur ingevuld

Die 17:00 die eruit rolt werkt dus ;-)
 
Frank -

Frank -

21/12/2007 17:49:00
Quote Anchor link
Jan Koehoorn schreef op 21.12.2007 17:47:
wouter schreef op 21.12.2007 17:43:
Uitkomst..
17:00Je hebt geen geldig uur ingevuld

Die 17:00 die eruit rolt werkt dus ;-)
Dat is dus $tijd, de foutmelding gaat over $uur...
 
Wouter K

Wouter K

21/12/2007 17:49:00
Quote Anchor link
$tijd = $_POST['uur'];
 
Joren de Wit

Joren de Wit

21/12/2007 17:50:00
Quote Anchor link
Het voorbeeld van Jan, iets aangepast en een functie checktijd() van gemaakt. Toegepast in je script en $dbFormaat aangepast:
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL);
include('db_config.php');

function
checktijd($tijd)
{

    $tijd = preg_replace ('/[^0-9]/', '', $tijd);
    if (strlen ($tijd) != 4)
    {

        return false;
    }

    else
    {
        $h = substr ($tijd, 0, 2);
        $m = substr ($tijd, 2, 2);
        if($h > 0 && $h < 24 && $m > 0 && $m < 60)
        {

            $tijd = $h . ':' . $m . ':00';
            return $tijd;
        }
    }
}


if($_SERVER['REQUEST_METHOD'] == 'POST')
{

    $naam = trim($_POST['naam']);
    $uur = trim($_POST['uur']);
    
    list($dag, $maand, $jaar) = @explode('-', $_POST['dag']); // Hier de fout onderdrukken als $_POST['dag'] niet bestaat, controle volgt later!
    
    if(empty($naam))
    {

        echo 'Je bent vergeten een naam in te vullen.';
    }

    elseif(empty($uur) || !$tijd = checktijd($uur))
    {

        echo 'Je hebt geen geldig uur ingevuld';
    }

    elseif(!@checkdate($maand, $dag, $jaar))
    {

        echo 'Je hebt geen geldige datum ingevuld';
    }

    else
    {
        $dbFormaat = $jaar.'-'.$maand.'-'.$dag.' '.$tijd;
        $sql = "
            INSERT INTO afspraken (
                afspraak,
                naam )
            VALUES (
                '"
.$dbFormaat."',
                '"
.$naam."' )
            "
;
        
        if(!$res = mysql_query($sql))
        {

            if(mysql_errno() == 1062)
            {

                echo 'Dit tijdstip is al bezet!<br>Bekijk <a href="showafspraak.php">hier</a> welke nog vrij zijn.';
            }

            else
            {
                trigger_error(mysql_error().'<br />In query: '.$sql);
            }
        }

        else
        {
            echo 'Invoegen van nieuwe afspraak is gelukt!<br>';
        echo 'Bekijk <a href="showafspraak.php">hier</a> naar al de gemaakte afspraken.';
        }
    }
}

?>
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
 
Frank -

Frank -

21/12/2007 17:51:00
Quote Anchor link
wouter schreef op 21.12.2007 17:49:
$tijd = $_POST['uur'];
Ja, en toen?

$tijd ga je vervolgens controleren en opmaken, prachtig. Wanneer je daarmee klaar bent, ga je kijken of $uur bestaat en een waarde heeft. Dat gaat dus fout, deze bestaat niet en heeft geen waarde. Gevolg: Een foutmelding die nergens op slaat, de hele controle slaat nergens op. Je hebt $tijd toch niet voor niks gecontroleerd?

Edit: Blanche trekt het niet meer en gaat zelf wel even scripten... ;)
Gewijzigd op 01/01/1970 01:00:00 door Frank -
 
Wouter K

Wouter K

21/12/2007 17:53:00
Quote Anchor link
Die heb ik inmiddels weggedaan :)

Na je post paste ik alles aan , maar toen bolde het nietmeer. Nu krijg ik volgende error met het script hierboven

Je hebt geen geldig uur ingevuld
Ik vulde dus in 1700 dus hij werkt het nnog niet goed uit.
 
Joren de Wit

Joren de Wit

21/12/2007 17:55:00
Quote Anchor link
Kijk even naar de code die ik voor je aangepast heb.

Dat je die foutmelding krijgt komt zoals gezegd doordat je
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
|| is_numeric($uur)
?>

in je code had staan. Maar dat is in de code in mijn vorige post helemaal verdwenen.
 
Wouter K

Wouter K

21/12/2007 17:56:00
Quote Anchor link
Die ik heb ik niet meer nu neeh , moet ik het er opnieuw bijzetten .?
 

Pagina: « vorige 1 2 3 ... 9 10 11 12 volgende »



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.