fehlermeldung beim login

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

  • fehlermeldung beim login

    Fehlermeldung:
    Code:
    Fatal error: Call to undefined function: gettemplate() in /usr/export/www/vhosts/funnetwork/hosting/malik49/login.php on line 46
    index.html
    Code:
    <html>
    <head>
    <link rel="stylesheet" type="text/css" href="_stylesheet.css" />
    </head>
    <body>
    <table width="100%" height="100%">
     <tr>
     <td align="center" background="http://malik49.ma.funpic.de/hezs/dlf/MCE.jpg" bgcolor="#CCCCCC">
         <table width="350" border="1" cellpadding="10" cellspacing="0" bordercolor="#0066FF">
            <tr>
              <td align="center" bgcolor="#FFFFFF"><p><img src="/hezs/dlf/hezs.jpg" alt="hezs`" width="250" height="75"></p>
                <table width="100%" cellpadding="2" cellspacing="0">
    <form method="post" name="login" action="checklogin.php"> 
     <tr>
      <td>
        <div align="center">
    <? include("login.php"); ?>
          </div></td>
     </tr>
    </form>
    </table> 
    </td>
            </tr>
          </table>
          <p>&nbsp;</p>
        <?php
     $ip = $_SERVER['REMOTE_ADDR'];  
     $host = gethostbyaddr($ip); 
    
     echo "IP Adresse: $ip<br>";  
     echo "Hostname: $host";  
    ?></td>
      </tr>
    </table>
    </body>
    </html>
    Login.php
    Code:
    <?php
    if($loggedin) {
      $username='<a href="index.php?site=profile&id='.$userID.'"><b>'.getnickname($userID).'</b></a>';
        if(isanyadmin($userID)) $admin='• <a href="admin/admincenter.php" target="_blank">admin</a><br>';
        else $admin='';
        $anz=getnewmessages($userID);
        if($anz) {
            $newmessages=' (<b>'.$anz.'</b>)';
            //if($site!='messenger') echo '<script language="JavaScript">messageconfirm('.$anz.');</script>';
        }
        else $newmessages='';
        if(getavatar($userID)) $l_avatar='<img src="images/avatars/'.getavatar($userID).'">';
        else $l_avatar='n/a';
        
        
        eval ("\$logged = \"".gettemplate("logged")."\";");
        echo $logged;
    }
    else {
        eval ("\$loginform = \"".gettemplate("login")."\";");
        echo $loginform;
    }
    checklogin.php
    Code:
    <?php
    //settings
    
    $sleep = 1; //idle status for script if password is wrong?
    
    //settings end
    
    $ws_pwd=md5($_POST['pwd']);
    include("_mysql.php");
    include("_settings.php");
    
    $ws_user = $_POST['ws_user'];
    
    $check = safe_query("SELECT * FROM ".PREFIX."user WHERE username='$ws_user'");
    $anz = mysql_num_rows($check);
    
    if($anz) {
    
        $check = safe_query("SELECT * FROM ".PREFIX."user WHERE username='$ws_user' AND activated='1'");
        if(mysql_num_rows($check)) {
    
        $ds=mysql_fetch_array($check);
        
            // check password
            $login = 0;
            if($ws_pwd == $ds[password]) {
    
            //session
            session_name('ws_session');
            session_start();
            $_SESSION['ws_auth'] = $ds['userID'].":".$ws_pwd;
            $_SESSION['ws_lastlogin'] = $ds[lastlogin];
            $_SESSION['referer'] = $_SERVER['HTTP_REFERER'];
            //cookie
                setcookie("ws_auth", $ds['userID'].":".$ws_pwd, time()+($sessionduration*60*60));
                $login = 1;
            }
            elseif(!($ws_pwd == $ds[password])) {
          if($sleep) sleep(5);
                $error='You have entered an invalid password.<br><br><a href="javascript:history.back()">Go back and try it again!</a>';
            }
        }
        else $error='Your account is not activated.<br><br>
                          <a href="javascript:history.back()">Go back and try it again!</a>';
    
    }
    else $error='No user with username <b>'.htmlspecialchars($ws_user).'</b> available.<br><br>
                          <a href="javascript:history.back()">Go back and try it again!</a>';
    
    ?>
    <html>
    <head>
    <title><? echo PAGETITLE; ?></title>
    <link href="_stylesheet.css" rel="stylesheet" type="text/css">
    <?php if($login) { echo '<meta http-equiv="refresh" content="1;URL=/hezs/index.php">';$error = 'Login successful!'; } ?>
    </head>
    <body bgcolor="<?php echo PAGEBG; ?>">
    <table width="100%" height="100%">
      <tr>
        <td align="center" background="http://malik49.ma.funpic.de/hezs/dlf/MCE.jpg">
          <table width="350" border="1" cellpadding="10" cellspacing="0" bordercolor="<?php echo BORDER; ?>" bgcolor="<?php echo BG_1; ?>">
            <tr>
              <td align="center"><? echo $error; ?></td>
            </tr>
          </table>
        </td>
      </tr>
    </table>
    </body>
    </html>
    Das ganze zum angucken: Klick hier

    Ich bin kurz vorm Verzweifeln. Ich bekomme den Login einfach nicht hin. Kann mir einer sagen, wo der Fehler ist, bzw was ich vergessen/falsch gemacht habe?
    Bin um jeden Ratschlag dankbar

  • #2
    Die Fehermeldung sagt doch bereits alles. Du benutzt in deinem Script eine Funktion, die nirgends definiert ist und demnach nicht bekannt ist: gettemplate().
    Nieder mit der Camel Case-Konvention

    Kommentar


    • #3
      Das habe ich auch schon rausgefunden. Das Problem ist bloß, was muss ich wo hinschreiben, damit es funktioniert. Bin noch neu auf diesem Gebiet...

      Kommentar


      • #4
        Naja, in die selbe Datei, oder wenn du die Funktion öfters brauchst in eine Include Datei.

        mfg
        nosilume

        Kommentar


        • #5
          Du musst eine Funktion gettemplate() definieren. Wo du das tust, bleibt im Grunde genommen dir überlassen. Du solltest nur darauf achten, dass die Funktionsdefinition vor jeglichen Aufrufen dieser Funktion steht. Also im Prinizp:
          PHP-Code:
          // definition der funktion
          function gettemplate()
          {
              
          // ...
          }

          // aufruf der funktion
          gettemplate(); 
          und nicht umgekehrt. Und wie diese Funktion aussehen soll, das musst du entscheiden. Du kannst aber die Forum-Suche und Google benutzen und nach gettemplate suchen und wirst fertige Schnipsel finden.
          Nieder mit der Camel Case-Konvention

          Kommentar


          • #6
            Original geschrieben von Griecherus
            und nicht umgekehrt
            PHP-Code:
            // aufruf der funktion
            gettemplate();

            // definition der funktion
            function gettemplate()
            {
                
            // ...

            Das geht auch, nur der Vollständigkeit halber...

            mfg
            nosilume

            Kommentar


            • #7
              Das geht auch umgekehrt, das ist richtig. Ich denke nur, dass du mir bestimmt zustimmst, dass es zum sauberen Programmieren gehört, eine sinngemäße Struktur einzuhalten. Deswegen auch der Hinweis in meinem ersten Posting.
              Nieder mit der Camel Case-Konvention

              Kommentar


              • #8
                Natürlich ist es besser (ich glaube auch aus Performancegründen) zuerst die Funktion zu definieren, wie gesagt nur der Vollständigkeit halber.

                mfg
                nosilume

                Kommentar


                • #9
                  Original geschrieben von nosilume
                  Natürlich ist es besser (ich glaube auch aus Performancegründen) zuerst die Funktion zu definieren
                  Nö, das dürfte von der Performance her nicht das geringste ausmachen - der Parser schaut sich sowieso zuerst das komplette Script an, bevor er irgendwas ausführt.
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar


                  • #10
                    Nicht ?
                    Ich dachte der Parser schaut sich die Funktion an und wenn sie noch nicht definiert wurde sucht er sie erst im Script, dann kehrt er wieder zurück. Aber wahrscheinlich rede ich nur wirres Zeug, das was du gesagt hast klingt auch logisch

                    Wenn ich Zeit habe mach ich vielleicht mal nen Benchmark.

                    mfg
                    nosilume

                    Kommentar


                    • #11
                      Es gibt dumme Leute und es gibt mich :>

                      Ich habe vergessen, die _funktions.php zu includen, da ist der Befehl bereits definiert.

                      DANKE an alle, die mir helfen wollten! (mir ist nicht mehr zu helfen)

                      Kommentar


                      • #12
                        *Meld*

                        Ich dachte ehrlich gesagt auch, dass man Funktionen _erst_ definieren muss, da der Parser immer den Quellcode von oben nach unten durchläuft und nicht von einer zur anderen Stelle springt.. Soweit ich weiß, ist das auch in jeder anderen Programmiersprache so und müsste eine Fehlermeldung geben..

                        Aber danke, jetzt konnte ich meinen Horizont erweitern

                        Es lebe das Inet!


                        mfg nOe
                        "I am what I am and I do what I can..."
                        Meine HP -- Mein GPG-Key
                        Meine Projekte: WebStorage 2.0 -- easyAJAX-Chat 2.2.0 (beta)

                        Kommentar

                        Lädt...
                        X