Hallo

Ik probeer al enige tijd een formulier te maken waarbij de ingeputte gegevens naar een MySQL-database gezonden worden. Ondanks enkele tutorials lukt het me niet want ik krijg blijkbaar geen verbinding met de database.
Hieronder post ik de twee files die beide op de wampserver staan.

Wat doe ik fout?

Misschien moet ik aanpassingen doen in phpMyAdmin? Ik gebruik de gewone comm.server met als referenties localhost, root en zonder paswoord. Ik maakte een database jvdatabase met een tabel met twee kolommen.

Het invulformulier (.php)

<head>
<title></title>
</head>
<body>
<h1>A small example page to insert some data in to the MySQL
database using PHP</h1>
<form action="send.php" method="post">
Firstname: <input type=
"text" name="Firstname" value=""><br>
<br>
Lastname: <input type="text" name="Lastname" value=""><br>
<br>
<input type="submit" name="submit"></form>
</body>
</html> 


PHP-file voor de aansluiting met de database (.php)

<?php

$hostname="localhost";
$database="jvdatabase";
$username="root";
$password="";

$link = mysql_connect($hostname, $username, $password);
if (!$link) {
die('Connection failed: ' . mysql_error());
}
else{
     echo "Connection to MySQL server " .$hostname . " successful!
" . PHP_EOL;
}

$db_selected = mysql_select_db($database, $link);
if (!$db_selected) {
    die ('Can\'t select database: ' . mysql_error());
}
else {
    echo 'Database ' . $database . ' successfully selected!';
}


if (isset($_POST['submit']))(

$sql="INSERT INTO formulier1 (FirstName, LastName)
VALUES ('$_POST'[Firstname]','$_POST'[Lastname]')";

if (!mysqli_query($con,$sql)) {
  die('Error: ' . mysqli_error($con));
}
echo "1 record added";

mysql_close($link);

?>



Hopelijk kan iemand me helpen.
Bedankt en groetjes!
Wat is de foutmelding die je krijgt?
Wel ik krijg niet echt een foutmelding, het probleem is dat de gegevens die ik invoer niet aankomen in de tabel die ik aanmaakte in phpMy Admin. Ze verdwijnen wel wanneer ik op submit druk.
Volgens mij moet je wel een foutmelding krijgen, want je query is fout:

<?php
$sql="INSERT INTO formulier1 (FirstName, LastName)
VALUES ('$_POST'[Firstname]','$_POST'[Lastname]')";
?>

Zie je die enkele quotes tussen $_POST en de blokhaak openen (beide keren)? Die quotes horen daar niet.
Verder ben je gevoelig voor SQL-injection, en kan je makkelijk gehacked worden.
Bescherm je $_POST-variabelen (en normaal ook $_GET en $_COOKIE) met mysql_real_escape_string().

Wat ik ook kan aanraden is om de MySQLi-functies te gebruiken. De MySQL-functies zullen over enkele jaren verladen tijd zijn, waarbij MySQLi het stokje overneemt.
Alvast bedankt voor de tips.

Jammer genoeg blijven de data die ik input op het invulformulier nu op de pagina staan, ze verhuizen nog steeds niet naar de database.

Enig idee wat hiervan de oorzaak kan zijn, en/of hoe ik dit kan oplossen?
Jasper Verelst op 19/08/2014 19:46:51

Enig idee wat hiervan de oorzaak kan zijn, en/of hoe ik dit kan oplossen?

Zolang je niet aangeeft wat je veranderd hebt (en nog beter, de nieuwe code plaatst), nee, geen idee.
In je openingspost lees ik dat je problemen hebt met de databaseverbinding maken.
Ben daarom benieuwd wat de controle op regel 9 voor een melding oplevert.
De controle op regel 18 moet je ook een melding opleveren. Welke?
En zoals Erwin H aangeeft, daarna moet je een (fout)melding krijgen op die query.
Vergeef me mijn waarschjnlijk idiote vraag, maar de reden dat ik de data die ik ingeef in het invulformulier niet te zien krijg in mijn aangemaakte tabel in phpMyAdmin wanneer ik op submit heb gedrukt, kan de reden zijn dat ik nog geen website en domeinnaam heb en ik dit dus probeer vanuit enkele losse pagina's die ik op de wamp-server oploadde? Ik meen dit ergens gelezen te hebben, dat er een host voor nodig is?

Greets
Als je WAMPP of een andere lokale webserver hebt zou het al moeten werken. Dat je een domein of externe webhosting nodig hebt staat los van je redenatie.

Reageren