Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Submit Button mit 2 Funktionen

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Submit Button mit 2 Funktionen

    Hallo PHP-Gemeinde,

    seit Tagen durchforste ich das Internet nach Spamfiltern (captcha) für ein Gästebuch.
    Bin natürlich bei mehreren Scripten fündig geworden.

    Nun habe ich eines in mein Script eingebaut, jedoch wird beim Brücken des Submit-Button nur das Captcha überprüft und nicht der Beitrag in das Gästebuch gleichzeitig eingetragen.

    Meine Frage also: Wie kann ich es realisieren, daß der eine Submit-Button sowohl das Captcha prüft, also auch den Beitrag ins Gästebuch einträgt.

    Für Eure Hilfe im Voraus schon mal Dankeschön.

    Gruß
    Tom

    PS: Suche hier im Forum hab ich schon verwendet, vielleicht die falschen Schlüsselwörter, zumindest hab ich nichts passendes gefunden.

  • #2
    Wäre nett wenn du etwas Code postest, sonst wird es schwer dir zu helfen.

    Und: Willkommen im Forum

    Kommentar


    • #3
      Danke für die Begrüßung

      Hier ein Auszug der html-Datei, bzw. acton und input:

      ...
      ...
      <form action="captcha/check.php" method="post">
      ...
      ...
      <input type="text" name="captcha" size="6">

      <input type="submit" name="submit" value="Absenden">

      Und hier die check.php:

      <?php
      // Session starten
      session_start();
      ?>
      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
      <html>
      <head>
      <title></title>
      </head>
      <body>

      <?php
      // Captcha überprüfen
      if ($_POST["captcha"] == $_SESSION['captcha_code']) {
      echo "<a href='../sb.php'></a>";
      }
      else {
      echo "Falsch";
      }

      // Session löschen
      unset($_SESSION['captcha_code']);
      ?>

      - <a href="../submit.html">zurück</a>

      </body>
      </html>

      Ich hoffe Du kannst etwas damit anfangen.

      Und wie Du bestimmt schon gemerkt hast, bin ich Anfänger in Sachen PHP.
      Aber auch mein schlaues Buch hat mir nicht weitergeholfen.

      Gruß
      Tom

      Kommentar


      • #4
        Und jetzt bitte noch die Netiquette beachten und die PHP-Tags verwenden.

        http://www.php.de/php-einsteiger/announcements.html

        Sorry, aber muss sein

        Aber ja ich kann dir helfen.
        PHP-Code:
        <?php
        // Captcha überprüfen
        if ($_POST["captcha"] == $_SESSION['captcha_code']) 
        {
           echo 
        "<a href='../sb.php'></a>";
           
        // Hier muss das Speichern des GB Eintrages hin.
        }
        else 
        {
           echo 
        "Falsch";
        }

        // Session löschen
        unset($_SESSION['captcha_code']);
        ?>

        Kommentar


        • #5
          also kann dir auch nicht genau sagen wo das problem liegt aber ohne code, aber bei meinen captcha überprüfungen weiß ich soviel das der captcha code überprüft wird und wenn er stimmt springt das skript in den entsprechenden bereich wo dann dein code steht der ausgeführt werden soll ansonsten haut es ihn raus mit einer nachricht falschen code eingegeben oder sowas in der art, kann man sich wie eine if else abfrage vorstellen

          greetz



          edit:wieder einmal zu langsam und frage wurde ja beantwortet

          Kommentar


          • #6
            Sorry Sorry *schäm*

            In Kurzform:

            Code:
            ...
            ...
            <form action="captcha/check.php" method="post">
            ...
            ...
               <input type="text" name="captcha" size="6">
            
                     <input type="submit" name="submit" value="Absenden">
            PHP-Code:
            <?php
            // Session starten
            session_start();
            ?>
            <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
            <html>
             <head>
              <title></title>
             </head>
            <body>

            <?php
            // Captcha überprüfen
            if ($_POST["captcha"] == $_SESSION['captcha_code']) {
              echo 
            "<a href='../sb.php'></a>";
            }
            else {
             echo 
            "Falsch";
            }

            // Session löschen
            unset($_SESSION['captcha_code']);
            ?>

             - <a href="../submit.html">zurück</a>

            </body>
            </html>
            Besser?

            Und jetzt verrätst Du mir bitte noch wie der Code aussehen muß, damit der Text eingetragen wird.

            Gruß
            Tom

            Kommentar


            • #7
              Na ein bisschen musst du schon selber mitdenken und uns helfen

              Wie speicherst du die Einträge denn? In einer Textdatei oder einer Datenbank?

              Kommentar


              • #8
                Hallo!

                Es fehlt da ein wenige Code,nämlich der wie du die Daten speicherst. Ebend wie gefragt textdatei oder Datenbank.

                Das musst du uns schon schreiben!

                mfg der Litter
                Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
                [URL]http://www.lit-web.de[/URL]

                Kommentar


                • #9
                  Erst Mal Danke für die schnellen Antworten...

                  Also bisher (vor Einbau des Captcha) wurden ebenfalls über ein Submit-Button die Daten in eine Textdatei geschrieben.

                  So soll es auch bleiben. Datenbank anbindung habe ich keine.

                  Sorry, ich hatte nicht darn gedacht, daß es ja auch GB's gibt, die mit einer DB funktionieren.

                  Die Datei heißt entries.txt und befindet sich im Verzeichnis functions (/functions/entries.txt).
                  Es handelt sich hier um das AN-Gästebuch V3.1, wer damit was anfangen kann.

                  Gruß
                  Tom

                  Kommentar


                  • #10
                    Dann musst du an der Stelle, die ich gekennzeichnet habe, einfach den Code einbauen, der bisher deine Einträge in das File geschrieben hat.

                    Kommentar


                    • #11
                      Seither lief das aber nicht über eine php-Datei, sondern war so implementiert

                      Code:
                      ...
                      <form method="post" action="sb.php">
                      <input type=hidden name="service" value="entry">
                      ...
                      <input name="entry" type="submit" value="Submit">
                      </form>
                      ....
                      die sb.php sah so aus:

                      PHP-Code:
                      ?php
                      // A-N Guestbook
                      // All rights by Tocsulus & BAERnado (www.code-box.de)
                      // Dateien dürfen nur auf code-box.de zum Download angeboten werden.

                        
                      require("functions/config.php");
                        require(
                      "functions/functions.php");
                        require(
                      "functions/visitor.php");

                        switch(
                      $_REQUEST['service'])
                        {
                          case 
                      "entry":
                            
                      $_REQUEST['name'] = strip_tags($_REQUEST['name']);
                            
                      $_REQUEST['name'] = trim($_REQUEST['name']);
                            if(!
                      $html$_REQUEST['text'] = htmlspecialchars($_REQUEST['text']);
                            
                      $_REQUEST['text'] = trim($_REQUEST['text']);
                            if(!empty(
                      $_REQUEST['name']) && !empty($_REQUEST['text']))
                            {
                              
                      $out "";
                              
                      $_REQUEST['email'] = strip_tags(trim($_REQUEST['email']));
                              if(
                      strlen($_REQUEST['text']) > $maxlength && $maxlength 0$out .= "<li>"._tolong."</li>";
                              if(empty(
                      $_REQUEST['email']) && $angemail$out .= "<li>"._nomail."</li>";
                              if(!
                      checkmail($_REQUEST['email']) && !empty($_REQUEST['email'])) $out .= "<li>"._wrongmail."</li>";
                              
                      $_REQUEST['icq'] = strip_tags(trim($_REQUEST['icq']));
                              if(
                      preg_match("/\D/"$_REQUEST['icq']) && !empty($_REQUEST['icq'])) $out .= "<li>"._wrongicq."</li>";
                              
                      $_REQUEST['homepage'] = strip_tags(trim($_REQUEST['homepage']));
                              if(!
                      checkhp($_REQUEST['homepage']) && !empty($_REQUEST['homepage'])) $out .= "<li>"._wronghp."</li>";
                              if(
                      antispam($antispam)) $out "<li>"._spam."</li>";

                              
                      $_REQUEST['text'] = stripslashes($_REQUEST['text']);

                              if(empty(
                      $out))
                              {

                                if(
                      $enablemail) @mail($mail,"GB-Eintrag / GB-Entry",
                                
                      "<html><body><b>".date("d.m.Y - H:i"time())."</b><br><br>
                                <b>Name: </b>"
                      .$_REQUEST['name']."<br>
                                <b>Email: </b>"
                      .$_REQUEST['email']."<br>
                                <b>ICQ: </b>"
                      .$_REQUEST['icq']."<br>
                                <b>Homepage: </b>"
                      .$_REQUEST['homepage']."<br>
                                <b>Text: </b>"
                      .$_REQUEST['text']."</body></html>",
                                
                      "From: \"AN-Guestbook\" <$mail>\nX-Mailer: PHP/" phpversion()."\nMime-Version: 1.0\nContent-Type: text/html; charset=\"ISO-8859-1\"");
                                if(
                      $bbcode$_REQUEST['text'] = bbcode($_REQUEST['text']);
                                else 
                      $_REQUEST['text'] = nl2br($_REQUEST['text']);
                                if(
                      $enreplace$_REQUEST['text'] = replacement($_REQUEST['text'], $badwords);
                                if(
                      $ensmilies$_REQUEST['text'] = smilies($_REQUEST['text'], $smilies);
                                
                      $_REQUEST['text'] = ($chars>0) ? split_text($_REQUEST['text'], $chars) : $_REQUEST['text'];
                                
                      $show = ($admincheck) ? 1;
                                
                      writedata($show, array(time(), $getipstripslashes($_REQUEST['name']), $_REQUEST['email'], $_REQUEST['icq'], $_REQUEST['homepage'], $_REQUEST['text']));

                                if(
                      $thanks)
                                {
                                  
                      $out .= "<center>"._thankyou."</center><br>";
                                }
                                if(
                      $admincheck)
                                {
                                  
                      $out .= "<center>"._check."</center><br>";
                                }
                                if(!empty(
                      $out))
                                {

                                  
                      $out .= "<br><center><a href=\"gb.php\">"._back."</a></center>";
                                  echo 
                      tplprint("tpl/saved.tpl", array("MESSAGE" => $out));
                                }
                                else
                                {

                                  
                      header("Location: gb.php");
                                  exit;
                                }
                              }
                              else
                              {
                                
                      $tout "<b>"._wrong."</b><br>\n<ul>";
                                
                      $tout .= $out;
                                
                      $tout .= "</ul>";
                                
                      $tout .= "<br><center><a href=\"javascript:history.back(1)\">"._back."</a></center>";
                                echo 
                      tplprint("tpl/saved.tpl", array("MESSAGE" => $tout));

                              }

                            }
                            else
                            {

                              
                      $out "<b>"._missing."</b><br>";
                              
                      $out .= "<ul>\n";
                              if(empty(
                      $_REQUEST['name'])) $out .= "<li>"._mname."</li><br>";
                              if(empty(
                      $_REQUEST['text'])) $out .= "<li>"._mcontent."</li><br>";
                              
                      $out .= "</ul>";
                              
                      $out .= "<br><center><a href=\"javascript:history.back(1)\">"._back."</a></center>";
                              echo 
                      tplprint("tpl/saved.tpl", array("MESSAGE" => $out));
                            }
                            break;
                          case 
                      "uin":
                            if(
                      $_REQUEST['uin'])
                            {
                              
                      addicq($_REQUEST['uin']);
                              break;                   
                      // Falls keine UIN übermittelt, normal GB laden
                            
                      }
                          default:
                            
                      $data array_reverse(loaddata());
                            
                      $table "";
                            
                      $i=0;
                            
                      $entrynum count($data);
                            foreach(
                      $data as $erg)
                            {

                              if(
                      $i >= $_REQUEST['cc'])
                              {
                                
                      $erg explode("::"$erg);

                                
                      $tth 0;
                                foreach(
                      $erg as $tempd)
                                {
                                  
                      $ergtemp[$tth] = (($tth == 4) && ($encodemails)) ? $tempd base64_decode($tempd);
                                  
                      $tth++;
                                }
                                
                      $erg $ergtemp;
                                unset(
                      $ergtemp);

                                
                      $erg[4] = trim($erg[4]);
                                if(!empty(
                      $erg[4]))
                                {
                                  
                      $erg[4] = ($encodemails) ? "<script language=\"JavaScript\">writemail(\"".$erg[4]."\")</script>" "<a href=\"mailto:".$erg[4]."\"><img src=\"img/mail.gif\" alt=\"Email\" border=0></a>";
                                }
                                
                      $erg[5] = trim($erg[5]);
                                if(!empty(
                      $erg[5])) $erg[5] = "<a href=\"gb.php?service=uin&uin=".$erg[5]."\"><img src=\"img/icq.gif\" alt=\"ICQ\" border=0></a>";
                                
                      $erg[6] = trim($erg[6]);
                                if(!empty(
                      $erg[6])) $erg[6] = "<a href=\"".$erg[6]."\" target=\"_blank\"><img src=\"img/hp.gif\" alt=\"Homepage\" border=0></a>";
                                if(empty(
                      $erg[4]) && empty($erg[5]) && empty($erg[6])) $erg[5] = _nodata;
                                if(!empty(
                      $erg[8])) $erg[8] = _comment.$erg[8];

                                
                      $table .= tplprint("tpl/table.tpl", array(
                                  
                      "NAME" =>  $erg[3],
                                  
                      "EMAIL" => $erg[4],
                                  
                      "ICQ" => $erg[5],
                                  
                      "HP" => $erg[6],
                                  
                      "CONTENT" => $erg[7],
                                  
                      "COMMENT" => $erg[8],
                                  
                      "DATE" => date("d.m.Y"$erg[1]),
                                  
                      "TIME" => date("H:i"$erg[1]),
                                  
                      "NUMBER" => ($entrynum-$i)));
                                if(
                      $i == $entries+$_REQUEST['cc']-1) break;
                                unset(
                      $erg);
                              }
                              
                      $i++;
                            }

                            
                      $mnum $entrynum;

                            
                      $sites "";
                            
                      $i=-$entries;
                            
                      $ic 1;
                            while(
                      $mnum>0)
                            {
                              
                      $mnum $mnum $entries;
                              
                      $i $i $entries;
                              if(
                      $_REQUEST['cc'] == $i$sites .= "<b>$ic</b> ";
                              else 
                      $sites .= "<a href=\"gb.php?cc=$i\">$ic</a> ";
                              
                      $ic++;
                            }

                            
                      $menu tplprint("tpl/menu.tpl", array(
                              
                      "ENTRYNUM" => $entrynum,
                              
                      "SITES" => $sites));
                            echo 
                      tplprint("tpl/index.tpl", array(
                              
                      "ENTRIES" => $table,
                              
                      "MENU" => $menu,
                              
                      "SUBMIT" => tplprint("tpl/submit.tpl", array())));
                        }

                      ?> 
                      hoffe das ist jetzt ausreichend code.... wie gesagt, bin noch am lernen.

                      Gruß
                      Tom

                      Kommentar


                      • #12
                        PHP-Code:
                        $_REQUEST['name'] = strip_tags($_REQUEST['name']);
                              
                        $_REQUEST['name'] = trim($_REQUEST['name']);
                              if(!
                        $html$_REQUEST['text'] = htmlspecialchars($_REQUEST['text']);
                              
                        $_REQUEST['text'] = trim($_REQUEST['text']);
                              if(!empty(
                        $_REQUEST['name']) && !empty($_REQUEST['text']))
                              {
                                
                        $out "";
                                
                        $_REQUEST['email'] = strip_tags(trim($_REQUEST['email']));
                                if(
                        strlen($_REQUEST['text']) > $maxlength && $maxlength 0$out .= "<li>"._tolong."</li>";
                                if(empty(
                        $_REQUEST['email']) && $angemail$out .= "<li>"._nomail."</li>";
                                if(!
                        checkmail($_REQUEST['email']) && !empty($_REQUEST['email'])) $out .= "<li>"._wrongmail."</li>";
                                
                        $_REQUEST['icq'] = strip_tags(trim($_REQUEST['icq']));
                                if(
                        preg_match("/\D/"$_REQUEST['icq']) && !empty($_REQUEST['icq'])) $out .= "<li>"._wrongicq."</li>";
                                
                        $_REQUEST['homepage'] = strip_tags(trim($_REQUEST['homepage']));
                                if(!
                        checkhp($_REQUEST['homepage']) && !empty($_REQUEST['homepage'])) $out .= "<li>"._wronghp."</li>";
                                if(
                        antispam($antispam)) $out "<li>"._spam."</li>";

                                
                        $_REQUEST['text'] = stripslashes($_REQUEST['text']);

                                if(empty(
                        $out))
                                {

                                  if(
                        $enablemail) @mail($mail,"GB-Eintrag / GB-Entry",
                                  
                        "<html><body><b>".date("d.m.Y - H:i"time())."</b><br><br>
                                  <b>Name: </b>"
                        .$_REQUEST['name']."<br>
                                  <b>Email: </b>"
                        .$_REQUEST['email']."<br>
                                  <b>ICQ: </b>"
                        .$_REQUEST['icq']."<br>
                                  <b>Homepage: </b>"
                        .$_REQUEST['homepage']."<br>
                                  <b>Text: </b>"
                        .$_REQUEST['text']."</body></html>",
                                  
                        "From: \"AN-Guestbook\" <$mail>\nX-Mailer: PHP/" phpversion()."\nMime-Version: 1.0\nContent-Type: text/html; charset=\"ISO-8859-1\"");
                                  if(
                        $bbcode$_REQUEST['text'] = bbcode($_REQUEST['text']);
                                  else 
                        $_REQUEST['text'] = nl2br($_REQUEST['text']);
                                  if(
                        $enreplace$_REQUEST['text'] = replacement($_REQUEST['text'], $badwords);
                                  if(
                        $ensmilies$_REQUEST['text'] = smilies($_REQUEST['text'], $smilies);
                                  
                        $_REQUEST['text'] = ($chars>0) ? split_text($_REQUEST['text'], $chars) : $_REQUEST['text'];
                                  
                        $show = ($admincheck) ? 1;
                                  
                        writedata($show, array(time(), $getipstripslashes($_REQUEST['name']), $_REQUEST['email'], $_REQUEST['icq'], $_REQUEST['homepage'], $_REQUEST['text']));

                                  if(
                        $thanks)
                                  {
                                    
                        $out .= "<center>"._thankyou."</center><br>";
                                  }
                                  if(
                        $admincheck)
                                  {
                                    
                        $out .= "<center>"._check."</center><br>";
                                  }
                                  if(!empty(
                        $out))
                                  {

                                    
                        $out .= "<br><center><a href=\"gb.php\">"._back."</a></center>";
                                    echo 
                        tplprint("tpl/saved.tpl", array("MESSAGE" => $out));
                                  }
                                  else
                                  {

                                    
                        header("Location: gb.php");
                                    exit;
                                  }
                                }
                                else
                                {
                                  
                        $tout "<b>"._wrong."</b><br>\n<ul>";
                                  
                        $tout .= $out;
                                  
                        $tout .= "</ul>";
                                  
                        $tout .= "<br><center><a href=\"javascript:history.back(1)\">"._back."</a></center>";
                                  echo 
                        tplprint("tpl/saved.tpl", array("MESSAGE" => $tout));

                                }

                              }
                              else
                              {

                                
                        $out "<b>"._missing."</b><br>";
                                
                        $out .= "<ul>\n";
                                if(empty(
                        $_REQUEST['name'])) $out .= "<li>"._mname."</li><br>";
                                if(empty(
                        $_REQUEST['text'])) $out .= "<li>"._mcontent."</li><br>";
                                
                        $out .= "</ul>";
                                
                        $out .= "<br><center><a href=\"javascript:history.back(1)\">"._back."</a></center>";
                                echo 
                        tplprint("tpl/saved.tpl", array("MESSAGE" => $out));
                              } 

                        Diese Zeilen musst in die captcha.php kopieren. Und zwar an die Stelle, an die ich das Kommentar gemacht habe.

                        Macht nix. Wir haben auch alle mal gelernt.

                        Kommentar


                        • #13
                          Du meinst sicher in die check.php, oder?

                          Kommentar


                          • #14
                            Habe den Code jetzt in die check.php eingesetzt.

                            Dann kommt folgender Fehler:


                            Fatal error: Call to undefined function checkmail() in /srv/webs/web11/gb/captcha/check.php on line 30

                            DAs wäre dann if(!checkmail($_REQUEST['email']) && !empty($_REQUEST['email'])) $out .= "<li>"._wrongmail."</li>";

                            hm... wo liegt denn da mein Fehler?

                            Kommentar


                            • #15
                              Ja ich meinte check.php. Da fehlt die checkmail()-Funktion. Keine Ahnung wo die bei dir steht.

                              Kommentar

                              Lädt...
                              X