Brauche Hilfe! Chapta funktioniert nicht.

Hier werden Probleme rund um das Rechen Captcha behandelt

Moderator: frameguard

Brauche Hilfe! Chapta funktioniert nicht.

Beitragvon hilfesuchender » 05.08.2007, 18:11

Ersteinmal Hallo!

Ich bin schon am verzweifeln. Ich habe ein Kontaktformular entworfen und wollte es mit dem Rechen-Chapta schützen.

kontaktformular.php

<html>

<head>
<meta http-equiv="Content-Language" content="de">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Kontaktformular</title>
</head>

<body>

<p align="center">&nbsp;</p>
<p align="center">&nbsp;</p>
<p align="center"><u><font face="Georgia" size="6" color="#FF0000">
Kontaktformular</font></u></p>
<p align="center">&nbsp;</p>
<form action="kontaktformular-auswerten.php">
<table border="0" width="382" id="kontakt" align="center">
<tr>
<td width="112">
<p align="right">Name:&nbsp;&nbsp;&nbsp; </td>
<td width="260">
<!--webbot bot="Validation" s-data-type="String" b-allow-letters="TRUE" b-allow-whitespace="TRUE" --><input type="text" name="kelsdfsdgb654" size="36"></td>
</tr>
<tr>
<td width="112">
<p align="right">Telefonnummer:&nbsp;&nbsp;&nbsp; </td>
<td width="260">
<!--webbot bot="Validation" s-data-type="Integer" s-number-separators="x" --><input type="text" name="Telefon" size="36"></td>
</tr>
<tr>
<td height="28" width="112">
<p align="right">E-Mail Adresse:&nbsp;&nbsp;&nbsp; </td>
<td width="260" height="28"><input type="text" name="Mail" size="36"></td>
</tr>
<tr>
<td width="112">
<p align="right">Betreff:&nbsp;&nbsp;&nbsp; </td>
<td width="260"><input type="text" name="Betreff" size="36"></td>
</tr>
<tr>
<td width="112">
<p align="right">Mitteilung:&nbsp;&nbsp;&nbsp; </td>
<td width="260"><textarea rows="7" name="Text" cols="27"></textarea></td>
</tr>
<tr>
<td><img src="rechen-captcha.php"></td>
<td><input type="text" name="sicherheitscode" size="5"></td>
</tr>
<tr>
<td width="112">&nbsp;</td>
<td width="260">&nbsp;</td>
</tr>
<tr>
<td width="112">&nbsp;</td>
<td width="260">&nbsp;<input type="submit" name="Send" value="Absenden"></td>
</tr>
</table>
<p align="center">&nbsp;</p>
</form>
<p align="center">&nbsp;</p>

</body>

</html>

kontakrformular-auswerten.php

<html>
<head>
<title>Kontaktformular mit PHP</title>
</head>
<body>
<?php
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"], "29jfkd921");
$sicherheits_eingabe = str_replace("=", "", $sicherheits_eingabe);
if(isset($_SESSION['rechen_captcha_spam']) AND $sicherheits_eingabe == $_SESSION['rechen_captcha_spam'] AND is_numeric($_POST["sicherheitscode"]) == true AND $sicherheits_eingabe == true){
unset($_SESSION['rechen_captcha_spam']);

if($_REQUEST['Send'])
{
if(empty($_REQUEST['Name']) || empty($_REQUEST['Email']) && empty($_REQUEST['Telefon']) || empty($_REQUEST['Betreff']) || empty($_REQUEST['Mail']) || empty($_REQUEST['Text']))
{
echo"Bitte gehen Sie <a href=\"javascript:history.back();\">zurück</a> und füllen Sie alle Felder aus!";
}
else
{
$Mailnachricht = "Onlineformular: \n\n";
$Mailnachricht .= "Name: ";
$Mailnachricht .= $_POST['kelsdfsdgb654'];
$Mailnachricht .= "\nTel.: ";
$Mailnachricht .= $_POST['Telefon'];
$Mailnachricht .= "\nE-Mail.: ";
$Mailnachricht .= $_POST['Mail'];
$Mailnachricht .= "\n\nBetreff: ";
$Mailnachricht .= $_POST['Betreff'];
$Mailnachricht .= "\n\nMitteilung: ";
$Mailnachricht .= $_POST['Text'];
$Mailnachricht .= "\n\nAusgefüllt am: ";
$Mailnachricht .= date("d.m.Y H:i:s");

$Mailbetreff = "Kontaktformular: ";
$Mailbetreff .= $_POST['Betreff'];
mail('schopp@gmx.at', $Mailbetreff, $Mailnachricht, "From: ".$_REQUEST['Mail']);
}
}
}
else{
die ("Der Sicherheitscode ist falsch!");
}
?>
</body>
</html>

rechen-chapta.php

<?php
session_start();
unset($_SESSION['rechen_captcha_spam']);
$zahl1 = rand(10,20); //Erste Zahl 10-20
$zahl2 = rand(1,10); //Zweite Zahl 1-10
$operator = rand(1,2); // + oder -

if($operator == "1"){
$operatorzeichen = " + ";
$ergebnis = $zahl1 + $zahl2;
}else{
$operatorzeichen = " - ";
$ergebnis = $zahl1 - $zahl2;
}

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);
}

$_SESSION['rechen_captcha_spam'] = encrypt($ergebnis, "29jfkd921"); //Key
$_SESSION['rechen_captcha_spam'] = str_replace("=", "", $_SESSION['rechen_captcha_spam']);

$rechnung = $zahl1.$operatorzeichen.$zahl2." = ?";
$img = imagecreatetruecolor(80,15);
$schriftfarbe = imagecolorallocate($img,13,28,91);
$hintergrund = imagecolorallocate($img,162,162,162);
imagefill($img,0,0,$hintergrund);
imagestring($img, 3, 2, 0, $rechnung, $schriftfarbe);
header("Content-type: image/png");
imagepng($img);
imagedestroy($img);
?>

Zusammenfassung:

Wenn ich das Kontaktformular öffne sehe ich das Chapta nicht. Wenn man die rechen-chapta.php direkt aufruft kommen session[]-Fehler.

Falls ihr euch das Projekt online ansehen wollt: www.transporte-scheiner.at/kontakttest/dateiname.php

Hoffe ihr könnt mir Helfen
hilfesuchender
 
Beiträge: 4
Registriert: 05.08.2007, 18:02

Tschludige!

Beitragvon hilfesuchender » 05.08.2007, 18:15

:oops: Tut mir leid das ich CAPTCHA immer falsch geschrieben habe :oops:

Dateien sind natürlich richtig benannt!

Sorry nochmal
hilfesuchender
 
Beiträge: 4
Registriert: 05.08.2007, 18:02

Beitragvon Steef389 » 06.08.2007, 16:05

Ich glaube, dass PHP dein Temporäres Verzeichnis nicht findet/keine Schreibrechte hat.
Falls es dein eigener Server ist, erstelle das Verzeichnis/gib PHP Schreibrechte oder ändere die php.ini
Falls es ein gemieteter Hoster/Freehoster ist, setze dich mal mit ihm in Verbindung.

Da das alles aber nur eine Vermutung ist, warte mal was die anderen dazu sagen.
Steef389
 
Beiträge: 57
Registriert: 20.06.2007, 20:31

Beitragvon bonsai » 07.08.2007, 21:52

Also bei mir funtionierte das am Anfang auch nicht, da ich Deinen Code per copy&paste übernommen habe. Ein Fehler war, die Datei Rechen-captcha.php war falsch geschrieben. Umbenannt und es geht (Mails versenden kann ich aber nicht über xampp).
Liegt die rechen-captcha.php auch im selben Ordner wie die Formular und Auswertung.php?
Du wirst aber noch ein anderes Problem bekommen. Wenn der Sicherhietscode falsch ist, wird das in einer neuen Seite angezeigt. Gehe ich dann auf "zurück", ist die ganze Eingabe weg.

Weiter hab ich jetzt auch nicht geschaut.
bonsai
 
Beiträge: 7
Registriert: 11.07.2007, 11:42

Beitragvon Steef389 » 08.08.2007, 18:39

@Bonsai:
Darüber kann man nacher reden, erstmal sollte das Captcha funktionieren.
Hier der korrekte Link. http://www.transporte-scheiner.at/konta ... aptcha.php
Steef389
 
Beiträge: 57
Registriert: 20.06.2007, 20:31

Beitragvon hilfesuchender » 09.08.2007, 11:29

Danke für eure Antworten:

@Steef389: Habe ein Hosting-Package bei SilverServer (sil.at)

@bosnai: "Ein Fehler war, die Datei Rechen-captcha.php war falsch geschrieben." --> ich hab jede Datei abgesucht und den Dateinamen selbst kontrolliert. Finde den Fehler leider nicht.

@bosnai: Ja, alle drei Dateien liegen im Unterordner /kontakttest

Grüße
hilfesuchender
hilfesuchender
 
Beiträge: 4
Registriert: 05.08.2007, 18:02

Beitragvon bonsai » 10.08.2007, 07:11

sry wenn das etwas falsch rüberkam. Es war nicht in einer Datei sondern der Dateiname selber. Hatte das einfach so kopiert und den Dateiname damit vergeben.
?>
.............
</body>
</html>

rechen-chapta.php (Dies hatte ich eben als Dateiname vegeben)

<?php
session_start();
............


Dadurch wird die Datei ja nicht gefunden und auch das captcha nicht angezeigt. Ob das jetzt bei Dir auch so ist, weiss ich nicht.
bonsai
 
Beiträge: 7
Registriert: 11.07.2007, 11:42

Beitragvon Steef389 » 10.08.2007, 10:59

@Bonsai:
Nein, leider ist das nicht das Problem, sondern kommen, wenn du direkt auf die Captchaphp gehst, folgende Fehlermeldungen

Code: Alles auswählen
Warning: session_start() [function.session-start]: open(/tmp/sess_50ed95c7d861ecedf758557e1372e80d, O_RDWR) failed: No such file or directory (2) in /www/kontakttest/rechen-captcha.php on line 2

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /www/kontakttest/rechen-captcha.php:2) in /www/kontakttest/rechen-captcha.php on line 2

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /www/kontakttest/rechen-captcha.php:2) in /www/kontakttest/rechen-captcha.php on line 2

Warning: Cannot modify header information - headers already sent by (output started at /www/kontakttest/rechen-captcha.php:2) in /www/kontakttest/rechen-captcha.php on line 36

Warning: Unknown(): open(/tmp/sess_50ed95c7d861ecedf758557e1372e80d, O_RDWR) failed: No such file or directory (2) in Unknown on line 0

Warning: Unknown(): Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/tmp) in Unknown on line 0


Schick deinem Hoster mal die Fehlermeldungen und am besten noch Link + Quelltext und frage nach, woran das liegen könnte.
Entweder falsche Rechte im Temp-Ordner oder dein Hoster unterstützt keine Sessions.[/code]
Steef389
 
Beiträge: 57
Registriert: 20.06.2007, 20:31

Beitragvon hilfesuchender » 10.08.2007, 15:52

Ok. Dann werde ich im Laufe der nächsten Woche einmal eine Mail an SilverServer schreiben. Haben einen guten Support, sollte daher nicht so lange dauern.

Ich schreib dann wieder wenns etwas neues gibt.

Schönes Wochende
hilfesuchender
hilfesuchender
 
Beiträge: 4
Registriert: 05.08.2007, 18:02


Zurück zu Rechen Captcha

Wer ist online?

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

cron