Einbinden ins Script

Hier werden Probleme rund um das Zahlen Captcha behandelt

Moderator: frameguard

Beitragvon MR.D » 21.01.2007, 18:43

Hallo,

erstmal finde ich es super, dass ihr so ein Tutorial erstellt habt und das auch noch supportet!
Leider habe noch ein kleines Problemchen:

Die Grafik wird zwar korrekt angezeigt:
http://www.mymrd.de/captcha/captcha.php
... aber leider bekomme ich bei dem eigentlichen Script nur eine weiße Seite:
http://www.mymrd.de/captcha/test.php

Code der test.php:
Code: Alles auswählen
<?php
session_start();
function encrypt($string, $key) {
$result = '';
for($i=0; $i<strlen($string); $i++) {
   $char = substr($string, $i, 1);
   $keychar = substr($key, ($i % strlen($key))-1, 1);
   $char = chr(ord($char)+ord($keychar));
   $result.=$char;
}
return base64_encode($result);
}
$sicherheits_eingabe = encrypt($_POST["sicherheitscode"], "x23ay35s");
$sicherheits_eingabe = str_replace("=", "", $sicherheits_eingabe);
if($sicherheits_eingabe == $_SESSION['captcha_spam']){
unset($_SESSION['captcha_spam']);

//
//
//Hier kommt das ursprüngliche Script hin.
//
//

echo" <td><table width=\"100\" border=\"0\"> ";
echo" <tr> ";
echo" <td><img src=\"captcha.php\" border=\"0\" title=\"Sicherheitscode\"></td> ";
echo" </tr> ";
echo" <tr> ";
echo" <td><input name=\"sicherheitscode\" type=\"text\" size=\"4\" maxlength=\"4\">*</td> ";
echo" </tr> ";
echo" </table> ";

}
?>


Ich habe keine Ahnung woran es liegen könnte (mein Webserver müsste Up2date sein), daher wäre ich über jede Hilfe dankbar! ;)
MR.D
 
Beiträge: 5
Registriert: 21.01.2007, 18:35

Beitragvon Rob [Admin] » 21.01.2007, 18:49

Das kannst du normal lassen:

Code: Alles auswählen
echo" <td><table width=\"100\" border=\"0\"> ";
echo" <tr> ";
echo" <td><img src=\"captcha.php\" border=\"0\" title=\"Sicherheitscode\"></td> ";
echo" </tr> ";
echo" <tr> ";
echo" <td><input name=\"sicherheitscode\" type=\"text\" size=\"4\" maxlength=\"4\">*</td> ";
echo" </tr> ";
echo" </table> ";


Das ist ja kein PHP Script, das ist nur für die Eingabe da :wink:

Du musst das Script dort einfügen, wo du das Mail absendest oder den Eintrag in die Datenbank einträgst.
Rob [Admin]
Site Admin
 
Beiträge: 143
Registriert: 23.12.2006, 12:27

Beitragvon MR.D » 21.01.2007, 19:11

Das ist ja kein PHP Script, das ist nur für die Eingabe da :wink:

Ja, schon klar, aber in meinem Kontaktformuler tritt genau das selbe Problem auf (also es erscheint nichts mehr), weil ich da die Felder auch mit echo eingebunden habe. :S

Bsp.:
Kontaktformular MIT Captcha:
http://www.mymrd.de/kontaktformular-captcha.php
...ohne:
http://www.mymrd.de/kontaktformular.php
MR.D
 
Beiträge: 5
Registriert: 21.01.2007, 18:35

Beitragvon Rob [Admin] » 21.01.2007, 19:25

Nur das schreiben:

echo" <td><table width=\"100\" border=\"0\"> ";
echo" <tr> ";
echo" <td><img src=\"captcha.php\" border=\"0\" title=\"Sicherheitscode\"></td> ";
echo" </tr> ";
echo" <tr> ";
echo" <td><input name=\"sicherheitscode\" type=\"text\" size=\"4\" maxlength=\"4\">*</td> ";
echo" </tr> ";
echo" </table> ";


Ohne das rund herum, dann wird das Formular auch richtig angezeigt, erst nach dem Absenden die Überprüfung mit dem Script machen und der if Schleife.
Rob [Admin]
Site Admin
 
Beiträge: 143
Registriert: 23.12.2006, 12:27

Beitragvon MR.D » 23.01.2007, 20:50

if($sicherheits_eingabe == $_SESSION['captcha_spam']){
unset($_SESSION['captcha_spam']);

}

Das ist doch die if-Anweisung, die überprüft, ob der Code richtig eingegeben wurde oder?!
MR.D
 
Beiträge: 5
Registriert: 21.01.2007, 18:35

Beitragvon Sebi » 23.01.2007, 21:19

jo
Bild
Sebi
 
Beiträge: 44
Registriert: 26.12.2006, 12:05

Fehlermeldung

Beitragvon MR.D » 13.02.2007, 20:22

Es scheint alles soweit zu funktionieren, nur bekomme ich oben immer noch diese Fehlermeldung:
Code: Alles auswählen
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /var/www/web1/html/v7/kontakt.php:4) in /var/www/web1/html/v7/kontakt.php on line 15


Weiß jemand zufällig woran das liegen könnte?
(Siehe http://www.mymrd.de/kontakt.php)
MR.D
 
Beiträge: 5
Registriert: 21.01.2007, 18:35

Re: Fehlermeldung

Beitragvon ragazzo » 14.02.2007, 22:32

MR.D hat geschrieben:Es scheint alles soweit zu funktionieren, nur bekomme ich oben immer noch diese Fehlermeldung:
Code: Alles auswählen
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /var/www/web1/html/v7/kontakt.php:4) in /var/www/web1/html/v7/kontakt.php on line 15


Weiß jemand zufällig woran das liegen könnte?
(Siehe http://www.mymrd.de/kontakt.php)


"headers already sent" deutet darauf hin, dass vor einer zeile, die mit "header (..." beginnt, bereits output an den browser geschickt wurde.
Vor einer "header"-Zeile darf kein einziges Zeichen (auch keine Whitespaces wie &nbsp; oder <br>) ausgegeben werden.
ragazzo
 
Beiträge: 1
Registriert: 14.02.2007, 22:26

Jetzt gehts!

Beitragvon MR.D » 15.02.2007, 14:16

Ah, alles klar, jetzt gehts auch (war ein "<blockquote>" davor).
Besten Dank!
MR.D
 
Beiträge: 5
Registriert: 21.01.2007, 18:35


Zurück zu Zahlen Captcha

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste

cron