mein Browser gibt mir folgende Fehlermeldung aus:
Parse error: syntax error, unexpected $end in C:\xampp\htdocs\Jokes04.php on line 105
Bitte nicht erschrecken, ich ERLERNE PHP gerade via eines Lehrbuches. Darum ist evntl. der ein oder andere Code, trotz ähnlicher Funktion, etwas anders aufgebaut worden, weil ich es woanders - für mich - attraktiver vorgefunden und nachgemacht habe.
Der Fehler muss sich irgendwo im Bereich zwischen "<?php if (isset($_GET['askdeletejoke'])):" und seinem Schlusstag "?>" befinden.
Entferne ich diesen nämlich völlig, läuft auch das Script Fehlerfrei, nur eben ohne die ausgedachte Extrafunktion.
Im Lehrbuch wurde mir beschrieben, wie ich einen Witz aus meiner Datenbank löschen kann. Nun wollte ich - selbstständig, ohne Vorlage - eine Sicherheitsabfrage erstellen, ob der betreffende Witz wirklich gelöscht werden sollte.
Hier der Quelltext:
- Code: Select all
<html>
<head>
<title>Witze</title>
</head>
<body>
<P>Herzlich willkommen!</P>
<?php if (isset($_GET['addjoke'])):?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<label>Bitte geben Sie hier Ihren Witz ein:<br />
<textarea name="joketext" rows="10" cols="40">
</textarea></label><br />
<input type="submit" value="Speichern" />
</form>
<?php if (isset($_GET['askdeletejoke'])):
//Fragen, ob der Witz wirklich gelöscht werden soll
if (isset($_GET['askdeletejoke'])) {
$jokeid = $_GET['askdeletejoke'];
$joketext = $_GET['askdeletejoke'];
echo ('<p>Soll nachfolgender Witz wirklich aus der Witzeliste entfernt werden?</p>');
echo '<p>'
.'<a href="'.$_SERVER['PHP_SELF'].'?deletejoke='.$jokeid.'">'
.'Ja</a>'
.'<a href="'.$_SERVER['PHP_SELF'].'">Nein</a>'
.'</p>';
}
// Falls ein Witz gelöscht werden soll,
// aus der Datenbank löschen.
if (isset($_GET['deletejoke'])) {
$jokeid = $_GET['deletejoke'];
$sql = "DELETE FROM Jokes
WHERE ID = $jokeid ";
if (@mysql_query($sql)) {
echo ('<p>Der Witz wurde gelöscht.</p>');
} else {
echo '<p>Fehler beim Löschen des Witzes: ' .
mysql_error() . '</p>';
}
}
?>
<?php else:
//Verbindung zur Datenbank herstellen
$dbcnx = @mysql_connect('localhost', 'root', 'GEHEIM');
if(!dbcnx) {
exit('<p> Eine Verbindung zur Witze-Datenbank konnte leider nicht hergestellt werden!<br>Begründung:' . mysql_error() . '</P>');
}
//Datenkbank auswählen
mysql_select_db('jokes');
if(!@mysql_select_db('jokes')) {
exit('Die Witzedatenbank ist zur Zeit nicht abrufbar. Bitte versuche es später noch einmal!');
}
//Falls ein Witz hinzugefügt wurde:
if (isset($_POST['joketext'])) {
$joketext = $_POST['joketext'];
$sql = "INSERT INTO Jokes SET
JokeText='$joketext',
JokeDate=CURDATE()";
if (@mysql_query($sql)) {
echo '<p>Ihr Witz wurde hinzugefügt.</p>';
} else {
echo '<p>Fehler beim Hinzufügen des Witzes: ' .
mysql_error() . '</p>';
}
}
?>
<P>Dies sind derzeit alle Witze aus unserer Datenbank:</P>
<blockquote>
<?php
// ID und text aller Witze auslesen
$result = @mysql_query('SELECT ID, JokeText FROM Jokes');
if (!$result) {
exit('<p>Fehler bei der Ausführung der Abfrage: ' .
mysql_error() . '</p>');
}
// Text jedes Witzes in einem Absatz anzeigen,
// mit einem "Diesen Witz löschen"-Link daneben.
while ($row = mysql_fetch_array($result)) {
$jokeid = $row['ID'];
$joketext = $row['JokeText'];
echo '<p>' . $joketext .
' <a href="' . $_SERVER['PHP_SELF'] .
'?askdeletejoke=' . $jokeid . '">' .
'<br>Diesen Witz löschen</a></p>';
}
//Link zum Hinzufügen eines Witzes
echo '<p><a href="' . $_SERVER['PHP_SELF'] .
'?addjoke=1">Einen Witz hinzufügen!</a></p>';
endif;
?>
</blockquote>
</body>
</html>
Für PHP-Scripte verwende ich den Notepad++ Editor.
BITTE gebt mir nur Hinweise zur Fehlerkorrektur - ich bin mir sicher, dass man es anders, professioneller oder schöner lösen kann bzw. schreiben kann, doch ich bin gerade am Erlernen und möchte erst einmal einen Weg beherrschen, bevor ich mich an den Nächsten wage.
DANKE!