Hallo
ich habe aus dem Unterricht ein paar Scripte uebernommen, aber an einer Stelle hakt´s (lustigerweise natuerlich auf einmal, vorher gings), was koennte da passiert sein ?
Eine Funktion zur Wandlung des mysql-db-Datums (0000-00-00) in das dt. (00.00.0000) und umgekehrt, ist vorhanden:
Diese Funktion wird in einem selbstgebasteltem CMS f. News aufgerufen, bei der Ausgabe (Auflistung/Uebersicht der News im Admin-Bereich) und beim Editieren (innerhalb der Formularfelder).
Nun heisst es neuerdings, dass kein Wert in $datum uebergeben wurde !
hm? hier komm ich nun nicht weiter, weil ich den Fehler nicht finde, warum nichts uebergeben wird !
Hier der save.php und edit.php - code in den noetigen Auszuegen:
Wer auch immer hier durchsteigt und mir auf die Spruenge helfen kann, sei bedankt !!!!!!!!!!!!! :wink:
ich habe aus dem Unterricht ein paar Scripte uebernommen, aber an einer Stelle hakt´s (lustigerweise natuerlich auf einmal, vorher gings), was koennte da passiert sein ?
Eine Funktion zur Wandlung des mysql-db-Datums (0000-00-00) in das dt. (00.00.0000) und umgekehrt, ist vorhanden:
Code:
<?
// mySQL-Datum auslesen und in dt. Format zur Ausgabe umwandeln
function convert_db_date ($mysql_date) {
if(!$mysql_date){echo "convert_db_date: kein Datum übergeben!"; exit; }
$timestamp = strtotime ($mysql_date);
$strformatedDate= date ("d.m.Y", $timestamp);
return $strformatedDate;
}
// bei Eingabe (CMS) von dt. Format in mySQL-Datum umwandeln, damit DB es versteht
function convert_gerDate_to_mysqlDate ($gerDate) {
if(!$gerDate){echo "convert_gerDate_to_mysqlDate: kein Datum übergeben!"; exit; }
list ($tag,$monat,$jahr) = explode(".",$gerDate);
$strDB_date = "$jahr-$monat-$tag";
return $strDB_date;
}
?>
Diese Funktion wird in einem selbstgebasteltem CMS f. News aufgerufen, bei der Ausgabe (Auflistung/Uebersicht der News im Admin-Bereich) und beim Editieren (innerhalb der Formularfelder).
Nun heisst es neuerdings, dass kein Wert in $datum uebergeben wurde !
hm? hier komm ich nun nicht weiter, weil ich den Fehler nicht finde, warum nichts uebergeben wird !
Hier der save.php und edit.php - code in den noetigen Auszuegen:
Code:
// Variablen holen
$id = $_POST["id"];
$datum = $_POST["datum"]; // convert_gerDate_to_mysqlDate ()
$titel = $_POST["titel"];
$text = $_POST["text"];
$link1 = $_POST["link1"];
$link2 = $_POST["link2"];
$link3 = $_POST["link3"];
$link_ex = $_POST["link_ex"];
// Feldueberpruefung: Pflichtfelder:
$strErrorMessage = "";
if (!$datum) {
$strErrorMessage .= "Das Datum fehlt !<br>";
}
if (!$titel) {
$strErrorMessage .= "Der Titel fehlt !<br>";
}
if (!$text) {
$strErrorMessage .= "Der Text fehlt !<br>";
}
else {
$datum = convert_gerDate_to_mysqlDate($datum);
if( ! $datum ){
$strErrorMessage .= "Das angegebene Datum stimmt nicht. <br>";
}
}
// Fehler aufgetreten ?
if ($strErrorMessage) {
echo($strErrorMessage);
?>
<br>
<a href="javascript:history.back()"><font face=arial size=2>zurück</font></a>
<?
exit;
}
// Fallunterscheidung: wenn $id vorhanden, dann UPDATE (edit), sonst INSERT (new) - [mySQL-Befehle] !
if ($id){
$strSQL = "UPDATE wind_news SET datum = '$datum', titel = '$titel', text = '$text', link1 = '$link1', link2 = '$link2', link3 = '$link3', link_ex = '$link_ex' WHERE id = $id";
}
else {
$strSQL = "INSERT INTO wind_news (datum,titel,text,link1,link2,link3,link_ex) VALUES ('$datum','$titel','$text','$link1','$link2','$link3','$link_ex')";
}
$result = mysql_query($strSQL) or die("Anfrage '$strSQL' fehlgeschlagen: <b>".mysql_error()."</b>");
if(!$id) {
// neue insert-id ermitteln (nur bei neuen DS ohne id !)
$id = mysql_insert_id();
}
?>
Code:
$id = $_GET["id"];
if (!$id) {
//keine news-id übergeben -> neue news!
echo "<p align=center><font face=Arial, Helvetica, sans-serif size=4><b><i><font color=#FFFFFF>News-Eingabe:</font></i></b></font></p>";
// heutiges Datum festlegen für Eingabe des neuen DB
$datum = date ("d.m.Y");
}
else {
include("db_connection.inc"); // DB wird nur aufgerufen, wenn else zutrifft. connect kostet sonst unnoetig Resourcen, wenn´s nicht sein muesste.
echo "<p align=center><font face=Arial, Helvetica, sans-serif size=4><b><i><font color=#FFFFFF>News-EDIT:</font></i></b></font></p>";
$query = "SELECT * FROM wind_news WHERE id = $id";
$result = mysql_query($query) or die("Anfrage '$DeleteSQL' fehlgeschlagen: <b>".mysql_error()."</b>");
// hat diese Anfrage keine Ergebnisse gebracht ? (DS nicht vorhanden)
if (mysql_num_rows($result) == 0){
echo "Eintrag $id nicht in DB vorhanden !";
exit;
}
// Ergebniszeile abholen
$row = mysql_fetch_assoc($result);
// Variablen holen
$id = $row["id"];
$datum = convert_db_date ($row["datum"]);
$titel = $row["titel"];
$text = $row["text"];
$link1 = $row["link1"];
$link2 = $row["link2"];
$link3 = $row["link3"];
$link_ex = $row["link_ex"];
}
?>
<form enctype="multipart/form-data" name="edit_form" method="post" action="save.php"><!---enctype="multipart/form-data" braucht man, damit er datei-uploads handhaben kann.--->
<p>
<input type="hidden" name="MAX_FILE_SIZE" value="100000">
<input type="hidden" name="id" value="<? echo $id; ?>">
</p>
...
<td width="84%" align="left" background="../../images/background.jpg">
<input type="text" name="titel" size="50" maxlength="50" value="<? echo $titel; ?>">
</td>
</tr>
<tr>
<td width="16%" align="left" valign="top" background="../../images/background.jpg"><font color="#000000" size="2" face="Arial, Helvetica, sans-serif"><b>Text:</b></font></td>
<td align="left" background="../../images/background.jpg">
<textarea name="text" cols="45" rows="6"><? echo $text; ?></textarea>
</td>
</tr>
<tr>
<td width="16%" align="left" valign="top" background="../../images/background.jpg"><font color="#000000" size="2" face="Arial, Helvetica, sans-serif"><b>Datum:</b></font></td>
<td align="left" background="../../images/background.jpg">
<input type="text" name="datum" size="30" maxlength="30" value="<? echo $datum; ?>">
</td>
</tr>
<tr>
<td align="left" valign="top" background="../../images/background.jpg"><font color="#000000" size="2" face="Arial, Helvetica, sans-serif"><b>Link:</b></font></td>
<td align="left" background="../../images/background.jpg"><font color="#000000" size="2" face="Arial, Helvetica, sans-serif">
<input name="link" type="checkbox" id="link1" value="prod" <? if ($link1=="prod") {echo "checked";} ?>>
Produkte
<input name="link" type="checkbox" id="link2" value="serv" <? if ($link2=="serv") {echo "checked";} ?>>
Service
<input name="link" type="checkbox" id="link3" value="forum" <? if ($link3=="forum") {echo "checked";} ?>>
Forum</font></td>
</tr>
<tr>
<td align="left" valign="top" background="../../images/background.jpg"><font color="#000000" size="2" face="Arial, Helvetica, sans-serif"><b>Link (Extern) :</b></font></td>
<td align="left" background="../../images/background.jpg"><input type="text" name="datum" size="30" maxlength="30" value="<? echo $row["link_ex"]; ?>"">
</td>
</tr>
<tr>
<td width="16%" background="../../images/background.jpg"><font color="#000000"> </font> </td>
<td align="left" valign="bottom" background="../../images/background.jpg">
<input type="submit" name="submit" value="Save">
<input type="reset" name="reset" value="Edit-Reset">
<!---wenn etwas NEU eingegeben/geaendert wurde, wird es hiermit zurueckgesetzt ! Alles andere bleibt, weil es ja fest eingelesen wurde.--->
<input type="button" value="Clear All" onClick="clear_form()">
<input type="button" name="break" value="Abbrechen" onClick="location.href='index.php'">
</td>
...
Wer auch immer hier durchsteigt und mir auf die Spruenge helfen kann, sei bedankt !!!!!!!!!!!!! :wink: