Beste forumhelper, bezoeker,
Dank u voor de handige boeken die u schrijft, alsmede uw aanwezigheid op dit forum. Ik heb een vraag die zelden voorkomt ivm prepared statements and sqlinjectie en die onvindbaar is in welk boek dan ook.
In mijn php-bestand met form action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>"
werkt het gedeelte insert niet. Wat is de reden?
FORM gedeelte staat hier
<?php
// INSERT gedeelte hier
if(isset($_POST['VOU'])){
$con_db=new mysqli($host, $user, $code, $db);
mysqli_set_charset($con_db,"utf8");
if($mysqli->connect_error){
echo '<br /><div id="errmsg">';
echo $openErr;
echo '</div>';
header('Location: getuigenis.php');
exit(0);
}
// Prepare an insert statement
if($stmnt=$con_db->prepare("INSERT INTO opinies (voucher, naam, email, bericht) VALUES (?, ?, ?, ?)")){
mysqli_set_charset($con_db,"utf8");
$stmnt->bind_param('ssss', $_POST['VOU'],$_POST['NME'],$_POST['EML'],$_POST['TXT']);
$stmnt->execute();
$stmnt->close();
$con_db->close();
}else{
$stmnt->close();
$con_db->close();
header('Location: getuigenis.php');
exit(0);
}
}
// SELECT gedeelte erna
$con_db=new mysqli($host, $user, $code, $db);
mysqli_set_charset($con_db,"utf8");
if($mysqli->connect_error){
echo '<br /><div id="errmsg">';
echo $openErr;
echo '</div>';
header('Location: getuigenis.php');
exit(0);
}
if($stmt=$con_db->prepare("SELECT id, naam, bericht FROM opinies WHERE id > ? ORDER BY id DESC")){
$id=0;
$stmt->bind_param("i", $id);
$stmt->execute();
$stmt->bind_result($id, $naam, $bericht);
while($stmt->fetch()){
// Because $naam and $bericht are passed by reference, their value
// changes on every iteration to reflect the current row
$nmeRead=ucfirst($naam);
$txtRead=ucfirst($bericht);
echo ("<div style=\"margin:8px 0;padding:8px 12px;border:1px solid #ccc;border-radius:5px;\">");
echo ("<strong>".$nmeRead."</strong><br />".$txtRead."<br />");
echo ("</div>"."\n");
}
$stmt->close();
$con_db->close();
}
?>
Nu, voorlopig gecombineerd met deze insert-code werkt het perfect:
<?php
//database transaction
$con_db=new mysqli($host, $user, $code, $db);
// Check connection
if ($conn->connect_error) {
echo '<br /><div id="errmsg">';
echo $openErr;
echo '</div>';
mysqli_close(con_db) or die ($closeErr);
header('Location: getuigenis.php');
exit(0);
}
mysqli_set_charset($con_db,"utf8") or die ($openErr);
$addrec="INSERT INTO opinies (voucher,naam,email,bericht) VALUES ($_POST['VOU'],$_POST['NME'],$_POST['EML'],$_POST['TXT'])";
if(!mysqli_query($con_db,$addrec)){
echo '<br /><div id="errmsg">';
echo 'FOUT '.mysqli_errno().' : '.mysqli_error();
echo '</div>';
mysqli_close(con_db) or die ($closeErr);
header('Location: getuigenis.php');
exit(0);
}
$rows=mysqli_affected_rows($con_db);
$con_db->close();
}
?>
Kan iemand mij adviseren?
Vriendelijk groet,
Lowie.
1.792 views