Hallo, ik ben begonnen met php op een mac, maar ik heb nu bestande die het opeens niet doen en voorheen wel op pc.. en online.

Stukje uit een simpell gastenboek:


$result = mysql_query("INSERT INTO `nieuwsberichten` ( `ID` , `DATUM` , `AUTEUR` , `TITEL` , `BERICHT` ) VALUES ('','$naam','$datum','$bericht','$titel');")
or die ("error:" . mysql_error() );
header("location: index.html");
?>


in de phpmyadmin lukt het aanmaken wel, maar in de local host wordt er niks ge-insert...
Waarschijnlijk zet ik net iets verkeerd.. maar wat?
Vanwaar die vieze backtics ` in je query? En waar komen de variabelen $naam, etc. vandaan? Uit de lucht vallen? Dit lijkt mij een typisch gevalletje superglobals... Google daar maar eens op, of gebruik de FAQ.

Waarschijnlijk heeft de server nu betere veiligheidsinstellingen waardoor de oude zooi niet meer werkt. Gelukkig maar!

Ps. De datum is toch wel in het formaat DATE (of DATETIME), dus yyyy-mm-dd? Zo niet, dan heb je nog een probleem...
variabelen worden uit een andere bestand gelezen, het invoer gedeleelte van de berichten.. (veld namen).

Maar ligt de fout in de haakjes dan? ' of " ... zoiets...?..
Wanneer je 100% zeker weet dat de variabelen bestaan (test dit dus eerst!) en de query is goed, echo de query eens, dan kan het nog zijn dat je nu een probleem hebt met de hoofdletters. Wanneer de kolomnamen in de tabel zijn geschreven met kleine letters, dan moet je ze ook zo in de query opnemen. Het is trouwens onverstandig om uberhaubt hoofdletters in de database-, tabel- en/of kolomnamen op te nemen. Hoofdletters gebruik ik uitsluitend voor de SQL-syntax en nooit of te nimmer voor namen. Dan krijg je hier ook nooit problemen mee.
nou ik heb de hoofdletters wegggehaald en gecheckt of de variabelen kloppen..

maar hij blijft lege velden als output geven.. terwijl als ik het in de admin invoer wel werkt..

dus er meot ietds niet kloppen in het uitlezen.. enig idee of er punten kommas.. anders genoteerd moeten worden?..
<?php
if($result)
{
echo 'gelukt';
}
else
{
die(mysql_error));
}
?>

voeg dit even toe, wat krijg je dan?
Eigenlijk is MySQL errors, via mysql_error(), geven niet goed. Als je slecht programmeerd, dan kan een hacker via die error en sql-injection redelijk wat uithalen in je database.
Wat ik vaak doe is een eigen mysql-error functie, en daar voor het debuggen een mysql_error()-functie inzetten. Die haal ik daar weer uit als ik niet meer hoef te debuggen.

<?php
$sql="INSERT INTO nieuwsberichten ( 
	ID , 
	DATUM , 
	AUTEUR , 
	TITEL , 
	BERICHT ) 
VALUES (
	'',
	'".$naam."',
	'".$datum."',
	'".$bericht."',
	'".$titel."')";

$result=mysql_query($sql)or die (mysql_error() );
header("location: index.html");
?>

EDIT zet er eens onder

echo $sql; en kijk eens wat dat doet
Steffan schreef op 21.09.2006 20:48
Eigenlijk is MySQL errors, via mysql_error(), geven niet goed. Als je slecht programmeerd, dan kan een hacker via die error en sql-injection redelijk wat uithalen in je database.
Wat ik vaak doe is een eigen mysql-error functie, en daar voor het debuggen een mysql_error()-functie inzetten. Die haal ik daar weer uit als ik niet meer hoef te debuggen.


maar tijdens het debuggen is het toch verrekte handig
Klaasjan,... jou stukkie erin gezet.. nog steeds lege velden..
ik snap er niks van... apple iets..?... ik gebruik MAMP...

Reageren