php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 31.03.2006, 17:49  
Neuer Benutzer
 
Registriert seit: 18.03.2006
Beiträge: 27
emerge
Standard Gästebuch mit captcha

Hallo,

ich hoffe Ihr könnt mir da helfen. Ich habe da selber ein Gästebuch gemacht.
Oder besser gesagt, ein Formular das die Daten in die Datenbank einträgt.
Ich habe das bis dahin geschaft, also die Einträge wurden auch in die Datenbank richtig eingetragen.
Aber als ich dann noch eine Captcha function eingebaut habe um mich gegen Spammer zu schützen, wurde es mir zu viel und ich habe die übersicht verlohren :wink:

Naja, wenn ich auf Absenden drücke soll es alle Formulare abchecken und auch den code für die captcha. Und wenn alles richtig ist, dann in die datenbank eintragen.

Das macht es aber nicht. Wenn ich auf Absenden klicke, dann ruhft sich die Seite von selbst auf aber in der Datenbank ist nix.

Hier ist mal der ganze Code:

PHP-Code:
<?php
include ("inc/functions.inc.php");
$time_start getmicrotime();


require_once( 
'captcha/class.captcha.php' );


if (empty(
$_GET['session_code'])) 
        { 
$session_code md5(round(rand(0,40000))); } 
    else 
        { 
$session_code=$_GET['session_code']; }    
    
    
$my_captcha = new captcha$session_code'captcha/__TEMP__/' );
            
    

//Variablen werden ausgelesen und zugewiesen

  
$gbname =                     $_REQUEST["gbname"];
  
$gbsex =                         $_REQUEST["gbsex"];
  
$gbmailadresse =         $_REQUEST["gbmailadresse"];
  
$gbwebadresse =         $_REQUEST["gbwebadresse"];
  
$gbwer =                         $_REQUEST["gbwer"];
  
$gbeintrag =                 $_REQUEST["gbeintrag"];
  
$gbstatus =                    $_REQUEST["gbstatus"];
  
$ip =                             getenv("REMOTE_ADDR");
  
$timestamp =        time();
  
$datum =            date("d.m.Y - H:i",$timestamp);
  
$stop                     date("s",$timetotal);
  
  
//error Variablen werden mit nichts initalisiert
  
$error_gbname =                "";
  
$error_gbeintrag =        "";
  
$error_gbwer =                "";
  
$error_gbsex =                "";
  
$error_gbstatus =            "";
  
  
//irgendeine captcha funktion
  
$pic_url $my_captcha->get_pic);
  

// Es überprüft hier ob dieses Formular schon einmal aufgerufen worden ist, wenn ja, dann macht es mit den if anweisungen weiter
 
if ( isset($_REQUEST["do"]) && $_REQUEST["do"] == "insert" )
 {
     
     
// Es wird nun überprüft ob die Pflichtfelder leer sind, 
     // wenn ja dann wird der zugehörigen error-Variable ein Wert zugewiesen für die spätere Ausgabe
     
if ( $_REQUEST["gbname"] == "")
     { 
         
$error_gbname =  " [Name Eingeben!]"
   }
   
       if ( 
$_REQUEST["gbeintrag"] == "")
     { 
         
$error_gbeintrag =  " [Hast du nichts zu sagen?]"
   }
   
       if ( 
$_REQUEST["gbwer"] == "")
     { 
         
$error_gbwer =  " [Wer bist du?]"
   }
   
       if ( 
$_REQUEST["gbsex"] == "")
     { 
         
$error_gbsex =  " [Bitte Geschlecht auswählen]"
   }
   
   
//Hier werden alle Werte zusammengefügt, wenn alle diese Werte leer waren dann ist die error_gesamt Variable auch leer und es macht mit den Anweisungen weiter
   
$error_gesamt =              $error_gbname.$error_gbeintrag.$error_gbwer.$error_gbsex.$error_gbstatus;
   if ( 
$error_gesamt == ""
   
   {
       
//wieder eine captcha Funktion
        
if ($my_captcha->verify$_POST['password'] ) )
        {
            
error_reporting(E_ALL);
ini_set('display_errors'true);

require 
'inc/connect_gb.inc.php';

// Nun werden alle Werte in die Datenbank rein geschrieben

$dbh mysql_connect(MYSQL_HOSTMYSQL_USERMYSQL_PASS) OR die("Keine Verbindung zur Datenbank. Fehlermeldung:".mysql_error());
mysql_select_db(MYSQL_DATABASE$dbh) OR die("Konnte Datenbank nicht benutzen, Fehlermeldung: ".mysql_error());
        
$sql "INSERT INTO guestbook (Name, Datum, Mail, Web, kommentar, `admin-kom`, wer, status, IP, sex) VALUES ('$gbname', '$datum', '$gbmailadresse', '$gbwebadresse','$gbeintrag','wieder gut','$gbwer','2','$ip', '$gbsex')";
mysql_query($sql$dbh) or die(mysql_error().': '.$sql);
}
else 
    echo 
"Nein";

}
   
 }
    
echo 
"<?xml version=\"1.0\" encoding=\"iso-8859-1\"?".">\n"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
 <head>
  <title>Hauptseite</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
  <meta name="author" content="Alican" />
  <meta name="robots" content="index,follow" />
  <meta name="keywords" content="Alican" />
  <meta name="description" content="Hauptseite" />
  <meta http-equiv="expires" content="0" />
  <link rel="shortcut icon" href="favicon.ico" />
  <style type="text/css" media="all">
   @import "style.css";
  </style>
 </head>
 <body>
     <div id="background-y">
 <div id="main">
   <div id="top">
    <div id="topnav">
      <ul>[*][url="/index.php"]home[/url][*][url="/blog/"]weblog[/url][*][url="/gallery.php"]gallery[/url][*][url="/me.php"]about:me[/url][*][url="/guestbook.php"]guestbook[/url][*][url="/misc.php"]miscellaneous[/url][/list]                
       </div>
       </div>
      <div id="middle">
          <div id="rightnav">
                <h2>Navigation</h2>
                <h3>Neues Eintrag</h3>
                <h3>Admin</h3>
                <?php include ("inc/buttons.inc.php"); ?>
          </div>
          <div id="inhaltarea">
              <h1>Hallo</h1>
              <form action="<?php echo $PHP_SELF ?>?do=verify&session_code=<?php echo $session_code ?>" method="post">
          <h4>Name (max. 30 Zeichen):
              <?php if ($error_gbname != "")
              {
                  echo 
$error_gbname;
              }
              
?>
          </h4>
          <input name="gbname" type="text" class="feld" maxlength="30"></input>

          <h4>Dein Geschlecht?<?php if ($error_gbsex != "")
              {
                  echo 
$error_gbsex;
              }
              
?></h4>
          <input type="radio" class="Radio" name="gbsex" value="m"> männlich</input>
          <input type="radio" class="Radio" name="gbsex" value="w"> weiblich</input>


          <h4>eMail-Adresse (Optional):</h4>
          <input name="gbmailadresse" type="text" class="feld" maxlength="60"></input>
          <h4>Webseite (Optional):</h4>
          <input name="gbwebadresse" type="text" class="feld" maxlength="60"></input>

          <h4>Bitte wähle aus wer du bist!<?php if ($error_gbwer != "")
              {
                  echo 
$error_gbwer;
              }
              
?></h4>
          <select name="gbwer" class="Auswahl" size="1">
        <option value="1">Freund</option>
        <option value="2">Verwandter</option>
        <option value="3">Klassenkamerad</option>
        <option value="4">Forumskamerad</option>
        <option value="5">sonstiger Bekannter</option>
        <option value="5">zufälliger Besucher</option>
      </select>


              <h4>guestbook Eintrag:<?php if ($error_gbeintrag != "")
              {
                  echo 
$error_gbeintrag;
              }
              
?>
          <textarea name="gbeintrag" class="textarea"></textarea>
       

[img]captcha/__TEMP__/cap_<?php echo $pic_url ?>.jpg[/img]</p>
        

Displayed Code? <input type="text" name="password"></p>
          <input type="hidden" name="do" value="insert"></input>
        <input type="submit" value=" Absenden "></input>
        </form>
          </div>
       </div>
        <div id="bottom">
        <?php include ("inc/bottom.inc.php"); ?>
      </div>
  </div>
  </div>
</body>
</html>


Also, wie gesagt.
An dem Eintragen in die Datenbank muss alles OK sein, nur das mit dem captcha.
Ich hoffe das einer mir helfen kann. Ich bräuchte die Lösung so schnell wie möglich. Ihr hatte mir schon ein paar mal sehr geholfen.

vielen Dank

emerge
emerge ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 31.03.2006, 17:59  
Gast
 
Beiträge: n/a
Standard Re: Gästebuch mit captcha

Zitat:
Zitat von emerge
Aber als ich dann noch eine Captcha function eingebaut habe um mich gegen Spammer zu schützen, wurde es mir zu viel und ich habe die übersicht verlohren :wink:
Und jetzt sollen wir die Übersicht für Dich zurückgewinnen oder gar Dein
Skript neu- bzw. umschreiben?

Zitat:
Zitat von emerge
Ich bräuchte die Lösung so schnell wie möglich.
Dann kommentiere Deinen Quelltext oder schreibe ihn zumindest so, dass
Du Dich selber darin zurechtfindest.

Dann ist das Finden einer schnellen Lösung auch kein Problem...
 
Alt 31.03.2006, 18:15  
Neuer Benutzer
 
Registriert seit: 18.03.2006
Beiträge: 27
emerge
Standard

Natürlich will ich jetzt nicht irgendwelche arbeit auf euch auslagern.
Ich mache nicht lange mit php rum und denke deswegen dass das was ich da gemacht habe nicht so schwer sein kann.

Die captcha sachen habe ich aus einem GPL projekt.
Beim einbinden habe ich nur probleme da ich eigentlich nicht so genau verstehe wie das mit der übergabe in der captcha funktion so geht.

Ich habe nun die Kommentare rein geschrieben. Sorry deswegen.
emerge ist offline  
Alt 31.03.2006, 21:22  
Neuer Benutzer
 
Registriert seit: 18.03.2006
Beiträge: 27
emerge
Standard

will vielleicht jemand noch die captcher function sehen oder interessiert euch überhaupt der ganze code nicht?
emerge ist offline  
Alt 31.03.2006, 21:31  
Neuer Benutzer
 
Registriert seit: 18.03.2006
Beiträge: 27
emerge
Standard

Oder nein, ich frage anders.
Kann man post und get zusammen verwänden?
also wenn man auf senden klickt das da die post und get informationen gleichzeitig übermittelt werden.
emerge ist offline  
Alt 31.03.2006, 21:38  
Erfahrener Benutzer
 
Registriert seit: 30.11.2004
Beiträge: 202
I-Spy
Standard

Sollte gehen! Beim formular machst du einfach folgendes: <form action="index.php?a=1&b=2"> ...

Gruß Dima
I-Spy ist offline  
Alt 31.03.2006, 21:57  
Neuer Benutzer
 
Registriert seit: 18.03.2006
Beiträge: 27
emerge
Standard

kann mir das jemand erklären?

if ($my_captcha->verify( $_POST['password'] ) )

was wird da genau gemacht? verify kenn ich nicht.
emerge ist offline  
Alt 01.04.2006, 01:29  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von emerge
was wird da genau gemacht?
Saug Dir die Klasse und guck selbst nach:
http://www.google.de/search?hl=de&q=...tcha.php&meta=

Das PHP Handbuch findest Du da:
http://www.php.net/docs.php
 
Alt 01.04.2006, 10:06  
Gast
 
Beiträge: n/a
Standard

ich hab vor einiger Zeit mal eine eigene Captchaklasse geschrieben, wenn du die haben willst, dann musst du das nur sagen
 
 

« banner | Checkbox »

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
Gleichungs Captcha PHP litterauspirna PHP-Fortgeschrittene 17 25.05.2008 21:06
Frage zu spam bots und captcha litterauspirna PHP Tipps 2008 6 20.05.2008 23:56
Probleme beim Einbau von Captcha Dartgott Trash 2 24.04.2008 11:15
Captcha in Website einbauen Dartgott PHP Tipps 2008 9 23.04.2008 15:53
Captcha in bestehendes GB einbauen ZeroQL PHP Tipps 2008 6 08.04.2008 15:32
Captcha Frage und vorstelung meiner seite oerny18 PHP Tipps 2008 10 31.03.2008 20:05
Captcha - Session Problem Toby PHP Tipps 2008 9 11.03.2008 19:38
Captcha? Ja, Nein oder? stefanjann Off-Topic Diskussionen 12 20.02.2008 12:59
Captcha Adminator Off-Topic Diskussionen 6 09.09.2007 23:06
mit ajax captcha neu laden und generieren jjackisc PHP-Fortgeschrittene 10 10.08.2007 15:41
Captcha unsicher? PHP Tipps 2007 7 20.03.2007 16:10
[Erledigt] Probleme mit Einbindung Captcha PHP Tipps 2006 0 18.08.2006 19:42
captcha PHP Tipps 2006 8 16.06.2006 13:48
Gästebuch (inkl. Captcha) Script oder Programmierhilfe Zuzy Trash 4 04.05.2006 07:47
Captcha Problem / edit: geht PHP Tipps 2005-2 9 28.10.2005 23:14

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
captcha gästebuch, php gästebuch mit captcha, php script gaestebuch captcha, xhtml formular gpl captcha pflichtfelder, php gästebuch captcha, php guestbook captcha, <input class=\radio\ pflichtfeld

Alle Zeitangaben in WEZ +1. Es ist jetzt 11:12 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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.