Simps-O-Rama
Ich arbeite gerade an einem kleinen CMS für meine Website.
Seiten erstellen - funktioniert ohne Probleme
Ausgabe - funktioniert auch
Nur beim bearbeiten gibt's Probleme.
php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Edit a content-item</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="style.css">
</head><body>
<?
$verbindung = mysql_connect("xxx","xxx",xxx") or die
("Cannot connect to database");
mysql_select_db("xxx") or die
("database doesnt exist");
$content=$_POST['content'];
$title=$_POST['title'];
$id=$_POST['id'];
if ( $title == "" ) {
echo "<div class="error\">Please fill out all fields!</div>" ;
}
elseif ( $content == "" ) {
echo "<div class=\"error\">Please fill out all fields!</div>" ;
}
else {
$abfrage = "UPDATE contents Set id = $id, title = $title, content = $content WHERE ID = $id";
echo "<div class=\"noerror\">Successfully updated the content-item</div>" ;
$update = mysql_query($abfrage);
}
mysql_close($verbindung);
?>
</body>
</html>
|
|
Es kommt dann "Successfully updated the content-item", es kommt keine Fehlermeldung o.ä.. Der Datensatz wird jedoch nicht geändert - weiß jemand, woran's liegt?
[kamui]
Mach mal bei dem Query ein " or die(
mysql_error()); " dahinter, dann wird dir der MySQL-Fehler ausgegeben, wenn es einer ist.
Würde außerdem den UPDATE-Befehl allgemein etwss ändern, etwa so:
php: |
1:
2:
3:
|
$abfrage = 'UPDATE contents SET "'.((is_numeric($id))?('id="'.$id.'", '):('')).'
title="'.addslashes($title).'", content="'.addslashes($content).'" WHERE id="'.$id.'"';
$update = mysql_query($abfrage) or die(mysql_error()); |
|
Wenn du kein "
addslashes() " machst und in dem String ein Anführungszeichen vorkommt, denkt er, es wäre vorbei und gibt dir Fehler aus ^y^
EDIT2:// Gerade in einem CMS, wo man oft solche Funktionen verwendet, würde ich Klassen / Funktionen empfehlen, dann musst du bei einem kleinen Fehler nur eine Datei editieren und nicht alle
Simps-O-Rama
Vielen Dank schon mal.
Hm... Einen MySQL Error gibt es bei der ersten Version (leicht verändert) nicht, funktioniert trotzdem nicht
Bei deinem kommt leider ein Fehler:
Zitat: |
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '" title="bla", conte |
[kamui]
Habe ausversehen ein Anführungszeichen vor die If-Abfrage gesetzt ...
php: |
1:
2:
3:
|
$abfrage = 'UPDATE contents SET '.((is_numeric($id))?('id="'.$id.'", '):('')).'
title="'.addslashes($title).'", content="'.addslashes($content).'" WHERE id="'.$id.'"';
$update = mysql_query($abfrage) or die(mysql_error()); |
|
Simps-O-Rama
Hm... Das seltsame ist: Es kommt kein Fehler, jedoch funktioniert es immer noch nicht....
Ghostmaster
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Edit a content-item</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="style.css">
</head><body>
<?php
$verbindung = mysql_connect("xxx","xxx",xxx") or die
("Cannot connect to database");
mysql_select_db("xxx") or die
("database doesnt exist");
$content=$_POST['content'];
$title=$_POST['title'];
$id=$_POST['id'];
if ($title == "") {
echo "<div class=\"error\">Please fill out all fields!</div>" ;
}
elseif ($content == "") {
echo "<div class=\"error\">Please fill out all fields!</div>" ;
}
else {
$abfrage = 'UPDATE contents SET '.((is_numeric($id))?('id="'.$id.'", '):('')).' title="'.addslashes($title).'", content="'.addslashes($content).'" WHERE id="'.$id.'"';
$update = mysql_query($abfrage) or die(mysql_error());
}
mysql_close($verbindung);
?>
</body>
</html> |
|
Mal eine evtl. dumme Frage. Woher hollst du dir die Daten wie z.B. $title oder $content
Sehe in deinem Script nämlich keine Felder.
Simps-O-Rama
Kommt aus der vorigen Seite
Danke Ghost, aber leider funktioniert deins auch nicht
[kamui]
Komisch ...
Was ich gerade noch sehe, du solltest anstatt " if ($title == "") { " lieber
empty() verwenden.