Ankündigung

Einklappen
Keine Ankündigung bisher.

Login funktioniert nicht

Einklappen

Neue Werbung 2019

Einklappen
Dieses Thema ist geschlossen.
X
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Login funktioniert nicht

    Hallo,

    Ich benutze das kostenlose Login-Script von PHP Login Script :: Free PHP/MySQL Login Script with Remember me !
    Ich habe ein wenig am Lay-Out verändert, um das Script besser auf meine Homepage einbinden zu können. Allerdings funktioniert nun das Registrieren nicht mehr. Wenn man auf "Register" klickt, lädt die Seite einmal neu, mehr aber auch nicht. Vorher hat alles geklappt!

    Hier der PHP-Code:
    PHP-Code:
    <?php 
    /*************** PHP LOGIN SCRIPT V 2.0*********************
    ***************** Auto Approve Version**********************
    (c) Balakrishnan 2009. All Rights Reserved

    Usage: This script can be used FREE of charge for any commercial or personal projects.

    Limitations:
    - This script cannot be sold.
    - This script may not be provided for download except on its original site.

    For further usage, please contact me.

    ***********************************************************/


    include 'dbc.php';
                         
    if(
    $_POST['doRegister'] == 'Register'

    /******************* Filtering/Sanitizing Input *****************************
    This code filters harmful script code and escapes data of all POST data
    from the user submitted form.
    *****************************************************************/
    foreach($_POST as $key => $value) {
        
    $data[$key] = filter($value);
    }

    /********************* RECAPTCHA CHECK *******************************
    This code checks and validates recaptcha
    ****************************************************************/
     
    require_once('recaptchalib.php');
         
          
    $resp recaptcha_check_answer ($privatekey,
                                          
    $_SERVER["REMOTE_ADDR"],
                                          
    $_POST["recaptcha_challenge_field"],
                                          
    $_POST["recaptcha_response_field"]);

          if (!
    $resp->is_valid) {
            die (
    "<h3>Der eingegebene Code stimmt nicht. Bitte versuche es erneut</h3>" .
                 
    "(reCAPTCHA said: " $resp->error ")");            
          }
    /************************ SERVER SIDE VALIDATION **************************************/
    /********** This validation is useful if javascript is disabled in the browswer ***/

    if(empty($data['full_name']) || strlen($data['full_name']) < 4)
    {
    $err urlencode("ERROR: Ungültiger name. Bitte gebe mindestens 3 Zeichen ein.");
    header("Location: register.php?msg=$err");
    exit();
    }

    // Validate User Name
    if (!isUserID($data['user_name'])) {
    $err urlencode("ERROR: Ungültiger Username. Bitte verwende nur Buchstaben und Zahlen.");
    header("Location: register.php?msg=$err");
    exit();
    }

    // Validate Email
    if(!isEmail($data['usr_email'])) {
    $err urlencode("ERROR: Ungültige E-Mail-Adresse.");
    header("Location: register.php?msg=$err");
    exit();
    }
    // Check User Passwords
    if (!checkPwd($data['pwd'],$data['pwd2'])) {
    $err urlencode("ERROR: Ungültiges oder nicht gleiches Passwort. Bitte gebe mindestens 3 Zeichen ein.");
    header("Location: register.php?msg=$err");
    exit();
    }
          
    $user_ip $_SERVER['REMOTE_ADDR'];

    // stores md5 of password
    $md5pass md5($data['pwd']);
    // Automatically collects the hostname or domain  like example.com) 
    $host  $_SERVER['HTTP_HOST'];
    $host_upper strtoupper($host);
    $path   rtrim(dirname($_SERVER['PHP_SELF']), '/\\');

    // Generates activation code simple 4 digit number
    $activ_code rand(1000,9999);

    $usr_email $data['usr_email'];
    $user_name $data['user_name'];

    /************ USER EMAIL CHECK ************************************
    This code does a second check on the server side if the email already exists. It 
    queries the database and if it has any existing email it throws user email already exists
    *******************************************************************/

    $rs_duplicate mysql_query("select count(*) as total from users where user_email='$usr_email' OR user_name='$user_name'") or die(mysql_error());
    list(
    $total) = mysql_fetch_row($rs_duplicate);

    if (
    $total 0)
    {
    $err urlencode("ERROR: Dieser Username existiert bereits. Bitte wähle einen anderen");
    header("Location: register.php?msg=$err");
    exit();
    }
    /***************************************************************************/

    $sql_insert "INSERT into `users`
                  (`full_name`,`user_email`,`pwd`,`address`,`tel`,`fax`,`website`,`date`,`users_ip`,`activation_code`,`country`,`user_name`
                )
                VALUES
                ('
    $data[full_name]','$usr_email','$md5pass','$data[address]','$data[tel]','$data[fax]','$data[web]'
                ,now(),'
    $user_ip','$activ_code','$data[country]','$user_name'
                )
                "
    ;

    mysql_query($sql_insert,$link) or die("Insertion Failed:" mysql_error());
    $user_id mysql_insert_id($link);  
    $md5_id md5($user_id);
    mysql_query("update users set md5_id='$md5_id' where id='$user_id'");
    //    echo "<h3>Thank You</h3> We received your submission.";

    $message 
    "Vielen Dank für deine Registrierung auf bulistar.de! Hier sind deine Login-Daten\n

    Username: 
    $user_name \n
    Email: 
    $usr_email \n 
    Passwort: 
    $data[pwd] \n
    Activation code: 
    $activ_code \n

    *****Aktivierungs-Link*****\n
    http://
    $host$path/activate.php?user=$md5_id&activ_code=$activ_code

    Vielen Dank

    Administrator
    $host_upper
    ______________________________________________________
    Dies ist eine automatisch generierte E-Mail. 
    ***Bitte nicht antworten!****
    "
    ;

        
    mail($usr_email"Deine Registrierung"$message,
        
    "From: \"Bulistar.de\" <auto-reply@$host>\r\n" .
         
    "X-Mailer: PHP/" phpversion());


    /********************* SMTP EMAIL WITH PHPMAILER LIBRARY *********************
    i have heard lots of complaints that users not able to receive email using mail() function
    so i am using alternate SMTP emailing which is quite fast and reliable. Before you use this you should
    create POP/SMTP email in your hosting account 

    This script needs class.phpmailer.php and class.smtp.php files from PHPMailer library.
    Download here: http://phpmailer.sourceforge.net
    ********************************************************************************/

    /*
    require("class.phpmailer.php");

    $mail = new PHPMailer();

    $mail->IsSMTP();        
    $mail->Host = $smtp_host;
    $mail->SMTPAuth = true;     // turn on SMTP authentication
    $mail->Username = $smtp_user;  // SMTP username
    $mail->Password = $smtp_passwd; // SMTP password


    $mail->From     = $smtp_from;
    $mail->FromName = $smtp_from_name;
    $mail->AddAddress($usr_email);

    $mail->Subject  = $smtp_subject;
    $mail->Body     = $message;
    $mail->WordWrap = 50;

    $mail->Send();
    */
      
    header("Location: thankyou.php");  
      exit();
         
         } 
                         

    ?>
    <html>
    <head>
    <title>  </title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <script language="JavaScript" type="text/javascript" src="js/jquery-1.3.2.min.js"></script>
    <script language="JavaScript" type="text/javascript" src="js/jquery.validate.js"></script>

      <script>
      $(document).ready(function(){
        $.validator.addMethod("username", function(value, element) {
            return this.optional(element) || /^[a-z0-9\_]+$/i.test(value);
        }, "Benutzername darf nur A-Z, 1-9 und _ .");

        $("#regForm").validate();
      });
      </script>

    <link href="styles.css" rel="stylesheet" type="text/css">
    </head>

    <body>

       
        
        <p>
        <? 
         if (isset($_GET['done'])) {
          echo "<h2>Danke!</h2> Du kannst dich jetzt <a href=\"login.php\">hier</a>einloggen!";
          exit();
          }
        ?></p>
          
         <?    
          if (isset($_GET['msg'])) {
          $msg = mysql_real_escape_string($_GET['msg']);
          echo "<div class=\"msg\">$msg</div>";
          }
          if (isset($_GET['done'])) {
          echo "<div><h2>Danke!</h2> Du kannst dich jetzt <a href=\"login.php\">hier einloggen!</a></div>";
          exit();
          }
          
          ?> 
          <br>
          <form action="register.php" method="post" name="regForm" id="regForm" >
            <table>
              <tr>
                <td><p>Dein Name*</td> <td>
                  <input name="full_name" type="text" id="full_name"  class="required">
                </p></td>
              </tr>
              <tr>
                <td>Benutzername*</td><td><span class="required">
                  <input name="user_name" type="text" id="user_name" class="required username" minlength="5" >
                <input name="btnAvailable" type="button" id="btnAvailable" 
                  onClick='$("#checkid").html("Bitte warten ..."); $.get("checkuser.php",{ cmd: "check", user: $("#user_name").val() } ,function(data){  $("#checkid").html(data); });'
                  value="Check Availability">
                </span></td>
                
              </tr>
              <tr>
                <td>E-Mail*<span class="required"></span></td>
                  <td><input name="usr_email" type="text" id="usr_email3" class="required email">
                   <span class="example">* Bitte eine gültige E-Mailadresse angebe</span><span class="example">n</span></td>
                
              </tr>
              <tr>
                <td>Passwort*<span class="required"></span></td>
                 <td> <input name="pwd" type="password" class="required password" minlength="5" id="pwd">
                  <span class="example">** Mindestens 5 Zeichen</span></td>
               
              </tr>
              <tr>
                <td>Passwort wiederholen*<span class="required"></span></td>
                  <td><input name="pwd2"  id="pwd2" class="required password" type="password" minlength="5" equalto="#pwd"></td>
                
              </tr>
              
                
                
              </tr>
            </table>
            <p align="center"><strong>
              <? 
                require_once('recaptchalib.php');
                
                    echo recaptcha_get_html($publickey);
                ?>
            </strong>
              <input name="doRegister" type="submit" id="doRegister" value="Registrieren">
            <td>&nbsp;</td>
            </p>
    </form>
          <p align="right">&nbsp;</p>
           
          </td>



    </body>
    </html>
    Ist etwas lang, aber ich hoffe, ihr könnt mir helfen.

    PS: Das Copyright von dem Script hab ich rausgenommen, kommt aber auf die Homepage drauf!!

    djlars


  • #2
    mach mal error_reporting(-1) an.
    Welcher Fehler wird angezeigt.

    Zeige bitte nur die stelle an der der Fehler auftritt und nicht das ganze skript.
    "My software never has bugs, it just develops random features."
    "Real programmers don't comment. If it was hard to write, it should be hard to understand!"

    Kommentar


    • #3
      Folgender Error wird angezeigt:
      Notice: Undefined index: doRegister in /var/www/web122784/html/login/register.php on line 19

      Das hier ist ab Zeile 19:
      PHP-Code:
      if($_POST['doRegister'] == 'Register'

      /******************* Filtering/Sanitizing Input *****************************
      This code filters harmful script code and escapes data of all POST data
      from the user submitted form.
      *****************************************************************/
      foreach($_POST as $key => $value) {
          
      $data[$key] = filter($value);

      Kommentar


      • #4
        Du hast bei deinen layout-Veränderungen den POST-Wert "doRegister" vergessen.
        Ich vermute mal, der stand als INPUT HIDDEN Feld irgendwo im Formular.
        <input type="hidden" name="doRegister" value="Register"> oder ähnlich...
        Setz den wieder ins Layout und alles wird gut sein
        "Nein, nein das Beste an Zombieland ist: Keine Facebook-Status-Updates mehr.
        'Rob Curtis freut sich schon auf Freitag', wen interessierts?"

        Kommentar


        • #5
          Den Wert habe ich reingesetzt, allerdings erscheint die Meldung weiterhin. Außerdem müsste der Wert im Register-Button mit drin sein?!
          PHP-Code:
          <input name="doRegister" type="submit" id="doRegister" value="Registrieren"

          Kommentar


          • #6
            Der Inhalt muss "Register" sein.

            //Edit: Und lerne Grundlagen bitte, den das muss man wissen und sehen.

            Kommentar


            • #7
              Funktioniert trotzdem nicht. Value hat doch nichts damit zu tun. Das ist doch nur die Ausgabe!?
              Der eine Error bleibt und wenn ich auf register klicke, kommt noch folgende Meldung:
              Warning: Cannot modify header information - headers already sent by (output started at /var/www/web122784/html/login/register.php:10 in /var/www/web122784/html/login/register.php on line 175

              Kommentar


              • #8
                Hat wohl was damit zu tun . Da wird eine abfrage nach dem Inhalt des Teils gemacht und der muss Register sien :P. Zu deinem zweiten, da du das Template verändert hast, hast du eine Ausgabe bevor dem Header gemacht.

                Kommentar


                • #9
                  Google ist dein Freund
                  "Dummheit redet viel..Klugheit denkt und schweigt.." [Amgervinus]

                  Kommentar


                  • #10
                    Die "cannot modify Header Information..."-Warnung ist weg, allerdings kann man sich noch nicht registrieren und der "Notice: Undefined index: doRegister in /var/www/web122784/html/login/register.php on line 19"-Error steht da immer noch. Wenn ich allerdings ein paar Daten eingebe und dann auf Register klicke, verschwindet er

                    Kommentar


                    • #11
                      Wenn ich allerdings ein paar Daten eingebe und dann auf Register klicke, verschwindet er
                      Na das ist aber sehr erstaunlich. DoRegister gibt halt genau diesen Vorgang an. Wenn nicht gesetzt, wird nicht registriert.

                      Nicht gesetzte Arrays kann man nunmal nicht so abfragen: if($_POST['doRegister'] == 'Register')

                      isset / empty verwenden!
                      --

                      „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                      Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                      --

                      Kommentar


                      • #12
                        hmm, da war ich zu langsam...

                        Kommentar


                        • #13
                          Ich hab daraus dann jetz ein
                          PHP-Code:
                          if($_POST['doRegister'] == 'Register'

                          gemacht.
                          Der Error ist dann auch weg, allerdings kommt dann ein neuer, wenn ich auf register geklickt habe:
                          Warning: Cannot modify header information - headers already sent by (output started at /var/www/web122784/html/login/register.php:10 in /var/www/web122784/html/login/register.php on line 175

                          Ich hab zwar gegooglet aber ne Lösung hab ich nicht gefunden..

                          Kommentar


                          • #14
                            Zitat von djlars Beitrag anzeigen
                            Ich hab daraus dann jetz ein
                            PHP-Code:
                            if($_POST['doRegister'] == 'Register'

                            gemacht.
                            Das behebt den Fehler nicht.

                            Der Error ist dann auch weg, allerdings kommt dann ein neuer
                            Wieso neu - den hattest du im Verlauf dieses Threads doch schon mal.

                            Ich hab zwar gegooglet aber ne Lösung hab ich nicht gefunden..
                            Ach komm, die Ursache des Problems ist wirklich simpel zu verstehen!

                            Und wenn du sie verstanden hast, dann ist auch die Behebung des Problems nicht sonderlich schwierig.

                            Kommentar


                            • #15
                              $_POST ist ein Array -> Grundlagen PHP: Arrays - Manual

                              Kommentar

                              Lädt...
                              X