CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden |
14.08.2007, 17:28:52
|
Anfänger
|
|
Registriert seit: Aug 2007
Ort: Ehingen
Alter: 53
Beiträge: 16
|
|
Probleme beim Captcha einbinden
Hallo Forum, ich hab mir die ganzen Anleitungen und Ratschläge hier im bezüglich Captcha gelesen und versucht dies in mein Gästebuch einzubinden.
Leider habe ich dabei ein Problem:
Wenn ich das Captcha einbinde, sind die bisherigen Einträge im Gästebuch nicht von Anfang an da, erst wenn ich ein Beitrag geschrieben und gespeichert habe, werden diese angezeigt.
Wo mache ich da den Fehler?
zum Verständnis:
Original Gästebuch: http://www.uwehorn.de/guestook.php
und das neue mit Captcha: http://www.uwehorn.de/guestbook-neu.php
Hier mal der Quellcode mit Captcha, da muss irgendwo der Fehler sein.
PHP-Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Startseite // Seite von Uwe "Overmind" Horn // v4</title>
<link rel="stylesheet" type="text/css" href="css/test.css">
<meta name="description" content="">
<meta name="keywords" content="">
<meta name="author" content="Uwe - Overmind - Horn">
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
</head>
<body leftmargin="0" topmargin="0" rightmargin="0" bgcolor="#ffffff" marginheight="0" marginwidth="0">
<!-- document table -->
<div id="haupttabelle">
<table align="center" bgcolor="#ffffff" border="0" cellpadding="0" cellspacing="0" width="1000"><tbody><tr><td>
<!-- navigation bar -->
<div id="navbar_oben">
<table align="center" background="images/styles/bar_oben_hg.jpg" border="0" cellpadding="0" cellspacing="0" width="1000">
<tbody><tr>
<td><div id="navbar_oben_text"><font size="2">
<p><b>Startseite</b></p></font></div></td>
<td align="right" width="66"><a href=""></a></td>
<td align="right" width="41"><a href=""></a></td>
</tr>
</tbody></table>
</div>
<!-- splash screen -->
<div id="hauptbar">
<img src="images/styles/gruen_verlauf_gross.jpg" border="0" height="150" width="1000"></div>
<!-- hauptnav -->
<div id="hauptnav">
<table border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td id="navbar_bot"> <a href="index.html"> Startseite </a> </td>
<td id="navbar_bot"> <a href="computer.html"> Computer </a> </td>
<td id="navbar_bot"> <a href="bilder.html"> Bilder </a> </td>
<td id="navbar_bot_act"> <a href="guestbook.php"> Gästebuch </a> </td>
<td id="navbar_bot"> <a href="kontakt.php"> Kontakt </a> </td>
<td id="navbar_bot"> <a href="impressum.html"> Impressum </a> </td>
</td>
</tr>
</tbody>
</table>
</div>
<table border="0" cellpadding="10" cellspacing="20" width="100%">
<tbody>
<tr>
<td valign="top">
<table border="0" cellpadding="0" cellspacing="0" width="100">
<tbody>
</tbody>
</table>
<td valign="top" width="100%"><font size="2"></font>
<div id="cb_pagetitle">Gästebuch</div>
<p><br />
<?php
include("admin.php");
?>
<div style="width: 600px">
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
Dein <b>Name</b>:<br>
<input type="text" name="name" size="55" maxlength="30"><p><br>
Deine <strong>Homepage</strong> oder E-Mail:<br>
<input type="text" name="home" size="55" maxlength="30"><p><br>
Deine Botschaft:<br>
<textarea cols="55" rows="4" name="kommentar">
</textarea><br>
<p>
Bitte Sicherheitscode eintragen<br>
<input type="text" name="sicherheitscode" size="5"> <img src="captcha/captcha.php" border="0" title="Sicherheitscode">
<input type="hidden" name="uw" value="<?php echo time(); ?>">
<br><p>
<input type="submit" value="Eintrag abschicken!">
</form>
<p><br />
<h3>Bisherige Einträge:</h3>
<?php
session_start();
if(isset($_SESSION['captcha_spam']) AND $_POST["sicherheitscode"] == $_SESSION['captcha_spam']){
unset($_SESSION['captcha_spam']);
include("function.php");
$unique = no_reload();
$start = 0; // Startwert setzen (0 = 1. Zeile)
$step = 4; // Wie viele Einträge gleichzeitig?
// Startwert verändern:
if (isset($_GET["start"])) {
$start = $_GET["start"];
}
$nr=$start + 1;
include("zugriff.php");
if (!empty($_POST["name"]) && !empty($_POST["home"])
&& !empty($_POST["kommentar"]) && !$unique) {
$datum = date("d.m.Y, H:i") . " Uhr";
$sql = "INSERT INTO guestbook " .
"VALUES ('', '$_POST[name]', '$_POST[home]', " .
"'$datum', '$_POST[kommentar]')";
mysql_query($sql);
}
$sql1 = "SELECT * FROM guestbook";
$sql2 = "SELECT * FROM guestbook ORDER BY id DESC LIMIT $start, $step";
$result1 = mysql_query($sql1);
$zeilen = mysql_num_rows($result1);
$result2 = mysql_query($sql2);
for ($i = 0;$zeilen > $i;$i = $i + $step) {
$anf=$i+1;
$end=$i+$step;
if ($end>$zeilen) {
$end=$zeilen;
}
if ($anf==$end) {
echo "[ <a href=\"$_SERVER[PHP_SELF]?start=$i\">$end</a> ] ";
} else {
echo "[ <a href=\"$_SERVER[PHP_SELF]?start=$i\">$anf-$end</a> ] ";
}
}
echo "<p>Anzahl der Einträge: $zeilen</p>\n";
// while-Schleife Anfang
while ($row=mysql_fetch_assoc($result2)) {
echo "<p><div id=\"guestbook_title_backgroud\"><strong>$nr.</strong> " .
" <b>" . htmlspecialchars($row["name"]) . "</b> " .
"(" . htmlspecialchars($row["home"]) .
")<br> schrieb am " .
"<strong>" . $row["datum"] . "</strong>:</div></p>" .
"<p>" . nl2br(htmlspecialchars($row["kommentar"])) . "</p></br></p></br></p>\n";
$nr++;
} // while Ende
}
mysql_close();
?>
</div>
<p> </p>
</td>
<tbody></tbody>
</table>
<table border="0" cellpadding="10" cellspacing="0" width="100%">
<tbody>
<tr>
<td><font size="2"></font>
</td></tr></tbody></table>
<!-- footer -->
<center>
<font size="1">
<br>
<a href="impressum.html">Impressum</a> |
<a href="kontakt.php">Kontakt</a></font>
<p>
<font size="1"><font color="#0c0c0c">© 2004-2006 Uwe "Overmind" Horn. All rights reserved.</font></font></p>
<p><font size="1"><br>
</font></p>
</center>
<!-- /footer -->
<!-- document table end -->
</td></tr></tbody></table>
</div>
</body></html>
Das Script zum Captch a hab ich von http://www.stoppt-den-spam.info
Ich hoffe ihr könnt mir helfen.
Geändert von Kalachid (14.08.2007 um 17:52:56 Uhr)
Grund: was vergessen
|
14.08.2007, 18:08:14
|
|
Junior Member
|
|
Registriert seit: Mar 2006
Alter: 44
Beiträge: 285
|
|
AW: Probleme beim Captcha einbinden
das erste problem ist dein session_start(); das muss vor jeder anderen ausgabe erfolgen, also <?php session_start(); ?> ganz oben in die page.
dann hab ich noch eine menge fehler entdeckt, was die schreibweise angeht.
$_POST[home] muss wenn dann $_POST["home"] heissen usw... auch das html ist alles andere als valide. tables mit fonts verschachtelt und durcheinander.
|
15.08.2007, 00:06:45
|
Anfänger
|
|
Registriert seit: Aug 2007
Ort: Ehingen
Alter: 53
Beiträge: 16
|
|
AW: Probleme beim Captcha einbinden
Zitat:
Zitat von conmunich
das erste problem ist dein session_start(); das muss vor jeder anderen ausgabe erfolgen, also <?php session_start(); ?> ganz oben in die page.
|
Hab ich gemacht, geht trotzdem nicht.
Zitat:
Zitat von conmunich
$_POST[home] muss wenn dann $_POST["home"] heissen usw... auch das html ist alles andere als valide. tables mit fonts verschachtelt und durcheinander.
|
Sobald ich $_POST["home"] (mit Anführungsstrichen) drin habe kommen Parsefehler.
Das kann es also auch nicht sein.
Tjy, der Fehler also noch immer nocht gefunden.
|
15.08.2007, 07:45:24
|
SELFPHP Guru
|
|
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
|
|
AW: Probleme beim Captcha einbinden
Zitat:
Zitat von Kalachid
Hab ich gemacht, geht trotzdem nicht.
Sobald ich $_POST["home"] (mit Anführungsstrichen) drin habe kommen Parsefehler.
Das kann es also auch nicht sein.
Tjy, der Fehler also noch immer nocht gefunden.
|
Dann machst Du das eben falsch und/oder noch andere Dinge falsch.
Vielleicht korrigierst Du erst mal die von conmunich genannten Fehler und zeigst uns dann die korrigierte Version des Scriptes.
|
15.08.2007, 08:35:54
|
Anfänger
|
|
Registriert seit: Aug 2007
Ort: Ehingen
Alter: 53
Beiträge: 16
|
|
AW: Probleme beim Captcha einbinden
Zitat:
Zitat von feuervogel
Dann machst Du das eben falsch und/oder noch andere Dinge falsch.
Vielleicht korrigierst Du erst mal die von conmunich genannten Fehler und zeigst uns dann die korrigierte Version des Scriptes.
|
ok, hier mal dier neue Code, daei gibt es Parsefehler in Zeile 106
und hier nochwie es ausieht: http://www.uwehorn.de/guestbook-neu.php
PHP-Code:
<?php
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Startseite // Seite von Uwe "Overmind" Horn // v4</title>
<link rel="stylesheet" type="text/css" href="css/test.css">
<meta name="description" content="">
<meta name="keywords" content="">
<meta name="author" content="Uwe - Overmind - Horn">
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
</head>
<body leftmargin="0" topmargin="0" rightmargin="0" bgcolor="#ffffff" marginheight="0" marginwidth="0">
<!-- document table -->
<div id="haupttabelle">
<table align="center" bgcolor="#ffffff" border="0" cellpadding="0" cellspacing="0" width="1000"><tbody><tr><td>
<!-- navigation bar -->
<div id="navbar_oben">
<table align="center" background="images/styles/bar_oben_hg.jpg" border="0" cellpadding="0" cellspacing="0" width="1000">
<tbody><tr>
<td><div id="navbar_oben_text"><font size="2">
<p><b>Startseite</b></p></font></div></td>
<td align="right" width="66"><a href=""></a></td>
<td align="right" width="41"><a href=""></a></td>
</tr>
</tbody></table>
</div>
<!-- splash screen -->
<div id="hauptbar">
<img src="images/styles/gruen_verlauf_gross.jpg" border="0" height="150" width="1000"></div>
<!-- hauptnav -->
<div id="hauptnav">
<table border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td id="navbar_bot"> <a href="index.html"> Startseite </a> </td>
<td id="navbar_bot"> <a href="computer.html"> Computer </a> </td>
<td id="navbar_bot"> <a href="bilder.html"> Bilder </a> </td>
<td id="navbar_bot_act"> <a href="guestbook.php"> Gästebuch </a> </td>
<td id="navbar_bot"> <a href="kontakt.php"> Kontakt </a> </td>
<td id="navbar_bot"> <a href="impressum.html"> Impressum </a> </td>
</td>
</tr>
</tbody>
</table>
</div>
<table border="0" cellpadding="10" cellspacing="20" width="100%">
<tbody>
<tr>
<td valign="top">
<table border="0" cellpadding="0" cellspacing="0" width="100">
<tbody>
</tbody>
</table>
<td valign="top" width="100%"><font size="2"></font>
<div id="cb_pagetitle">Gästebuch</div>
<p><br />
<?php
include("admin.php");
?>
<div style="width: 600px">
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
Dein <b>Name</b>:<br>
<input type="text" name="name" size="55" maxlength="30"><p><br>
Deine <strong>Homepage</strong> oder E-Mail:<br>
<input type="text" name="home" size="55" maxlength="30"><p><br>
Deine Botschaft:<br>
<textarea cols="55" rows="4" name="kommentar">
</textarea><br>
<p>
Bitte Sicherheitscode eintragen<br>
<input type="text" name="sicherheitscode" size="5"> <img src="captcha/captcha.php" border="0" title="Sicherheitscode">
<input type="hidden" name="uw" value="<?php echo time(); ?>">
<br><p>
<input type="submit" value="Eintrag abschicken!">
</form>
<p><br />
<h3>Bisherige Einträge:</h3>
<?php
if(isset($_SESSION['captcha_spam']) AND $_POST["sicherheitscode"] == $_SESSION['captcha_spam']){
unset($_SESSION['captcha_spam']);
include("function.php");
$unique = no_reload();
$start = 0; // Startwert setzen (0 = 1. Zeile)
$step = 4; // Wie viele Einträge gleichzeitig?
// Startwert verändern:
if (isset($_GET["start"])) {
$start = $_GET["start"];
}
$nr=$start + 1;
include("zugriff.php");
if (!empty($_POST["name"]) && !empty($_POST["home"])
&& !empty($_POST["kommentar"]) && !$unique) {
$datum = date("d.m.Y, H:i") . " Uhr";
$sql = "INSERT INTO guestbook " .
"VALUES ('', '$_POST["name"]', '$_POST["home"]', " .
"'$datum', '$_POST["kommentar"]')";
mysql_query($sql);
}
$sql1 = "SELECT * FROM guestbook";
$sql2 = "SELECT * FROM guestbook ORDER BY id DESC LIMIT $start, $step";
$result1 = mysql_query($sql1);
$zeilen = mysql_num_rows($result1);
$result2 = mysql_query($sql2);
for ($i = 0;$zeilen > $i;$i = $i + $step) {
$anf=$i+1;
$end=$i+$step;
if ($end>$zeilen) {
$end=$zeilen;
}
if ($anf==$end) {
echo "[ <a href=\"$_SERVER[PHP_SELF]?start=$i\">$end</a> ] ";
} else {
echo "[ <a href=\"$_SERVER[PHP_SELF]?start=$i\">$anf-$end</a> ] ";
}
}
echo "<p>Anzahl der Einträge: $zeilen</p>\n";
// while-Schleife Anfang
while ($row=mysql_fetch_assoc($result2)) {
echo "<p><div id=\"guestbook_title_backgroud\"><strong>$nr.</strong> " .
" <b>" . htmlspecialchars($row["name"]) . "</b> " .
"(" . htmlspecialchars($row["home"]) .
")<br> schrieb am " .
"<strong>" . $row["datum"] . "</strong>:</div></p>" .
"<p>" . nl2br(htmlspecialchars($row["kommentar"])) . "</p></br></p></br></p>\n";
$nr++;
} // while Ende
}
mysql_close();
?>
</div>
<p> </p>
</td>
<tbody></tbody>
</table>
<table border="0" cellpadding="10" cellspacing="0" width="100%">
<tbody>
<tr>
<td><font size="2"></font>
</td></tr></tbody></table>
<!-- footer -->
<center>
<font size="1">
<br>
<a href="impressum.html">Impressum</a> |
<a href="kontakt.php">Kontakt</a></font>
<p>
<font size="1"><font color="#0c0c0c">© 2004-2006 Uwe "Overmind" Horn. All rights reserved.</font></font></p>
<p><font size="1"><br>
</font></p>
</center>
<!-- /footer -->
<!-- document table end -->
</td></tr></tbody></table>
</div>
</body></html>
|
15.08.2007, 09:49:18
|
SELFPHP Guru
|
|
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
|
|
AW: Probleme beim Captcha einbinden
falsch ist bei dir:
"INSERT INTO guestbook " .
"VALUES ('', '$_POST["name"]', '$_POST["home"]', " .
"'$datum', '$_POST["kommentar"]')";
es müsste lauten (und schöner wäre es zudem auch):
"INSERT INTO
guestbook
VALUES
('', '{$_POST['name']}', '{$_POST['home']}', '$datum', '{$_POST['kommentar']}')";
dann kommt der parse-fehler wahrscheinlich nicht mehr
|
15.08.2007, 21:06:54
|
Anfänger
|
|
Registriert seit: Aug 2007
Ort: Ehingen
Alter: 53
Beiträge: 16
|
|
AW: Probleme beim Captcha einbinden
Also ich hhab die Änderungen, die du mir gesagt hast, eingebaut.
Den Parse-Error hab ich weg, aber die Beiträge werden noch immer nicht angezeigt.
Das komische ist halt, dass es ohne Captcha ohne Probleme funktioniert und die Beirtäge,
die bereits geschrieben wurden, von Anfang an angezeigt werden, nur eben mit Captcha nicht.
Hier nochmal der geänderte Code, hab mal nur das PHP genommen und das HTML weg gelassen, das ändert sich ja nicht.
PHP-Code:
<?php
session_start();
?>
---> hier steht HTML-Code
<?php
include("admin.php");
?>
---> hier steht HTML-Code
<?php echo $_SERVER['PHP_SELF']; ?>
---> hier steht HTML-Code
<?php echo time(); ?>
---> hier steht HTML-Code
<?php
//Captcha Anfang
if(isset($_SESSION['captcha_spam']) AND $_POST["sicherheitscode"] == $_SESSION['captcha_spam']){
unset($_SESSION['captcha_spam']);
//Captcha Ende
//alles was hier angezeigt werden soll, fehlt bei ersten Seitenaufruf
include("function.php");
$unique = no_reload();
$start = 0;
$step = 4;
if (isset($_GET["start"])) {
$start = $_GET["start"];
}
$nr=$start + 1;
include("zugriff.php");
if (!empty($_POST["name"]) && !empty($_POST["home"])
&& !empty($_POST["kommentar"]) && !$unique) {
$datum = date("d.m.Y, H:i") . " Uhr";
$sql = "INSERT INTO
guestbook
VALUES
('', '{$_POST['name']}', '{$_POST['home']}', '$datum', '{$_POST['kommentar']}')";
mysql_query($sql);
}
$sql1 = "SELECT * FROM guestbook";
$sql2 = "SELECT * FROM guestbook ORDER BY id DESC LIMIT $start, $step";
$result1 = mysql_query($sql1);
$zeilen = mysql_num_rows($result1);
$result2 = mysql_query($sql2);
for ($i = 0;$zeilen > $i;$i = $i + $step) {
$anf=$i+1;
$end=$i+$step;
if ($end>$zeilen) {
$end=$zeilen;
}
if ($anf==$end) {
echo "[ <a href=\"$_SERVER[PHP_SELF]?start=$i\">$end</a> ] ";
} else {
echo "[ <a href=\"$_SERVER[PHP_SELF]?start=$i\">$anf-$end</a> ] ";
}
}
echo "<p>Anzahl der Einträge: $zeilen</p>\n";
// while-Schleife Anfang
while ($row=mysql_fetch_assoc($result2)) {
echo "<p><div id=\"guestbook_title_backgroud\"><strong>$nr.</strong> " .
" <b>" . htmlspecialchars($row["name"]) . "</b> " .
"(" . htmlspecialchars($row["home"]) .
")<br> schrieb am " .
"<strong>" . $row["datum"] . "</strong>:</div></p>" .
"<p>" . nl2br(htmlspecialchars($row["kommentar"])) . "</p></br></p></br></p>\n";
$nr++;
} // while Ende
}
mysql_close();
?>
---> hier steht HTML-Code
Geändert von Kalachid (16.08.2007 um 16:24:59 Uhr)
Grund: was vergessen
|
16.08.2007, 22:09:00
|
Anfänger
|
|
Registriert seit: Aug 2007
Ort: Ehingen
Alter: 53
Beiträge: 16
|
|
AW: Probleme beim Captcha einbinden
hmm, keiner mehr eine Idee?
|
19.08.2007, 10:01:28
|
Anfänger
|
|
Registriert seit: Aug 2007
Ort: Ehingen
Alter: 53
Beiträge: 16
|
|
AW: Probleme beim Captcha einbinden
Schade, dann kann der Threat jetzt geschlossen werden.
|
19.08.2007, 13:11:38
|
|
SELFPHP Guru
|
|
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
|
|
AW: Probleme beim Captcha einbinden
Zitat:
Zitat von Kalachid
Den Parse-Error hab ich weg, aber die Beiträge werden noch immer nicht angezeigt.
|
Ne, Dein wüstes Script gucke ich mir nicht an.
Hinweise:
die Captcha-Funktionalität wird ausschließlich nur für das Erstellen eines neuen Beitrages benötigt.
Code:
User will neuen Beitrag erstellen;
session_start();
HTML Gerüst ausgeben
Zufallsstring ermitteln und in die Session schreiben
Formular ausgeben
HTML Gerüst fertigbasteln.
Scriptende
Code:
User hat auf den Submitknopp gelatscht:
session_start();
HTML Gerüst ausgeben
Zufallsstring aus der Session lesen und mit dem String aus dem Formular vergleichen
Bei Gleichheit:
Text aus dem Formular als neuen Beitrag verwursten
Link auf das Script zum Angucken ausgeben
Bei Ungleichheit:
Meckern
Link auf das Script zum Angucken ausgeben
HTML Gerüst fertigbasteln.
Scriptende
Geändert von meikel (†) (19.08.2007 um 13:12:04 Uhr)
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Ansicht |
Linear-Darstellung
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 13:43:06 Uhr.
|