Login Form mit Senden funktion

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

  • Login Form mit Senden funktion

    Hallo zusammen,

    gleich vorweg,, ich habe absolut keine Ahnung von PHP :-). Daher brauche ich mal ein Ratschlag von euch.
    Ich möchte ganz gerne ein Login-Formular haben, welches unter Angabe von Name und Emailadresse + einen Passwort Code auf eine bestimmte Seite leitet. Bei Falscheingabe kommt eine Meldung.
    Soweit so gut .... Ich habe ein Script bzw. eine Beispielseite gefunden, mit der ich genau das geschafft habe. Nun soll aber bei jedem Login eine Email im Hintergrund versendet werden, mit den Informationen des Users (Name + Email) welche er ja eingeben muss. Hintergrund ist der, dass man So sieht, ob der User sich mal eingeloggt hat oder nicht. Zumindest ist das so mein Gedanke .... geht das überhaupt, eine Schaltfläche mit zwei Funktionen zu belegen?
    Falls ja, wie geht das?

    PHP-Code:
    <?php
    if(isset($_POST['code')) {
        switch(
    strtolower($_POST['code'])) {

        case 
    "test":
            
    $seite "http://www.bild.de/";
            break;
        default:
            
    $warnung "Code ist fehlerhaft";
        }
     
        if(isset(
    $seite)) {
            
    header("Location: http://www.google.com/".$seite);
        }
    }
    ?>

    HTML-Code:
    (function ($) {
        "use strict";
    
    
        /*==================================================================
        [ Focus input ]*/
        $('.input100').each(function(){
            $(this).on('blur', function(){
                if($(this).val().trim() != "") {
                    $(this).addClass('has-val');
                }
                else {
                    $(this).removeClass('has-val');
                }
            })    
        })
      
      
        /*==================================================================
        [ Validate ]*/
        var input = $('.validate-input .input100');
    
        $('.validate-form').on('submit',function(){
            var check = true;
    
            for(var i=0; i<input.length; i++) {
                if(validate(input[i]) == false){
                    showValidate(input[i]);
                    check=false;
                }
            }
    
            return check;
        });
    
    
        $('.validate-form .input100').each(function(){
            $(this).focus(function(){
               hideValidate(this);
            });
        });
    
        function validate (input) {
            if($(input).attr('type') == 'firma' || $(input).attr('name') == 'firma') {
                if($(input).val().trim().match(/^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{1,5}|[0-9]{1,3})(\]?)$/) == null) {
                    return false;
                }
                
            }
            if($(input).attr('type') == 'email' || $(input).attr('name') == 'email') {
                if($(input).val().trim().match(/^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{1,5}|[0-9]{1,3})(\]?)$/) == null) {
                    return false;
                }
                
            }
            else {
                if($(input).val().trim() == ''){
                    return false;
                }
            }
        }
    
        function showValidate(input) {
            var thisAlert = $(input).parent();
    
            $(thisAlert).addClass('alert-validate');
        }
    
        function hideValidate(input) {
            var thisAlert = $(input).parent();
    
            $(thisAlert).removeClass('alert-validate');
        }
        
        /*==================================================================
        [ Show pass ]*/
        var showPass = 0;
        $('.btn-show-pass').on('click', function(){
            if(showPass == 0) {
                $(this).next('input').attr('type','text');
                $(this).find('i').removeClass('zmdi-eye');
                $(this).find('i').addClass('zmdi-eye-off');
                showPass = 1;
            }
            else {
                $(this).next('input').attr('type','password');
                $(this).find('i').addClass('zmdi-eye');
                $(this).find('i').removeClass('zmdi-eye-off');
                showPass = 0;
            }
            
        });
    
    
    })(jQuery);
    Wäre klasse, wenn mir da jemand nen Tip geben könnte oder mir sogar weiterhelfen kann.

    Vielen Dank im Voraus :-)

  • #2
    Speicher die Loginzeit doch einfach mit in der Datenbank.

    Kommentar


    • #3
      Das ganze läuft ohne Datenbank.
      Leider ist es wichtig, dass Name und Emailadresse beim Login an eine bestimmte Emailadresse verschickt werden. Die Loginzeit reicht da leider nicht aus.
      Dennoch vielen Dank für den Tip ;-)

      Kommentar


      • #4
        Zitat von olly871 Beitrag anzeigen
        Nun soll aber bei jedem Login eine Email im Hintergrund versendet werden, mit den Informationen des Users (Name + Email) welche er ja eingeben muss. Hintergrund ist der, dass man So sieht, ob der User sich mal eingeloggt hat oder nicht. Zumindest ist das so mein Gedanke ....
        Wo ist das problem. Wenn der User sich doch ein loggt braichst du doch nur die email +name+Zeit in einer mail verschicken.
        Das ganze anmelden kann man ja auch auf php verlegen und da ist nee Email schnell versendet.

        Oder habe ich jetzt irgendwas übersehen was du genau brauchst ?

        Ich kann dir ja mal nee beispiel seite bauen. du gibst deine email an ,ein Passwort ,und gleichzeitig bekommst du eine email das du dich eingeloggt hast. Die Email müsstest du dann in dein Fall ja zu dir schicken lassen . Oder du läst die Email weg und speicherst die Logins in einer Textdatei

        Kommentar


        • #5
          Das wäre super klasse, wenn Du das machen würdest.
          Ich kriege das mit meinen Kenntnissen leider nicht hin. Du hast das jedenfalls genau richtig verstanden .... ich brauche drei Eingabefelder (Name, Emailadresse und Passwort), wohingegen die Felder Name und Emailadresse (gerne mit Uhrzeit und Datum) per Email an mich geschickt werden.


          Vielen Dank Dir im Voraus :-)

          Kommentar


          • #6
            Das Versenden von Formulardaten gehört zu den Grundlagen!
            PHP-Code:
            <?php
            use PHPMailer\PHPMailer\PHPMailer;
            use 
            PHPMailer\PHPMailer\Exception;

               
            $name $email $password $message "";
               
               if (isset(
            $_POST['name']))
               {
                   if (
            filter_var($_POST['email'], FILTER_VALIDATE_EMAIL))
                   {
                      
            $name  htmlspecialchars($_POST["name"], ENT_QUOTES"UTF-8");
                      
            $email htmlspecialchars($_POST["email"], ENT_QUOTES"UTF-8");
                      
                      
            $html "<!DOCTYPE html>
                                <html>
                                 <head>
                                  <meta charset='utf-8'>
                                 </head>   
                                   <body>
                                    <h1>Login erfolgreich durchgeführt</h1>
                                     <table>
                                       <tr>
                                        <td><b>Name:</b></td>
                                        <td>
            $name</td>
                                       </tr>
                                       <tr>
                                        <td><b>eMail:</b></td>
                                        <td>
            $email</td>
                                       </tr>
                                       <tr>
                                         <td><b>Datum:</b></td>
                                         <td>" 
            date("d.m.Y H:i") . "</td>
                                       </tr>                          
                                    </table>
                                 </body>
                               </html>"
            ;
                   
                      require 
            './PHPMailer/src/Exception.php';
                      require 
            './PHPMailer/src/PHPMailer.php';
                      require 
            './PHPMailer/src/SMTP.php'
                 
                      
            $mail = new phpmailer();
                      
            $mail->Host "smtp.server.de";
                      
            $mail->SMTPAuth true;
                      
            $mail->SMTPSecure 'tls';
                      
            $mail->Port 25;
                      
            $mail->Mailer   "smtp";
                      
            $mail->IsHTML(true);
                      
            $mail->IsSMTP(true);
                      
            $mail->From "absender@domain.de";
                      
            $mail->FromName "Mein Name";
                      
            $mail->SetFrom("absender@domain.de""Mein Name");
                      
            $mail->Username "SMTP-Benutzername";
                      
            $mail->Password "SMTP-Passwort";
                      
            $mail->Subject "Betreff";
                      
            $mail->AddAddress("empfaenger@domain.de");
                      
            $mail->msgHTML($html);
             
                      
            $mail->SMTPOptions = array('ssl' => array('verify_peer' => false,
                                                                
            'verify_peer_name' => false,
                                                                
            'allow_self_signed' => true
                                                               
            )
                                               );
                                             
                     if (!
            $mail->send())
                       
            $message =  "Mailer Error: " $mail->ErrorInfo;
                    else
                    {
                        
            header ("Location: http://www.google.de");
                        exit();
                    }
                }
                else
                  
            $message "eMail-Adresse ungültig";
              }
            ?>
            <!DOCTYPE html>
            <html lang="de">
              <head>
                <meta charset="utf-8">
                <title>Login</title>
              </head>
              <body>
              <h2>Login</h2>
            <?php
              
            if (strlen($message))
                  echo 
            "<span style='font-weight:bold; color: #ff0000'>$message</span><br>\n";
            ?>
              <form action="" method="post">
                <label for="name">Name</label> 
                <input type="text" name="name" id="name" maxlength="30" required>
                <br>
                <label for="email">eMail-Adresse</label> 
                <input type="text" name="email" id="email" maxlength="30" required>
                <br>
                <label for="email">Passwort</label> 
                <input type="passwort" name="password" id="password" maxlength="30" required>
                <br>
                <input type="submit" name="submit" value="Absenden">
              </form>
              </body>
             </html>
            </div>Die Forensoftware hier ist auch Schrott, die killt Backslashes im Quellcode!
            Die beiden Zeilen mit dem PHP-Mailer müssen so aussehen:


            use PHPMailer\PHPMailer\PHPMailer;
            use PHPMailer\PHPMailer\Exception;




            Download des phpMailers: https://github.com/PHPMailer/PHPMailer/releases

            Kommentar


            • #7
              Klasse vielen Dank Dir.


              Ich habe mir den PHP mailer runtergeladen und eigentlich alle angaben im Script angepasst .... funktioniert aber leider noch nicht.

              Ich gehe mal davon aus, dass Du das getestet hast und es bei Dir funktioniert, von daher muss ich irgendwo noch was falsch gemacht haben.
              Auf jedan Fall schon mal ein riesen Dankenschön ;-)


              Kommentar


              • #8
                Zitat von olly871 Beitrag anzeigen
                funktioniert aber leider noch nicht.
                Das ist keine Problembeschreibung!

                Kommentar


                • #9
                  Problem ist, dass ich keine Email zugeschickt bekomme.


                  Vermute mal, dass es mit diesem SMTP-Teil zusammenhängt.

                  Gibt es auch ne Möglichkeit die nachricht ohne SMTP zu verschicken?

                  Kommentar


                  • #10
                    Zitat von olly871 Beitrag anzeigen
                    Problem ist, dass ich keine Email zugeschickt bekomme.

                    Vermute mal, dass es mit diesem SMTP-Teil zusammenhängt.
                    Statt Vermuten solltest du Nachschauen. Hast du das SMTP-Debugging aktiviert?

                    Kommentar


                    • #11
                      SMTP-Debuggung aktivieren:


                      $mail->SMTPDebug = 2;


                      Und mal an den Anfang des Scriptes diese Zeilen einbauen:


                      error_reporting(E_ALL);
                      ini_set('display_errors', true);

                      Kommentar


                      • #12
                        100%ig, vielen Dank! Du hast mir sehr weitergeholfen.
                        Viele Grüße

                        Kommentar

                        Lädt...
                        X