dat $_POST[] gebruiken is idd goed gezien door die hulp van je, zoals je voorheen deed was slordig
de reden ervan is echter niet om veiligheidsredenen, maar om een instellingsreden...in het configuratiebestand van php kun je instellen of je autoglobals (of superglobals ? ik haal ze vaak door mekaar ...) aan of uit wil hebben staan. Heb je deze uit staan, dan
moet je $_POST of $HTTP_POST_VARS (bijna 't zelfde...) gebruiken.
PHP:
$sql = "INSERT INTO News SET Date='$date', Title='$title', News='$news'"; //<-- controleer deze regel eens: Title='$title' News='$news' <-- Komma zie: Title='$title', News='$news'
is nog niet helemaal goed...geen scheiding van variabelen en strings...en de regel zelf is niet helemaal zoals ik hem gebruik ..
PHP:
$sql = "INSERT INTO News (Date,Title,News) VALUES ('" . $date . "','" . $title . "','" . $news . "')";
dan nog zo'n auto/superglobal ...
hoe het hoort:
PHP:
<?php echo $_SERVER["PHP_SELF"]; ?>
dan het belangrijkste gedeelte...wat je écht fout doet
if(!isset($_POST))
dit zal, tenzij je met de serversoftware loopt te prutsen, áltijd zo zijn...
isset() => controleert of een waarde BESTAAT
! => empty, wordt hier gebruikt als 'not'
if(not isset($_POST))...
wat je dus vraagt is of $_POST
niet bestaat...
$_POST bestaat altijd..evenals $_GET, $_SERVER, $_COOKIE en $_SESSION....
al deze voorgedefinieerde variabelen zijn
array's...
array's kunnen leeg zijn, wat de meesten ook zijn als ze niet gebruikt worden ($_POST, $_GET, $_COOKIE en $_SESSION)..
als je dan gaat controleren of ze een waarde bevatten:
if(!empty($_POST))
dan controleer je of $_POST NIET leeg is...als je dus $_POST["gebruikersnaam"] hebt, dan is hij niet leeg.
persoonlijk gebruik ik count() voor deze controle...count() is een functie die het aantal waarden in een array telt
PHP:
if(count($_POST) > 0)
{
// er zijn dingen gepost
}
else
{
// er zijn geen dingen gepost
}
daarom werkt je php script niet als je !isset gebruikt...
je moet kijken of er waarden inzitten, daarna pas controleren
dan, voor dat NOT NULL
NULL is niet hetzelfde als ""
"" is een lege string
NULL is echt niks
als je NOT NULL invult zal de waarde in de cel van een kolom niet NULL kunnen zijn, maar het kan wel een lege string zijn

als je wil controleren op het feit dat er geen lege string in de db wordt gezet, dan moet je dat in de php code doen met strlen()
PHP:
$tekstje = "blaat";
if(strlen($tekstje) > 3)
{
echo "\$tekstje bevat een waarde van meer dan 3 tekens";
}
else
{
echo "\$tekens bevat een waarde van 3 of minder tekens";
}
hopende dat je wat aan deze vage en snel getypte uitleg hebt
