Registreer FAQ Berichten van vandaag


Ga terug   Scholieren.com forum / Technologie / Software & Hardware
Reageren
 
Topictools Zoek in deze topic
Oud 29-08-2002, 11:29
Slaughterer
Slaughterer is offline
Ik heb een reactieformulier met php gemaakt, maar het probleem is, als alles is ingevuld, dat de gegevens op de een of andere manier niet worden weggeschreven naar de tabel.

Geven van een reactie:
formulier.html
Citaat:
<form method="post" action="post.php">
<table align="center">
<tr>
<td>naam:</td>
<td><input type="text" name="naam"><td>
</tr>
<tr>
<td>email:</td>
<td><input type="email" name="email"> <font size="1">*wordt niet getoond</font></td>
</tr>
<tr>
<td>reactie:</td>
<td><textarea name="reactie" cols="45" rows="5"></textarea></td>
</tr>
</table>
<br>
<table align="center">
<tr>
<td></td>
<td><input type="submit" name="valider" value="Zenden"> <input type="reset" value="Wissen"></td>
</tr>
</table>
</form>
Wegschrijven van de reactie:
post.php
PHP-code:
<html>
<head>
 <link href="../../css/standaard.css" rel="stylesheet" type="text/css">
 <link href="../vakantieverslag.css" rel="stylesheet" type="text/css">
</head>

<body>

<?php
 $db 
mysql_connect();
 
$continu=1;

 if (
$naam == "")
 {
 print(
"Vul je naam in<br>");
 
$continu=0;
 }

 if (
$continu == 1)
 {
 
$datum=date("Y-m-d H:i:s");
 
$sql="INSERT INTO reacties zomervakantie 2002 (naam, email, datum, reactie) VALUES ('$naam', '$email', '$datum', '$reactie')";
 
mysql_query($sql$db);
 print(
"Bedankt voor je reactie!") ;
 }
 else
 {
 print(
"<a href=formulier.html>terug naar formulier</a>");
 }
 
?>

</body>
</html>
En hoewel het hier niet aan zal liggen, omdat ze gewoon helemaal niet in de tabel kijken (ook als ik handmatig naar mijn database ga waar ik het kan beheren) zal ik ook even de het opvragen erbij zetten

reacties.php
PHP-code:
<table align="center" border="1">
 <tr>
  <td bgcolor="black">DATUM</td>
  <td bgcolor="black">NAAM</td>
  <td bgcolor="black">REACTIE</td>
 </tr>

 <?php
  $db 
mysql_connect();
  
$sql="SELECT DATE_FORMAT(datum,'%d-%m-%Y %H:%i:%s') AS datum, naam, reactie FROM reacties zomervakantie 2002 ORDER by datum DESC";
  
$res=mysql_query($sql$db);
  while (
$ligne mysql_fetch_object ($res))
  {
   print 
"<tr>";
   print 
"<td>$ligne->datum</td>";
   print 
"<td>$ligne->naam</td>";
   print 
"<td>$ligne->reactie</td>";
   print 
"</tr>";
  }
  
mysql_free_result ($res);
  
mysql_close($db);
 
?>
</table>
De database is als volgt:
Citaat:
CREATE TABLE `reacties zomervakantie 2002` (
`id` MEDIUMINT(5) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
`naam` VARCHAR(128) NOT NULL,
`email` VARCHAR(128) NOT NULL,
`datum` DATETIME NOT NULL,
`reactie` TEXT NOT NULL
);
Wie ziet er wat er mis is en kan mij helpen?
Met citaat reageren
Advertentie
Oud 29-08-2002, 11:39
McMotion
Avatar van McMotion
McMotion is offline
ten eerste moet je quotes om je tabelnaam heen zetten... dus:

INSERT INTO "reacties zomervakantie 2002" (na.....etc.

ten tweede ik zou $_POST gebruiken.. dus $_POST['naam'] in plaats van $naam.. want bij sommige php versies kan dat, maar bij andere niet...

ook moet je alle data die wordt ingevoerd eerst door mysql_escape_string() heen halen, anders gaat het ook fout als je een quote ofzo invoert
__________________
[AvatarDraw(c) v1.0 is uit de lucht (en per ongeluk van mijn hardeschijf verdwenen tijdens het weggooien ervan
Met citaat reageren
Oud 29-08-2002, 11:55
Manuzhai
Avatar van Manuzhai
Manuzhai is offline
Verder KAN het nuttig zijn om host, username en password in je mysql_connect() te zetten.
__________________
Slechts beschikbaar via naamzoek/privebericht.
Met citaat reageren
Oud 29-08-2002, 11:56
Slaughterer
Slaughterer is offline
Citaat:
Manuzhai schreef:
Verder KAN het nuttig zijn om host, username en password in je mysql_connect() te zetten.
Dat hoeft niet. Bij het gastenboek dat ik al heb gemaakt is dat niet gedaan, die werkt prima.
Met citaat reageren
Oud 29-08-2002, 12:04
Manuzhai
Avatar van Manuzhai
Manuzhai is offline
Citaat:
PHP-code:
<?php
 $db 
mysql_connect();
 
$continu=1;

 if (
$naam == "")
 {
 print 
"Vul je naam in<br>";
 
$continu=0;
 }

 if (
$continu == 1)
 {
 
$datum=date("Y-m-d H:i:s");
 
$sql="INSERT INTO 'reacties zomervakantie 2002' (naam, email, datum, reactie) VALUES ('".mysql_escape_string($naam)."', '".mysql_escape_string($email)."', '$datum', '$reactie')";
 
mysql_query($sql$db);
 print(
"Bedankt voor je reactie!") ;
 }
 else
 {
 print(
"<a href=formulier.html>terug naar formulier</a>");
 }
 
?>

</body>
</html>
En waarom gebruik je uberhaupt een tabelnaam met spaties erin? Dat is vragen om problemen. Maak er underscores van.
__________________
Slechts beschikbaar via naamzoek/privebericht.
Met citaat reageren
Oud 29-08-2002, 12:10
Chimera
Avatar van Chimera
Chimera is offline
Citaat:
Slaughterer schreef:

Dat hoeft niet. Bij het gastenboek dat ik al heb gemaakt is dat niet gedaan, die werkt prima.
Lokaal misschien, maar op internet zul je toch echt een username en password moeten geven.
Met citaat reageren
Oud 29-08-2002, 12:13
McMotion
Avatar van McMotion
McMotion is offline
Citaat:
Manuzhai schreef:
En waarom gebruik je uberhaupt een tabelnaam met spaties erin? Dat is vragen om problemen. Maak er underscores van.
waarom niet gewoon spaties met quotes om het geheel?? veel makkelijker toch? is niet vragen om problemen hoor
__________________
[AvatarDraw(c) v1.0 is uit de lucht (en per ongeluk van mijn hardeschijf verdwenen tijdens het weggooien ervan
Met citaat reageren
Oud 29-08-2002, 12:16
Chimera
Avatar van Chimera
Chimera is offline
Citaat:
McMotion schreef:


waarom niet gewoon spaties met quotes om het geheel??
IIRC vallen tabelnamen met spaties er in buiten de SQL standaard. Porten naar een ander DB systeem kan dan dus problemen opleveren.

Bovendien is het gewoon onoverzichtelijk. Ook geeft een naam als "reacties zomervakantie 2002" al aan dat het DB ontwerp gewoon brak is.
Met citaat reageren
Oud 29-08-2002, 12:22
Slaughterer
Slaughterer is offline
Citaat:
McMotion schreef:
ten eerste moet je quotes om je tabelnaam heen zetten... dus:

INSERT INTO "reacties zomervakantie 2002" (na.....etc.

ten tweede ik zou $_POST gebruiken.. dus $_POST['naam'] in plaats van $naam.. want bij sommige php versies kan dat, maar bij andere niet...

ook moet je alle data die wordt ingevoerd eerst door mysql_escape_string() heen halen, anders gaat het ook fout als je een quote ofzo invoert
1)Ik heb het met quotes geprobeerd, maar dan werd er JUIST een foutmelding gegeven. Toen ik deze weghaalde was de foutmelding verdwenen...alleen nog geen input, maar geen foutmelding.
2)Bij deze php-versie kan dat wel
3)Waar had ik dat dan niet gedaan?

Citaat:
Manuzhai schreef:
En waarom gebruik je uberhaupt een tabelnaam met spaties erin? Dat is vragen om problemen. Maak er underscores van.
Tsja, dat is inderdaad dom van me. Ik van underscore neergezet en alles werkte gelijk perfect. Bedankt!
Met citaat reageren
Oud 29-08-2002, 12:58
McMotion
Avatar van McMotion
McMotion is offline
Citaat:
Slaughterer schreef:
3)Waar had ik dat dan niet gedaan?
tjongejongejonge ik hoop echt dat dit een grapje is, anders is het wel heeeeel erg met je gesteld
__________________
[AvatarDraw(c) v1.0 is uit de lucht (en per ongeluk van mijn hardeschijf verdwenen tijdens het weggooien ervan
Met citaat reageren
Advertentie
Reageren


Regels voor berichten
Je mag geen nieuwe topics starten
Je mag niet reageren op berichten
Je mag geen bijlagen versturen
Je mag niet je berichten bewerken

BB code is Aan
Smileys zijn Aan
[IMG]-code is Aan
HTML-code is Uit

Spring naar

Soortgelijke topics
Forum Topic Reacties Laatste bericht
Huiswerkvragen: Cultuur, Maatschappij & Economie cash_flow maken...het komt maar niet uit
ecobest
0 11-04-2007 00:27
Software & Hardware [PHP] Edit script
chatfreak2002
42 13-08-2002 08:59


Alle tijden zijn GMT +1. Het is nu 00:02.