Hallo,
Ich bekomme beim Update eines Textes folgenden Fehler:SQLSTATE[HY093]: Invalid parameter number: parameter was not defined
Kann mir hier jemand helfen?
Vielen Dank
Ich bekomme beim Update eines Textes folgenden Fehler:SQLSTATE[HY093]: Invalid parameter number: parameter was not defined
Kann mir hier jemand helfen?
PHP-Code:
<?php
$userid = $_SESSION['UserID'];
// Prüfen ob Admin oder nicht
if(!isset($_SESSION['Rechte']) OR !in_array('Adminbereich' , $_SESSION['Rechte']))
{
// Userbereich
die("<meta http-equiv='refresh' content='0; URL=../startseite'>");
}
else
{
define("UPLOAD_DIR", "/var/www/vhosts/xxx/httpdocs/images/blog/"); // Upload Ordner eintragen
try {
// Hier bitte Datenbank Daten eingeben, wenn vorher die DB benötigt wird schon verschieben und Rest anpassen
$db = new PDO('mysql:host=localhost;dbname=xxx', 'xxx', 'xxx', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
}
catch(PDOException $ex) {
echo $ex->getMessage();
// Hier eventuell Logging des Fehlers einbauen
}
// Adminbereich
if(isset($_GET['texte']))
{
if($_GET['texte'] == 'edit') // Einen Artikel bearbeiten
{
$id = $_GET['id'];
include_once("./fckeditor/fckeditor.php");
try {
$stmt = $db->prepare("SELECT id, titel, titel_pic, erstellt, klicks, user, meta_titel,meta_beschreibung, meta_keywords,text FROM blog WHERE id=:id");
$stmt->bindValue(':id', $id, PDO::PARAM_INT);
$stmt->execute();
$row = $stmt->fetchObject();
echo "<fieldset><legend>Bearbeiten eines Blogeintrags</legend>
<form enctype='multipart/form-data' action='index.php?seite=news_edit&texte=submit&id={$row->id}' method='post'>
<input type='hidden' name='id' value='{$row->id}'>
<label for='titel'>Titel:</label><br><input type='text' id='titel' name='titel' size='90' value='{$row->titel}'><br>
<label for='meta_beschreibung'>meta_beschreibung:</label><br><input type='text' id='meta_beschreibung' name='meta_beschreibung' size='90' value='{$row->meta_beschreibung}'><br>
<label for='meta_keywords'>meta_keywords:</label><br><input type='text' id='meta_keywords' name='meta_keywords' size='90' value='{$row->meta_keywords}'><br>
<label for='meta_titel'>meta_titel:</label><br><input type='text' id='meta_titel' name='meta_titel' size='90' value='{$row->meta_titel}'><hr>
<label for='titel_pic'>Bild:</label><br><input type='text' id='titel_pic' name='titel_pic' size='90' value='{$row->titel_pic}'><br>
<label for='datei'>Bilddatei:</label><br><input type='file' id='datei' name='datei'><hr>
<label for='user'>User:</label><br><input type='text' id='user' name='user' size='90' value='$_SESSION[UserID]'><br>
</fieldset>";
$oFCKeditor = new FCKeditor('inhalt');
$oFCKeditor->Width = '50%';
$oFCKeditor->Height = '350';
$oFCKeditor->BasePath = '/fckeditor/';
$oFCKeditor->Value = $row->text;
$oFCKeditor->Create();
echo "<br><input type='submit' value='ändern'></form>";
}
catch(PDOException $ex)
{
echo $ex->getMessage();
}
}
elseif($_GET['texte'] == 'submit') // Einen Artikel Updaten/Speichern
{
$user = $_SESSION["UserID"];
try {
$stmt = $db->prepare("UPDATE blog SET titel=:titel, text=:text, titel_pic=:titel_pic, erstellt=:erstellt, user=:user, meta_titel=:meta_titel , meta_beschreibung=:meta_beschreibung, meta_keywords=:meta_keywords WHERE id=:id");
$stmt->bindValue(':titel', $_POST["titel"], PDO::PARAM_STR);
$stmt->bindValue(':subtitel', $_POST["subtitel"], PDO::PARAM_STR);
/**
* Image Upload Routine: titel_pic Parameter binden entweder mit dem alten Wert oder einem neuen Bild
*/
$allowedExtensions=array(IMAGETYPE_GIF, IMAGETYPE_JPEG);; // Erlaubte Bildformate ... Gif+JPG zurzeit
try {
if($_FILES['datei']['size']>0){ // Neues Bild hochgeladen, ansonsten einfach den Standardwert nehmen (titel_pic)
if($_FILES['datei']['size'] >= 1024000){
throw new Exception("Das Bild darf nicht größer als 100KB sein.");
}
$dateityp = GetImageSize($_FILES['datei']['tmp_name']);
if(!in_array($dateityp[2],$allowedExtensions)){
throw new Exception("Das Bild liegt in einem nicht erlaubten Bildformat vor.");
}
if($_FILES['datei']['error']>0){
throw new Exception("Es ist ein Fehler beim Upload aufgetreten: " . $_FILES['datei']['error']);
}
$name = preg_replace("/[^A-Z0-9._-]/i", "_", $_FILES['datei']['name']); // Unerlaubte Zeichen im Dateinamen filtern
// Überschreiben unmöglich machen durch neuen Namen
$i = 0;
$parts = pathinfo($name);
while (file_exists(UPLOAD_DIR . $name)) {
$i++;
$name = $parts["filename"] . "-" . $i . "." . $parts["extension"];
}
// preserve file from temporary directory
$success = move_uploaded_file($_FILES['datei']['tmp_name'], UPLOAD_DIR . $name);
if (!$success) {
throw new Exception("Datei konnte nicht gespeichert werden im Upload Ordner.");
}
}
else // Kein neues Bild hochgeladen
{
$name = $_POST["titel_pic"];
}
}
catch(Exception $ex)
{
echo $ex->getMessage();
$name = $_POST["titel_pic"]; // Fallback auf den alten Wert wenn das neue Bild nicht funktioniert
}
$stmt->bindValue(':titel_pic', $name, PDO::PARAM_STR);
$stmt->bindValue(':user', $_POST["user"], PDO::PARAM_STR);
$stmt->bindValue(':meta_titel', $_POST["meta_titel"], PDO::PARAM_STR);
$stmt->bindValue(':meta_beschreibung', $_POST["meta_beschreibung"], PDO::PARAM_STR);
$stmt->bindValue(':meta_keywords', $_POST["meta_keywords"], PDO::PARAM_STR);
$stmt->bindValue(':text', $_POST["inhalt"], PDO::PARAM_STR);
$stmt->bindValue(':id', $_POST["id"], PDO::PARAM_INT);
$stmt->execute();
echo "<div style='font-color:#008000;font-weight:bold;margin-bottom:20px'>Die Änderung wurde erfolgreich durchgeführt.</div>";
}
catch(PDOException $ex)
{
echo $ex->getMessage();
}
}
}
}
?>
<ul style="list-style-type:none;margin:0px;padding:0px">
<?php
foreach($db->query("SELECT id, titel, erstellt, user FROM blog") as $row)
{
echo "<li><a class=\"edit\" href=\"index.php?seite=news_edit&texte=edit&id={$row['id']}\" title=\"Update der Texte\" ></a>";
echo "<b>{$row['titel']}</b><br>";
echo "Änderung: {$row['erstellt']} ";
echo "von: {$row['user']}</li>";
}
?>
</ul>
Kommentar