Wegschrijven naar DB gaat niet, Stapgewijs hulp ? van blz 1 -> 12
Pagina: « vorige 1 2 3 ... 9 10 11 12 volgende »
wouter schreef op 21.12.2007 17:27:
Waarom verwacht jij in de variabele $_POST['dag'] een complete datum? Lijkt mij niet logisch.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
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
Echo deze variabelen ook eens, dan weet je wat de input is.
pgfrank : als je invuld 1700 zou hij het moeten verwerken als 17:00 (dit kan soms gebeuren dat de invuller vergeet een : te zetten
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.
Ok, duidelijk, hoogste tijd om goede namen te gaan gebruiken!
wouter schreef op 21.12.2007 17:31:
pgfrank : als je invuld 1700 zou hij het moeten verwerken als 17:00
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 knopje om je tekst aan te passen indien nodig.
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 knopje om je tekst aan te passen indien nodig.
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
Quote:
Simpelweg copy/paste gaat natuurlijk niet werken, dat werkt bijna nooit.Ik kan moeilijk of niet deze code zomaar inwerken oftwel doe ik gewoon die LIST weg en plaats deze code ?
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....
Die maakt een goeie tijd van een ingevulde string, of geeft een foutmelding als er niets van te maken valt.
Code (php)
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
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.';
}
}
}
?>
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
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.
Hij moet altijd zo zijn
08-09-2007 ipv 08092007
dan kijk ik het uur op dezelfde manier na ..
wouter schreef op 21.12.2007 17:43:
Uitkomst..
17:00Je hebt geen geldig uur ingevuld
17:00Je hebt geen geldig uur ingevuld
Die 17:00 die eruit rolt werkt dus ;-)
Jan Koehoorn schreef op 21.12.2007 17:47:
Die 17:00 die eruit rolt werkt dus ;-)
Dat is dus $tijd, de foutmelding gaat over $uur...wouter schreef op 21.12.2007 17:43:
Uitkomst..
17:00Je hebt geen geldig uur ingevuld
17:00Je hebt geen geldig uur ingevuld
Die 17:00 die eruit rolt werkt dus ;-)
$tijd = $_POST['uur'];
Code (php)
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
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.';
}
}
}
?>
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
wouter schreef op 21.12.2007 17:49:
Ja, en toen?$tijd = $_POST['uur'];
$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 -
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.
Dat je die foutmelding krijgt komt zoals gezegd doordat je
in je code had staan. Maar dat is in de code in mijn vorige post helemaal verdwenen.
Die ik heb ik niet meer nu neeh , moet ik het er opnieuw bijzetten .?