Stoppt-den-Spam.info Foren-Übersicht
RegistrierenSuchenFAQMitgliederlisteBenutzergruppenLogin
Hilfe, ich stehe an!

 
Neues Thema eröffnen   Neue Antwort erstellen    Stoppt-den-Spam.info Foren-Übersicht -> Zahlen Captcha
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
katarina



Anmeldedatum: 25.08.2007
Beiträge: 3

BeitragVerfasst am: 26.08.2007, 06:10    Titel: Hilfe, ich stehe an! Antworten mit Zitat

Hallo Forum,
ich habe ein Problem mit dem Script.
Bei mir wird die Datei "email.php" mittels <iframe> in die "kontakt.htm" eingebunden.

email.php :
Code:

<? session_start(); ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Email</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="archiv.css" rel="stylesheet" type="text/css">
</head>

<body leftmargin="0" topmargin="0" oncontextmenu="return false" oncontext="return false" onselectstart="return false">
<?
// Übernahme der Daten aus den Formular
if ($_POST["submit"]) {

// Variablen der Datenfelder
   $name = $_POST["name"];
   $email = $_POST["email"];
   $text = $_POST["text"];

// Benutzerdaten des Absender
   $absendedatum = date("d.m.Y - H:i");
   $host = gethostbyaddr($REMOTE_ADDR);
   $ip = "$REMOTE_ADDR";
   $plattf = "$HTTP_USER_AGENT";

// Überprüfung der Datenfelder
if (!eregi("^[a-za-zäöüß ]+$", $name)) {
   $fehler['name'] = "Name fehlt<br><br>";
}
if (!eregi("^[0-9a-z_.-]+@[0-9a-z.-]+\.[a-z]{2,6}$", $email)) {
   $fehler['email'] = "Email fehlt<br><br>";
}
if(isset($_SESSION['captcha_spam']) AND $_POST["sicherheitscode"] == $_SESSION['captcha_spam']){
   $fehler['sicherheitscode'] = "Der Sicherheitscode ist falsch</br>";
   }
   else {
   if (!eregi("^[0-9]+$", $_POST["sicherheitscode"])) {
   $fehler['sicherheitscode'] = "Sicherheitscode fehlt</br>";
   }
}
// Ausgabe der Fehler wird weiter unten ausgegeben (assoziatives Array)

// wenn kein Fehler, wird eine E-Mail versendet
if (!isset($fehler)) {
// Kopf der E-Mail
   $recipient = "xxxxx@xxx.at"; // Empfänger der Nachricht
   $subject = "Email - Nachricht"; // Betreff der Nachricht
   $mailheaders = "From: \"".stripslashes($_POST["name"])."\" <".$_POST["email"].">\n";
   $mailheaders .= "Reply-To: <".$_POST["email"].">\n";
   $mailheaders .= "X-Mailer: PHP/" . phpversion();
   
// Darstellung der E-Mail
   $msg  = "Folgendes wurde am " . $absendedatum . " per Online-Formular gesendet:\n" . "-------------------------------------------------------------------------\n\n";
   $msg .= "Name: " . $name . "\n";
   $msg .= "E-Mail: " . $email . "\n";
   $msg .= "\nNachricht:\n " . $text . "\n\n";
   $msg .= "Zur Sicherheit wurden diese Daten protokolliert!\n" . "------------------------------------------------\n";
   $msg .= "IP-Adresse: " . $ip . "\n";
   $msg .= "Host: " . $host . "\n";
   $msg .= "Plattform: " . $plattf . "\n";
   
   $msg = strip_tags (stripslashes ($msg));


if (@mail($recipient,$subject,$msg,$mailheaders)) {
   // Text wenn E-Mail versendet wurde,
   session_unset();
   print " <p>&nbsp;</p>
            <p class=kursiv>Das Emailformular wurde erfolgreich gesendet!</p>
         <p><form action=email.php><input class=form_button type=submit value=\" Zurück \" name=return></form></p>"; 
   exit; // mit exit wird nun das Script nach Versand angehalten, so dass das Formular nicht erneut kommt!
   }
}
}
?>
<form action="<?=$_SERVER["PHP_SELF"];?>" method="POST">
<table width="600" height="150" border="0" cellpadding="0" cellspacing="2" bordercolor="#F0F0FF">
  <tr>
    <td height="17" width="130" class="kursiv">Emailformular</td>
    <td width="8" bgcolor="#508296">&nbsp;</td>
    <td colspan="3"> &nbsp;= Pflichtfelder</td>
  </tr>
  <tr>
    <td colspan="5"><img src="img/transpixel.gif" height="3"></td>
  </tr>
  <tr>
    <td width="130" height="25" bgcolor="#D2D2D2" align="right">Name &nbsp; </td>
    <td width="8" bgcolor="#508296">&nbsp;</td>
    <td colspan="2"><input type="text" class="form_textfeld" name="name" size="45" value="<?=htmlentities(stripslashes($_POST["name"]), ENT_QUOTES);?>"></td>
     <td width="170" rowspan="4" valign="top">
        <? if (is_array($fehler)) {
         echo "<p><b><i>Eingabefehler!</i></br></br>";
           foreach ($fehler as $feldname => $wert) {
            print $wert;
            }
          print "</b></p>";
         }
      ?>
      </td>
  </tr>
  <tr>
    <td width="130" height="25" bgcolor="#D2D2D2" align="right">Email &nbsp; </td>
    <td width="8" bgcolor="#508296">&nbsp;</td>
    <td colspan="2"><input type="text" class="form_textfeld" name="email" size="45" value="<?=htmlentities(stripslashes($_POST["email"]), ENT_QUOTES);?>"></td>
  </tr>
  <tr>
    <td width="130" height="40" bgcolor="#D2D2D2" align="right">Nachricht &nbsp; </td>
      <td width="8">&nbsp;</td>
    <td colspan="2"><textarea class="form_textfeld" name="text" rows="3" cols="47"><?=htmlentities(stripslashes($_POST["text"]), ENT_QUOTES);?></textarea></td>
  </tr>
  <tr>
      <td width="130" height="30" bgcolor="#D2D2D2" align="right">Code wiederholen &nbsp; </td>
      <td width="8" bgcolor="#508296">&nbsp;</td>
      <td width="170"><input type="text" class="form_textfeld" name="sicherheitscode" size="1" maxlength="4">
        &nbsp; <img src="captcha/captcha.php" border="0" align="absmiddle" alt="Sicherheitscode"></td>
      <td>
      <input class="form_button" name="submit" type="submit" value=" Absenden ">
      </td>
  </tr>
</table>
</form>
</body>
</html>


Die Datei captcha/captcha.php sieht wie folgt aus:
Code:

<?php
   session_start();
   unset($_SESSION['captcha_spam']);
   $text = rand(1000,10000); //Zufallszahl

   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['captcha_spam'] = encrypt($text, "693840a67"); //Key
   $_SESSION['captcha_spam'] = str_replace("=", "", $_SESSION['captcha_spam']);

         
   header('Content-type: image/png');
   $img = ImageCreateFromPNG('captcha.png'); //Backgroundimage
   $color = ImageColorAllocate($img, 0, 0, 0); //Farbe
   $ttf = $_SERVER['Document_Root']."arial.ttf"; //Schriftart
   $ttfsize = 25; //Schriftgrösse
   $angle = rand(0,5);
   $t_x = rand(5,50);
   $t_y = 35;
   imagettftext($img, $ttfsize, $angle, $t_x, $t_y, $color, $ttf, $text);
   imagepng($img);
   imagedestroy($img);
?>


Das Problem ist,

1) wenn ich keinen Code eingebe schreibt er zwar "Sicherheitscode fehlt" aber generiert mir keinen neuen.

2) wenn ich einen falschen Code (oder auch den richtigen) eingebe, wird gesendet.

Ich weiß nicht ob die "kontakt.htm" auch wichtig ist.
kontakt.htm :
Code:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Kontakt</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="archiv.css" rel="stylesheet" type="text/css">
</head>
<body oncontextmenu="return false" oncontext="return false" onselectstart="return false">
<h3>Kontakt</h3>
<table width="500" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td width="50%"><p class="block>Adresse 1</p></td>
    <td width="50%"><p class="block>Adresse 2</p></td>
  </tr>
</table>

<div id="Layer1" style="position:absolute; left:20px; top:122px; width:600; height:195; z-index:1">
   <iframe name="email" src="email.php" height="195" width="600" frameborder="0"></iframe></div>
<br>
</body>
</html>


Ich probiere schon 3 Tage mittels Beiträgen aus diesen Forum aber ich komm nicht drauf.
Ich danke schon in voraus.
lg Kathi
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Steef389



Anmeldedatum: 20.06.2007
Beiträge: 57

BeitragVerfasst am: 26.08.2007, 15:53    Titel: Antworten mit Zitat

Probier mal statt
Code:
if(isset($_SESSION['captcha_spam']) AND $_POST["sicherheitscode"] == $_SESSION['captcha_spam']){
   $fehler['sicherheitscode'] = "Der Sicherheitscode ist falsch</br>";
   }
   else {
   if (!eregi("^[0-9]+$", $_POST["sicherheitscode"])) {
   $fehler['sicherheitscode'] = "Sicherheitscode fehlt</br>";
   }
}

Das aus:
Code:

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);
}
if (!isset($_POST["sicherheitscode"]) || (encrypt($_POST["sicherheitscode"], "693840a67") != $_SESSION['captcha_spam'] ) {
$fehler['sicherheitscode'] = "Der Sicherheitscode ist falsch</br>";
}

Sollte funktionieren.
Wenn nicht schreib es.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
katarina



Anmeldedatum: 25.08.2007
Beiträge: 3

BeitragVerfasst am: 26.08.2007, 16:58    Titel: Antworten mit Zitat

Hallo Steef, danke erstmal für die Antwort.
Ich habe es schon soweit geschafft (ich habe nur mehr ein "iframe") wenn ich die Seite "email.php" alleine aufrufe funktioniert alles gut, sowie ich die Seite "email.php" im "iframe" aufrufe, werden keine neuen Captcha erstellt und ich bekomme nur die Antwort "Der Sicherheitscode ist falsch". Egal ob ich den richtigen oder den falschen Code eingebe. :roll:
Vielleicht weiß da ja jemand bescheid.
lg kathi
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
katarina



Anmeldedatum: 25.08.2007
Beiträge: 3

BeitragVerfasst am: 26.08.2007, 17:49    Titel: Antworten mit Zitat

Ach ja , der afktuelle Code der "email.php":

Code:

<? session_start();?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Kontakt</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="archiv.css" rel="stylesheet" type="text/css">
</head>
<body>
<h3>Kontakt h3>
<table width="500" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td width="50%">Adresse 1</td>
    <td width="50%">Adresse 2</td>
  </tr>
</table>
<?
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"], "159a357");
$sicherheits_eingabe = str_replace("=", "", $sicherheits_eingabe);

// Übernahme der Daten aus den Formular
if ($_POST["submit"]) {

// Variablen der Datenfelder
   $name = $_POST["name"];
   $email = $_POST["email"];
   $text = $_POST["text"];

// Benutzerdaten des Absender
   $absendedatum = date("d.m.Y - H:i");
   $host = gethostbyaddr($REMOTE_ADDR);
   $ip = "$REMOTE_ADDR";
   $plattf = "$HTTP_USER_AGENT";

// Überprüfung der Datenfelder
if (!eregi("^[a-za-zäöüß ]+$", $name)) {
   $fehler['name'] = "Name fehlt<br><br>";
}
if (!eregi("^[0-9a-z_.-]+@[0-9a-z.-]+\.[a-z]{2,6}$", $email)) {
   $fehler['email'] = "Email fehlt<br><br>";
}
if (!eregi("^[0-9]+$", $sicherheitscode)) {
   $fehler['sicherheitscode'] = "Sicherheitscode fehlt<br><br>";
   }
   else {
   if($sicherheits_eingabe != $_SESSION['captcha_spam']){
   unset($_SESSION['captcha_spam']);
   $fehler['captcha'] = "Sicherheitscode<br>war nicht korrekt!<br>";
   }
}

// wenn kein Fehler, wird eine E-Mail versendet
if (!isset($fehler)) {
// Kopf der E-Mail
   $recipient = "xxx@xx"; // Empfänger der Nachricht
   $subject = "Email - Nachricht "; // Betreff der Nachricht
   $mailheaders = "From: \"".stripslashes($_POST["name"])."\" <".$_POST["email"].">\n";
   $mailheaders .= "Reply-To: <".$_POST["email"].">\n";
   $mailheaders .= "X-Mailer: PHP/" . phpversion();
   
// Darstellung der E-Mail
   $msg  = "Folgendes wurde am " . $absendedatum . " per Online-Formular gesendet:\n" . "-------------------------------------------------------------------------\n\n";
   $msg .= "Name: " . $name . "\n";
   $msg .= "E-Mail: " . $email . "\n";
   $msg .= "\nNachricht:\n " . $text . "\n\n";
   $msg .= "Zur Sicherheit wurden diese Daten protokolliert!\n" . "------------------------------------------------\n";
   $msg .= "IP-Adresse: " . $ip . "\n";
   $msg .= "Host: " . $host . "\n";
   $msg .= "Plattform: " . $plattf . "\n";
   
   $msg = strip_tags (stripslashes ($msg));


   if (@mail($recipient,$subject,$msg,$mailheaders)) {
      // Text wenn E-Mail versendet wurde,
      session_unset();
      print " <p>&nbsp;</p>
               <p class=kursiv>Das Emailformular wurde erfolgreich gesendet!</p>
            <p><form action=email.php><input class=form_button type=submit value=\" Zurück \" name=return></form></p>"; 
      exit; // mit exit wird nun das Script nach Versand angehalten, so dass das Formular nicht erneut kommt!
   }
}
}
?>

<form action="<?=$_SERVER["PHP_SELF"];?>" method="POST">
<table width="600" height="150" border="0" cellpadding="0" cellspacing="2" bordercolor="#F0F0FF">
  <tr>
    <td height="17" width="130" class="kursiv">Emailformular</td>
    <td width="8" bgcolor="#508296">&nbsp;</td>
    <td colspan="3"> &nbsp;= Pflichtfelder</td>
  </tr>
  <tr>
    <td colspan="5"><img src="img/transpixel.gif" height="3"></td>
  </tr>
  <tr>
    <td width="130" height="25" bgcolor="#D2D2D2" align="right">Name &nbsp; </td>
    <td width="8" bgcolor="#508296">&nbsp;</td>
    <td colspan="2"><input type="text" class="form_textfeld" name="name" size="45" value="<?=htmlentities(stripslashes($_POST["name"]), ENT_QUOTES);?>"></td>
     <td width="170" rowspan="4" valign="top">
        <? if (is_array($fehler)) {
         echo "<p><b><i>Eingabefehler!</i></br></br>";
           foreach ($fehler as $feldname => $wert) {
            print $wert;
            }
          print "</b></p>";
         }
      ?>
      </td>
  </tr>
  <tr>
    <td width="130" height="25" bgcolor="#D2D2D2" align="right">Email &nbsp; </td>
    <td width="8" bgcolor="#508296">&nbsp;</td>
    <td colspan="2"><input type="text" class="form_textfeld" name="email" size="45" value="<?=htmlentities(stripslashes($_POST["email"]), ENT_QUOTES);?>"></td>
  </tr>
  <tr>
    <td width="130" height="40" bgcolor="#D2D2D2" align="right">Nachricht &nbsp; </td>
      <td width="8">&nbsp;</td>
    <td colspan="2"><textarea class="form_textfeld" name="text" rows="3" cols="47"><?=htmlentities(stripslashes($_POST["text"]), ENT_QUOTES);?></textarea></td>
  </tr>
  <tr>
      <td width="130" height="30" bgcolor="#D2D2D2" align="right">Code wiederholen &nbsp; </td>
      <td width="8" bgcolor="#508296">&nbsp;</td>
      <td width="170"><input type="text" class="form_textfeld" name="sicherheitscode" size="1" maxlength="4">
        &nbsp; <img src="captcha/captcha.php" border="0" align="absmiddle" alt="Sicherheitscode"></td>
      <td>
      <input class="form_button" name="submit" type="submit" value=" Absenden ">
      </td>
  </tr>
</table>
</form>
</body>
</html>

Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Stoppt-den-Spam.info Foren-Übersicht -> Zahlen Captcha Alle Zeiten sind GMT
Seite 1 von 1

 
  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
You can attach files in this forum
You can download files in this forum