php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 11.02.2008, 21:57  
Neuer Benutzer
 
Registriert seit: 10.02.2008
Beiträge: 2
patEwing befindet sich auf einem aufstrebenden Ast
Standard 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?
patEwing ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Problem mit Ausgabe eines gifs für ein Captcha Canni HTML, Usability und Barrierefreiheit 5 15.07.2008 19:05
[Erledigt] Galerie Problem... coraplanet PHP Tipps 2008 4 06.06.2008 13:42
Captcha in Website einbauen Dartgott PHP Tipps 2008 9 23.04.2008 15:53
Problem mit mod_rewrite und PHP-Sessions Thice PHP-Fortgeschrittene 10 24.02.2008 08:50
datensätze defekt oder problem mit dem einlesen? Ministry Datenbanken 4 06.07.2006 18:42
Captcha Bild Problem danysahne333 PHP Tipps 2006 29 10.04.2006 01:01
problem!!! PHP Tipps 2006 6 08.02.2006 11:06
[Erledigt] wieder ein Problem bei phpmailer und smtp PHP Tipps 2006 24 07.02.2006 01:07
Captcha Problem / edit: geht PHP Tipps 2005-2 9 28.10.2005 23:14
[Erledigt] Problem mit Übergabe einer Klasse in PHP4 PHP-Fortgeschrittene 10 08.01.2005 21:00
Problem mit Weiterleitung PHP Tipps 2004-2 16 22.12.2004 17:49
Smarty und PHP-Skript Problem PHP Tipps 2004-2 2 03.12.2004 22:27
Problem mit alter JavaScript-Funktion woods PHP Tipps 2004 1 13.08.2004 13:34
Login Problem PHP Tipps 2004 4 04.06.2004 18:46
foreach problem mAy^daY PHP Tipps 2004 3 02.06.2004 20:29

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
unset($_post[\mm_insert\

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:20 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum