Ankündigung

Einklappen
Keine Ankündigung bisher.

Problem mit CAPTCHA

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Problem mit CAPTCHA

    Hallo zusammen,
    seit einer Woche versuchen ich ein CAPTCHA in ein Formular einzubauen, mit dem Kommentare zu einem Blog in eine SQL-Datenbank eingetragen werden. Ich habe schon in verschiedenen Communities versucht Hilfe hierbei zu bekommen, da meine php-Kenntnisse eher rudimentär ausgeprägt sind. Grundsätzlich ist mein Problem, dass ich nicht weiss an welcer Stelle ich die if/else-Abfrage einsetzen soll. Nach dem Prinzip "ich versuche es mal an jeder Stelle" war ich leider nicht besonders erfolgreich, weshalb ich schon überlegt habe , ob eventuell doch noch irgendetwas mit der Funktion selbst nicht i.O. ist. Das Ganze Ding ist eine Abwandlung der auf stoppt-den-spam vorgestellten Funktion. Das Problem dort ist nur, dass sich dort im Forum niemand mit SQL auskennt. Jetzt aber zum Problem: wohin mit:
    PHP-Code:
    if(isset($_SESSION['captcha_spam']) && $sicherheits_eingabe == $_SESSION['captcha_spam'])
    {
    unset(
    $_SESSION['captcha_spam']);
    }
    else
    {
    die(
    "Falscher Sicherheitscode!");

    In diesem Code (was ich schon versucht habe steht als Kommentar drinnen):
    PHP-Code:
    <?php require_once('../../Connections/testverbindung.php'); ?>
    <?php 
    error_reporting
    (E_ALL); 
    session_start();
    function 
    encrypt($string$key)
    {
       
    $result '';
       for(
    $i=0$i<strlen($string); $i++)
       {
          
    $char substr($string$i1);
          
    $keychar substr($key, ($i strlen($key))-11);
          
    $char chr(ord($char)+ord($keychar));
          
    $result.=$char;
       }
       return 
    base64_encode($result);
    }
    if(isset(
    $_POST['sicherheitscode'])){
      
    $sicherheits_eingabe encrypt($_POST["sicherheitscode"], '8t3479u97'); // key sollte ident sein mit captcha.php
      
    $icherheits_eingabe str_replace("="""$sicherheits_eingabe);
    }

    if (!
    function_exists("GetSQLValueString")) {
     function 
    GetSQLValueString($theValue$theType$theDefinedValue ""$theNotDefinedValue ""
    {
      
    $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;

      switch (
    $theType) {
        case 
    "text":
          
    $theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
          break;    
        case 
    "long":
        case 
    "int":
          
    $theValue = ($theValue != "") ? intval($theValue) : "NULL";
          break;
        case 
    "double":
          
    $theValue = ($theValue != "") ? "'" doubleval($theValue) . "'" "NULL";
          break;
        case 
    "date":
          
    $theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
          break;
        case 
    "defined":
          
    $theValue = ($theValue != "") ? $theDefinedValue $theNotDefinedValue;
          break;
      } 
      
    // nach Eingabe von richtigem/falschen Sicherheitscode stets Anzeige "falscher Sicherheitscode", kein Eintrag ins GB 
      
    return $theValue;
    }
    }
     
    //"falscher Sicherheitscode" läd sofort 
    $editFormAction $_SERVER['PHP_SELF'];
    if (isset(
    $_SERVER['QUERY_STRING'])) {
      
    $editFormAction .= "?" htmlentities($_SERVER['QUERY_STRING']);
    }
    // sofortige Meldung: falscher Sicherheitscode bei Seitenvorschau 
    if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
      
    $insertSQL sprintf("INSERT INTO guestbook (name, entry, email, hompage) VALUES (%s, %s, %s, %s)",
                           
    GetSQLValueString($_POST['name'], "text"),
                           
    GetSQLValueString($_POST['entry'], "text"),
                           
    GetSQLValueString($_POST['email'], "text"),
                           
    GetSQLValueString($_POST['hompage'], "text"));

      
    mysql_select_db($database_testverbindung$testverbindung);
      
    $Result1 mysql_query($insertSQL$testverbindung) or die(mysql_error());

      
    $insertGoTo "../the_blogs/stefan.php";
      if (isset(
    $_SERVER['QUERY_STRING'])) {
        
    $insertGoTo .= (strpos($insertGoTo'?')) ? "&" "?";
        
    $insertGoTo .= $_SERVER['QUERY_STRING'];
      }
      
    // "falscher Sicherheitscode" wird angezeigt, aber Eintragung erfolgt trotzdem (auch ohne code) 
      
    header(sprintf("Location: %s"$insertGoTo));
    }
     
    //"falscher Sicherheitscode" läd als erstes bei Seitenvorschau 
    mysql_select_db($database_testverbindung$testverbindung);
    $query_stefan_guestbook "SELECT * FROM guestbook ORDER BY ID DESC";
    $stefan_guestbook mysql_query($query_stefan_guestbook$testverbindung) or die(mysql_error());
    $row_stefan_guestbook mysql_fetch_assoc($stefan_guestbook);
    $totalRows_stefan_guestbook mysql_num_rows($stefan_guestbook);
    ?>
    //[...]
          <form action="<?php echo $editFormAction?>" method="post" name="form1" id="form1">
            <input type="hidden" name="MM_insert" value="form1" />
            <table align="left">
              <tr valign="baseline">
                <td nowrap="nowrap" align="right">name:</td>
                <td><input type="text" name="name" value="" size="32" /></td>
              </tr>
              <tr valign="baseline">
                <td nowrap="nowrap" align="right" valign="top">entry:</td>
                <td><textarea name="entry" cols="30" rows="5"></textarea>            </td>
              </tr>
              <tr valign="baseline">
                <td nowrap="nowrap" align="right">email:</td>
                <td><input type="text" name="email" value="" size="32" /></td>
              </tr>
              <tr valign="baseline">
                <td nowrap="nowrap" align="right">hompage</td>
                <td><input type="text" name="hompage" value="http://" size="32" /></td>
              </tr>
              <tr valign="baseline">
                <td nowrap="nowrap" align="right">code: </td>
                <td><img src="../../captcha/captcha.php" border="0" title="Sicherheitscode" /></td>
              </tr>
              <tr valign="baseline">
                <td nowrap="nowrap" align="right">code: </td>
                <td><input type="text" name="sicherheitscode" size="5" />
                </td>
              </tr>
              <tr valign="baseline">
                <td nowrap="nowrap" align="right">&nbsp;</td>
                <td><input name="submit" type="submit" value="Datensatz einf&uuml;gen" /></td>
              </tr>
            </table>
          </form>
        <p>&nbsp;</p>
      </div>
    <!-- InstanceEndEditable --></div>
    <div id="what"><!-- InstanceBeginEditable name="what_is_it?" --><span style="font-family: Geneva, Arial, Helvetica, sans-serif; font-size: 16px; font-weight: bold; color: #666666">back to:</span>    <!-- InstanceEndEditable --></div>
    <div id="hyperlinks"><!-- InstanceBeginEditable name="gals" -->
    <table border="0">
        <tr>
          <td></td>
        </tr>
    </table>
    <!-- InstanceEndEditable --></div>

    </body>
    <!-- InstanceEnd --></html>
    <?php
    mysql_free_result
    ($stefan_guestbook);
    ?>
    Kann mir vielleicht jemand hierbei weiterhelfen?
Lädt...
X