[Funktion] Problem mit usercheck-function

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

  • [Funktion] Problem mit usercheck-function

    ich habe ein problem mit meiner function.
    ich habe das gerüst irgendwo hier aus dem forum (weiß aber nicht mehr woher genau; falls jemand noch den post weiß, kann er ja mal bitte den link nochmal posten)

    jedenfalls:
    hier ist meine funktion:
    PHP-Code:
    function usercheck($script_id,$userstatus){
                    include(
    "./includes/settings.inc.php");
                    
    #####START DER USER ABFRAGE#####
                    //db daten auslesen
                    
    $restrictions_query=mysql_query("SELECT right_admincp_settings FROM ".$prefix."userrights WHERE right_klasse='".$userstatus."'")or die (mysql_error());
                    
    $restrictions=mysql_fetch_array($restrictions_query);
                    
    // Wenn das gewählte Script existiert entsprechend die Berechtigung erteilen
                    
    If ( $userstatus != "Admin") {
                            
    // Abarbeitung MOD
                            
    If ( $userstatus == "Moderator") {
                                    
    // Zugriff auf Ressource erlaubt oder nicht?
                                    
    If ( $restrictions[$script_id] != "1" ) {
                                            
    $auth "false";
                                            
    $error_msg="<font><li>Ihnen ist es vorbehalten, das AdminCP zu benutzen</li></font><br />";
                                    }
                                    else { 
    $auth "true"; }
                            }if(
    $userstatus == "Member"){
                                    if(
    $restrictions[$script_id]!="1"){
                                            
    $auth="false";
                                            
    $error_msg="<font><li>Ihnen ist es vorbehalten, das AdminCP zu benutzen</li></font><br />";
                                    }else{
                                            
    $auth="true";
                                    }
                            }if(
    $userstatus == "Gast"){
                                    if(
    $settings['guestpost']!="1"){
                                            
    $auth="false";
                                            
    $error_msg="<font><li>Gästen ist es vorbehalten, das AdminCP zu benutzen</li></font><br />";
                                    }
                                    if(
    $userstatus=="1"){
                                            if(
    $restrictions[$script_id]!="1"){
                                                    
    $auth="false";
                                                    
    $error_msg="<font><li>Gästen ist es vorbehalten, das AdminCP zu benutzen</li></font><br />";
                                            }else{
                                                    
    $auth="true";
                                            }
                                    }
                            }
                    }
                    else { 
    $auth "true"; }


    hier wird die function eingesetzt:
    PHP-Code:
    $script_id='right_admincp_settings';
            
    $userstatus=$member['userstatus'];
            
    usercheck("right_admincp_settings","Member");
            if(
    $auth==""){
                    echo 
    "leeeeeeer";
            }else{
            echo 
    $auth;
            } 
    das problem:
    ich bekomme immer nur "leeeeeeeeer" wieder.
    es wird also garkeine variable $auth erstellt.
    wo liegt denn der fehler?
    würde mich über eine helfende antwort freuen.

    mfg
    jazzdee

  • #2
    Hallo,
    wie du am letzteren Code siehst wird keine Variable $auth gesetzt, deshalb gibt er dir nur "leeeeeer" aus
    Sebastian Birkl
    ebiz-webhosting

    Kommentar


    • #3
      nein,
      die variable $auth soll ja in der function gesetzt werden. das geht auch. ich kann $auth innerhalb der function ausgeben, wenn die funktion aber endet, kann ich die variable nicht weiterverwenden.

      Kommentar


      • #4
        was ist denn nun?
        kann mir niemand sagen, warum die variable nicht übergeben wird?

        Kommentar


        • #5
          wie wär's mal mit systematischem debugging?

          mit welchenm variablenwerten wird die funktion aufgerufen?
          wie sieht der zusammengesetzte query-string aus? welches ergebnis liefert er in phpmyadmin?
          in welche if-zweige wird reingesprungen?
          etc.
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            Deine Funktion liefert doch gar keinen "return" wert, die Variable "$auth" existiert daher nur innerhalb der Funktion.
            http://de2.php.net/manual/de/functions.php
            [COLOR=#9C5245]Internet-Explorer[/COLOR] [COLOR=#334D7B]User und stolz drauf! :P[/COLOR]

            Kommentar


            • #7
              schonmal daran gedacht return $auth zu machen oder
              meinetwegen auch global $auth o.o

              Kommentar


              • #8
                das funktioniert trotzdem nicht.
                auch wenn ich return mache kann ich die variable nicht übergeben
                es klappt nicht

                an der ausgabe hat sich nix geändert.
                kann $auth immer noch nicht ausgeben

                PHP-Code:
                function usercheck($script_id,$userstatus){
                                include(
                "./includes/settings.inc.php");
                                
                #####START DER USER ABFRAGE#####
                                //db daten auslesen
                                
                $restrictions_query=mysql_query("SELECT * FROM ".$prefix."userrights WHERE right_klasse='".$userstatus."'")or die (mysql_error());
                                
                $restrictions=mysql_fetch_array($restrictions_query);
                                
                // Wenn das gewählte Script existiert entsprechend die Berechtigung erteilen
                                
                If ( $userstatus != "Admin") {
                                        
                // Abarbeitung MOD
                                        
                If ( $userstatus == "Moderator") {
                                                
                // Zugriff auf Ressource erlaubt oder nicht?
                                                
                If ( $restrictions[$script_id] != "1" ) {
                                                        
                $auth "false";
                                                        
                $error_msg="<font><li>Ihnen ist es vorbehalten, das AdminCP zu benutzen</li></font><br />";
                                                }
                                                else { 
                $auth "true"; }
                                        }if(
                $userstatus == "Member"){
                                                if(
                $restrictions[$script_id]!="1"){
                                                        
                $auth="false";
                                                        
                $error_msg="<font><li>Ihnen ist es vorbehalten, das AdminCP zu benutzen</li></font><br />";
                                                }else{
                                                        
                $auth="true";
                                                }
                                        }if(
                $userstatus == "Gast"){
                                                if(
                $settings['guestpost']!="1"){
                                                        
                $auth="false";
                                                        
                $error_msg="<font><li>Gästen ist es vorbehalten, das AdminCP zu benutzen</li></font><br />";
                                                }
                                                if(
                $userstatus=="1"){
                                                        if(
                $restrictions[$script_id]!="1"){
                                                                
                $auth="false";
                                                                
                $error_msg="<font><li>Gästen ist es vorbehalten, das AdminCP zu benutzen</li></font><br />";
                                                        }else{
                                                                
                $auth="true";
                                                        }
                                                }
                                        }
                                }
                                else {
                $auth "true";}
                                return 
                $auth;

                Kommentar


                • #9
                  wie wendest du die Fkt. an (Code) ?

                  Kommentar


                  • #10
                    PHP-Code:
                    if($sub=="user"){
                    $script_id="right_admincp";
                    $userstatus=$member['userstatus'];
                            
                    usercheck($script_id,$userstatus);
                            echo 
                    $auth;

                    mfg
                    jazzdee

                    Kommentar


                    • #11
                      $auth = usercheck($script_id,$userstatus);
                      Ich denke, also bin ich. - Einige sind trotzdem...

                      Kommentar


                      • #12
                        kein Wunder
                        einer Funktion, die eine Rückgabe hat, muss du einer Variable zuweisen, um die Rückgabe auswerten zu können, sonst geht die Rückgabe ins Leere.

                        Kommentar


                        • #13
                          habs mal so geamcht wie mrhappiness es mir gesagt hat:

                          PHP-Code:
                          if($sub=="user"){
                          $script_id="right_admincp";
                          $userstatus=$member['userstatus'];
                                  
                          $auth=usercheck($script_id,$userstatus);
                                  echo 
                          $auth;

                          klappt aber trotzdem nicht

                          Kommentar


                          • #14
                            PHP-Code:
                            echo '$auth ist vomTyp '.gettype($auth).' und hat den Wert: '.$auth
                            ausgabe?
                            Ich denke, also bin ich. - Einige sind trotzdem...

                            Kommentar


                            • #15
                              ausgabe ist:
                              $auth ist vomTyp NULL und hat den Wert:

                              Kommentar

                              Lädt...
                              X