| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
| Autor |
Nachricht |
Gast
|
Kommentar-Box mit Captcha |
|
|
Hallo Community,
ich hab mich die vergangene Nacht mit der genialen Kommentar-Box und der Captcha-Abfrage auseinandergesetzt.
Das Captcha-Script aus der "check.php" wurde in die Kommentar-Box eingesetzt, das Tabellenkonstrukt gegen zwei floatende DIVs ausgetauscht, und die späteren Kommentare noch ein wenig mit CSS aufgepimpt.
Ich hab dann alles auf meinem Server geladen, das Unterverzeichnis "kommentare" mit "chmod777" ausgestattet, und die anschliessende Testphase mit dem direkten Aufruf der "kommentar.php" erfolgreich abgeschlossen.
Die Nachrichten über die neuen Kommentare wurden mir per Email zugestellt, und die Beiträge von mir in gewohnter Moderatoren-Marnier (bin Mod in einem anderen Forum) "freigeschaltet" - alles bingo-bongo.
Im nächsten Schritt hab ich dann in eine meiner Projektseiten die "kommentar.php" wie beschrieben includet und ganz zu Beginn des Quellcodes
| Code: |
<?php
session_start();
?>
| notiert.
Kommentar verfassen und absenden läuft rund, die Captcha-Abfrage verrichtet ihren Job gewissenhaft und meldet sich zu Wort, wenn der Code nicht stimmt. Die Benachrichtigungs-Email landet im null-komma-nichts in meiner Inbox, ich klicke auf den Link, um die "schreibe.php" aufzurufen und den Kommentar freizuschalten.
Die Statusmeldung nach dem Formularversand bestätigt mir das auch mit den Zeilen "Der Kommentar wurde in die Seite IndexComment eingetragen.", doch oh weh, der Kommentar wird in der Box überhaupt nicht angezeigt.
Tja, und nu? Hab ich etwas übersehen oder nicht bedacht?
Fehlermeldungen werden mir keine ausgeworfen, der ganze Prozess läuft eigentlich genauso reibungslos und rund, wie zuvor in der Testphase, blos erscheint der Kommentar nicht in der Box. Mehrmaliges "F5" nützt da auch nichts.
Ich geb euch noch fix eine Übersicht meiner Verzeichnisstruktur, wenngleich ich mir nicht vorstellen kann, dass es damit zusammenhängt, aber der Teufel ist ein Eichhörnchen und der Fehler liegt ja oftmals im Detail:
- verzeichnis_1
- unterverzeichnis_1
- unterunterverzeichnis_1
- indexComment.htm (hier wird die Comment-Box eingebunden)
- kommentar
- kommentare
- kommentare.txt
- indexComment.txt
- captcha.php
- kommentar.php
- schreibe.php
Achja, nicht beirren lassen, die *.htm-Dokumente laufen auf meinem Server brav durch den PHP-Parser. Mit der php-Endung konnte ich aber auch keinen Erfolg zielen.
So, und nun hoffe ich, dass Euch was dazu einfällt, denn mir raucht jetzt ganz ordentlich der Kopf
mfg
MaikL |
|
|
|
| 27 Apr 2008 05:10 |
|
  |
MaikL Mitglied
|
 |
|
|
Hm..., ich hab mich doch hier im Forum registriert, und dennoch erscheint als Autoren-Namen "Gast"
Hab mich schon gewundert, warum ich keine Möglichkeit habe, meinen Beitrag zu editieren.
anyway.... |
|
|
|
| 27 Apr 2008 05:37 |
|
 |
MaikL Mitglied
|
 |
|
|
UPDATE:
Es gibt da offensichtlich doch einen Zusammenhang mit der Verzeichnistiefe, denn beginnend mit der zweiten Ebene (unterverzeichnis_1) werden die Kommentare nicht mehr angezeigt.
Verschiebe ich das Dokument in die erste Verzeichnisebene (verzeichnis_1) werden plötzlich alle Kommentare in der Box angezeigt, die ich zuvor in den tieferen Unterverzeichnissen erfolglos freigeschaltet hatte.
Okay, ich hab den Grund hierfür ausgemacht:
// Kommentarausgabe wenn vorhanden!
$ausgabe = "../kommentar/kommentare/".$file[0].".txt";
Doch wie lassen sich hier unterschiedliche Verzeichnistiefen deklarieren? Bin leider nicht der PHP-Experte, aber es muss doch eine Möglichkeit geben, um hier Fallunterscheidungen vornehmen zu können, denn nicht immer befinden sich alle Projektseiten in derselben Verzeichnisebene.
Würde mich über den einen oder anderen Hinweis und Tipp in Form eines Code-Schnipsels freuen
Bis dahin wünsche ich euch einen schönen Sonntag
mfg
Maik |
|
|
|
| 27 Apr 2008 07:22 |
|
 |
Werner Homepage-Total.de Moderator

|
 |
|
|
Eine Möglichkeit wäre mit file_exists zu überprüfen ob die .txt-Datei vorhanden ist:
| PHP-Code: | 1 2 3 4 5 6 7 8 9 10 11 12 13
| <?php
// Kommentarausgabe wenn vorhanden!
$ausgabe = "../kommentar/kommentare/" . $file[0] . ".txt";
if (file_exists($ausgabe)) { // 1 Unterverzeichnis
readfile($ausgabe);
}
else if (file_exists("../" . $ausgabe)) { // 2 Unterverzeichnis
readfile("../" . $ausgabe);
}
else {
echo "Es wurden noch keine Kommentare erstellt!";
}
?> |
|
_________________ Bei Fragen oder Fehlermeldungen - Bitte ausführlichen Code posten!
Wie man Fragen richtig stellt |
|
|
| 27 Apr 2008 19:04 |
|
 |
MaikL Mitglied
|
 |
|
|
Feine Sache. 1000 Dank, Werner
Mit else if lassen sich ja ganz bequem weitere Verzeichnisebenen miteinbeziehen
| PHP-Code: | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| <?php
// Kommentarausgabe wenn vorhanden!
$ausgabe = "../kommentar/kommentare/" . $file[0] . ".txt";
if (file_exists($ausgabe)) { // 1. Unterverzeichnis
readfile($ausgabe);
}
else if (file_exists("../" . $ausgabe)) { // 2. Unterverzeichnis
readfile("../" . $ausgabe);
}
else if (file_exists("../../" . $ausgabe)) { // 3. Unterverzeichnis
readfile("../../" . $ausgabe);
}
else {
echo "Es wurden noch keine Kommentare erstellt!";
}
?> |
mfg
Maik
P.S. Da kann ich dann nach der laaangen Nacht heut Abend seelig schlafen gehen  |
|
|
|
| 27 Apr 2008 20:35 |
|
 |
|