Ist es möglich in ein bestehendes html-formular eine php-captcha abfrage einzubauen?

Talisman1

Grünschnabel
Hallo,

ich habe ein Kontaktformular das in html geschrieben ist, jedoch kein captcha hat und so mittlerweile jede menge spam zu mir verschickt.
Nun habe ich nach einer Möglichkeit gesucht, dort nachträglich eine captcha-abfrage einzubauen und habe auch ein script bei "www.stoppt-den-spam.info" gefunden.
Mein Formular wird so dargestellt wie es sein soll, (ich sehe das captcha-bild mit den Buchstaben und habe ein Eingabefeld) aber ich bekomme es anscheinend nicht hin,
das php-script so in das Formular einzufügen, das es funktioniert. Was ich auch mache, ich kann das Formular ohne captcha-eingabe verschicken.

So soll das php-script in´s Formular eingetragen werden:
PHP:
<?php
session_start();
if(isset($_SESSION['captcha_spam']) AND $_POST["sicherheitscode"] == $_SESSION['captcha_spam']){
unset($_SESSION['captcha_spam']);

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

}
?>

Der Einbau ins bestehende Script ist sehr einfach, es braucht nur eine if-Funktion um das bisherige Script, welche überprüft ob das Captcha das eingegeben wurde, dem generierten Captcha entspricht. Optional kann auch noch ein else Teil angefügt werden, welche den Fehler ausgibt, dass das Captcha falsch war.
}else{
   die ("Der Sicherheitscode ist falsch!");
}

Ich habe es auf verschiedene weisen versucht im html-formular einzusetzten, aber nichts hat funktioniert. Ich habe es auch damit versucht, aus dem html, ein php-formular zu machen, aber auch das war ohne erfolg. Hat hier vielleicht jemand eine Idee was ich falsch mache, bzw. wie es richtig gemacht wird?
Danke.
Ich habe copiere hier mal den (verkürzten) Inhalt des html-formulares rein, so wie ich zuletzt die php-zeilen dort zu integrieren versucht habe.
HTML:
<html>
<head>
<title>Kontaktformular</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
##internes CSS##
-->
</style>
<script language="JavaScript">
<!--
##JavaScript zur Abfrage der richtigen Feld-ausfüllung##
}
//-->
</script>
<body bgcolor="#000000" background="images/back1.gif" scroll="auto"> 
 
##Tabelle mit Header und Logo##
                        
                          <tr> 
##Tabelle mit der Navigation##
                          </tr>
                    <tr align="center"> 
                      <td valign="top" colspan="2" class="t_klein"> 
##Formularteil mit Abfrage##    ##hier habe ich den ersten Teil des php-scriptes eingefügt######
<?php
session_start();
if(isset($_SESSION['captcha_spam']) AND $_POST["sicherheitscode"] == $_SESSION['captcha_spam']){
unset($_SESSION['captcha_spam']);
              
<form action="form.php" method="post" name="firma.de" onSubmit="MM_validateForm('name','','R','strasse','','R','ort','','R','plz','','RinRange1:99999','telefon','','R','email','','NisEmail');return document.MM_returnValue">
                          <input type="hidden" name="Formular" value="firma">
                          <table border="0" cellspacing="0" cellpadding="0" width="45%" align="center">
                            <tr align="left" valign="top"> 
                              <td colspan="3">
<table width="130" border="0" cellspacing="0" cellpadding="0">
                                  <tr> 
                                    <td><font face="Verdana, Arial, Helvetica, sans-serif" size="3" color="#CCCCCC"><b><font size="2">Formular</font></b></font></td>
                                  </tr>
                                  <tr bgcolor="#CC0000"> 
                                    <td height="1"><img src="images/10_10_pix.gif" width="10" height="1"></td>
                                  </tr>
                                </table>
                                - -</td>
                            </tr>
                            <tr align="left"> 
                              <td colspan="3"> <font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#CCCCCC">Bestellen 
                                Sie unverbindlich und schnell unser Infomaterial<br>
                                <br>
                                </font><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#CCCCCC"> 
                                <font size="1">Bitte beachten: Die Felder mit 
                                * m&uuml;ssen ausgef&uuml;llt werden.</font></font></td>
                            </tr>
                            <tr> 
                              <td height="10" colspan="3" valign="top"> 
                                <table width="100%" border="0" cellspacing="3" cellpadding="0">
                                  <tr> 
                                    <td> <div align="center"> 
                                        <input type="radio" name="zuschicken"  value="Patienten Info" checked>
                                      </div></td>
                                    <td> <div align="center"> 
                                        <input type="radio" name="zuschicken" value="Praxis Info">
                                      </div></td>
                                    <td> <div align="right"></div>
                                      <div align="right"> </div></td>
                                    <td>&nbsp;</td>
                                  </tr>
                                  <tr> 
                                    <td><div align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#CC0000">Patienten-Info</font></div></td>
                                    <td><div align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#CC0000">Praxis-Info</font></div></td>
                                    <td colspan="2"><div align="center"></div></td>
                                  </tr>
                                  <tr>
                                    <td colspan="4"><p> 
                                        <label> Optionsschalter</label>
                                        <br>
                                        <label> Optionsschalter</label>
                                        <br>
                                      </p></td>
                                  </tr>
                                  <tr> 
                                    <td colspan="4"><font color="#FFFFFF" size="2" face="Verdana, Arial, Helvetica, sans-serif">Wie 
                                      sind Sie auf uns aufmerksam geworden ?</font></td>
                                  </tr>
                                  <tr> 
                                    <td colspan="2"> <div align="center">&nbsp;<font color="#CCCCCC">*</font> 
                                        <select name="aufmerksam durch" size="1" id="aufmerksam durch">
                                          <option selected> </option>
                                          <option>Internet</option>
                                          <option>Tagespresse</option>
                                          <option>H&ouml;rfunk</option>
                                          <option>Fachzeitschrift</option>
                                          <option>Sonstige</option>
                                        </select>
                                      </div>
                                      <div align="center"></div></td>
                                    <td colspan="2"> <div align="right"> </div></td>
                                  </tr>
                                </table>
                              </td>
                            </tr>
                            <tr> 
                              <td valign="top" colspan="3"></td>
                            </tr>
                            <tr valign="top"> 
                              <td colspan="3"> 
                                <table border="0" width="100%">
                                  <tr> 
                                    <td valign="top" colspan="2"> 
                                      <table width="100%" border="0" cellspacing="0" cellpadding="0">
                                        <tr valign="top" align="left"> 
                                          <td width="350"> 
                                            <table border=0 cellpadding=2 cellspacing=1 width=350>
                                              <tbody> 
                                              <tr align=left valign=top> 
                                                <td width=91 valign="middle"> 
                                                  <div align=right><font size="2" color="#CCCCCC"><font face="Verdana, Arial, Helvetica, sans-serif">Name*</font></font></div>                                                </td>
                                                <td colspan="3"> 
                                                  <input name=name class="eingabe360" onBlur="MM_validateForm('name','','R');return document.MM_returnValue" size=50 maxlength="50">                                                </td>
                                              </tr>
                                              <tr align=left valign=top> 
                                                <td width=91 valign="middle"> 
                                                  <div align=right><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#CCCCCC">Strasse*</font></div>                                                </td>
                                                <td colspan="3"> 
                                                  <input name=strasse class=eingabe360 onBlur="MM_validateForm('strasse','','R');return document.MM_returnValue" size=50 maxlength="50">                                                </td>
                                              </tr>
                                              <tr align=left valign=top> 
                                                <td width=91 valign="middle"> 
                                                  <div align=right><font size="2" color="#CCCCCC"><font face="Verdana, Arial, Helvetica, sans-serif">Ort*</font></font></div>                                                </td>
                                                <td colspan="3"> 
                                                  <input name=ort class=eingabe360 onBlur="MM_validateForm('ort','','R');return document.MM_returnValue" size=50 maxlength="50">                                                </td>
                                              </tr>
                                              <tr align=left valign=top> 
                                                <td width=91 valign="middle"> 
                                                  <div align="right"><font size="2" color="#CCCCCC"><font face="Verdana, Arial, Helvetica, sans-serif">Postleitzahl*</font></font></div>                                                </td>
                                                <td colspan="3"> 
                                                  <input class=eingabe360 name=plz size=50 maxlength="5" onBlur="MM_validateForm('plz','','RinRange1:99999');return document.MM_returnValue">                                                </td>
                                              </tr>
                                              <tr align=left valign=top> 
                                                <td width=91 valign="middle"> 
                                                  <div align="right"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#CCCCCC">Telefon*</font></div>                                                </td>
                                                <td colspan="3"> 
                                                  <input class=eingabe360 name=telefon size=50 maxlength="50">                                                </td>
                                              </tr>
                                              <tr align=left valign=top> 
                                                <td width=91 valign="middle"> 
                                                  <div align=right><font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#CCCCCC">eMail</font></div>                                                </td>
                                                <td colspan="3"> 
                                                  <input class=eingabe360 name=email size=50 maxlength="50">                                                </td>
                                              </tr>
                                              <tr align=left valign=top> 
                                                <td width=91> 
                                                  <div align=right><font size=2><font face="Verdana, Arial, Helvetica, sans-serif"><font color="#CCCCCC"></font> 
                                                    </font></font></div>                                                </td>
                                                <td colspan="3">&nbsp; </td>
                                              </tr>
                                              <tr> 
                                                <td height="23">&nbsp;</td>
                                           <td valign="top">
<img src="http://www.firma.de/captcha/captcha.php" border="0" title="Sicherheitscode"></td>
##hier habe ich die überprüfung des Sicherheitscode eingefügt########
}else{
   die ("Der Sicherheitscode ist falsch!");
}          
                                                <td valign="top" align="right"><input type="text" name="sicherheitscode" size="5"></td>
                                                <td valign="top" align="right"><input type="image" border="0" name="senden" src="images/senden.gif" width="69" height="20"></td>
                                              </tr>
                                              </tbody> 
                                            </table>
                                          </td>
                                          <td>
                                            <table width="125" border="0" cellspacing="0" cellpadding="3">
                                              <tr valign="top"> 
                                                <td> 
                                                  <p align="left"><font color="#CCCCCC" size="1" face="Verdana, Arial, Helvetica, sans-serif"> 
                                                    </font></p> 
                                                  </td>
                                              </tr>
                                            </table>
                                          </td>
                                        </tr>
                                      </table>
                                    </td>
                                  </tr>
                                </table>
                              </td>
                            </tr>
                            <tr> 
                              <td colspan="3"><img src="images/main_frame/    
                              linie_400.gif" width="450" height="1"></td>
                            </tr>
                          </table>
    </form>
##nach dem Ende des Formular, habe ich hier das php-script beendet####
}?>  
                    </tr>
                  </table>
                </td>
              </tr>
            </table>
          </td>
        </tr>
      </table>
    </td>
  
##Footer##
        </tr>
      </table>
    </td>
  </tr>
</table>
</body>
</html>
 

Yaslaw

n/a
Moderator
PHP:
<html>
<p>Hier ist html</p>
<p><?php echo "Ausgabe aus php"; ?></p>
<p>
<?php if(1==1){ ?>
    oh, 1 ist 1
<?php } ?>
</p>
</html>

Die Datei sollte die Endung php haben oder du musst .htaccess so anpassen, dass *.html als php-Datei geparst wird.
 

Yaslaw

n/a
Moderator
Mir auch nicht, da ich line 252 +- 10 weitere Zeilen nicht sehe. Irgendwo hast du ein < zu viel oder zu wenig.