Ankündigung

Einklappen
Keine Ankündigung bisher.

Problem mit Funktion

Einklappen

Neue Werbung 2019

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

  • Problem mit Funktion

    Hallo Ihr..
    hab da mal ein Problem...

    Fehlermeldung:


    Fatal error: Cannot access empty property in C:\Programme\xampp\htdocs\egc\class\link.class.php on line 56


    PHP-Code:
    <?
    class Link
    {
        #Variablen
        public $session = array();
        public $link    = array();

        #Functionen
        function insertLinks(){
            $sql = "INSERT links(kat_id,
                                 link_id, 
                                 link_url, 
                                 link_name) 
                          VALUES('".mysql_real_escape_string($this->session['kat_id'])."' 
                                   '".mysql_real_escape_string($this->session['link_id'])."' 
                                   '".mysql_real_escape_string($this->session['link_url'])."' 
                                   '".mysql_real_escape_string($this->session['link_name'])."')";
            $query     = new Query($sql);
            $num    = $query->affected();
            $query->free();
            if($num==1){
                echo $this->session['link_name']." wurde eingetragen";
            }else{
                echo $this->session['link_name']." wurde nicht eingetragen!";
            }
        }
        function updateLinks(){
            $sql = "UPDATE links SET kat_id = '".mysql_real_escape_string($this->session['kat_id'])."',
                                     link_id = '".mysql_real_escape_string($this->session['link_id'])."', 
                                     link_url = '".mysql_real_escape_string($this->session['link_url'])."', 
                                     link_name = '".mysql_real_escape_string($this->session['link_name'])."'";
            $query    = new Query($sql);
            $num    = $query->affected();
            $query->free();
            if($num==1){
                echo $this->session['link_name']." wurde geändert";
            }else{
                echo $this->session['link_name']." wurde nicht geändert!!!";
            }
        }
        function selectLinks(){
            $sql = "SELECT kat_id,
                           link_id,
                           link_url,
                           link_name FROM links ORDER BY kat_id,link_id";
            $query    = new Query($sql);
            $num    = $query->numRows();
            while ($ds = mysql_fetch_assoc($query->_result)) {
                $class = (($ds['link_id']==0) ? "link" : "u_link");
                $this->link[$ds['kat_id']][$ds['link_id']] = "[url='index.php?cid=".$ds[']".$ds['link_name']."[/url]";
            }
        }
        function selectLink(){
        }
        function flushLink($kat_id){
            foreach ($this->$link as $key => $value){ #hier ist Zeile 56 :D
                if($value==$kat_id){
                    foreach ($value as $key1 => $value1){
                        echo $value1;
                    }
                }
            }
        }
        function deleteLinks(){
            $sql = "DELETE FROM links WHERE kat_id = '".mysql_real_escape_string($this->session['kat_id'])."',
                                            link_id = '".mysql_real_escape_string($this->session['link_id'])."'";
            $query    = new Query($sql);
            $num    = $query->affected();
            $query->free();
            if($num==1){
                echo $this->session['link_name']." wurde gelöscht";
            }else{
                echo $this->session['link_name']." wurde nicht gelöscht!!!";
            }
        }
    }
    ?>
    ich hab ehrlich gesagt keinen Plan was mir diese Fehlermeldung sagen will

  • #2
    $this->$link mit leerem $link bedeutet soviel wie
    $this->''

    Meintest Du vielleicht $this->link ?
    mod = master of disaster

    Kommentar


    • #3
      boah man kann aber auch derbe blind sein wa?

      *SchädelGegenDieWandDepper*

      *boingboingboing



      thnx @ waq

      Kommentar


      • #4
        $this->session['kat_id']

        Hat das einen besonderen Grund?
        Diese Erweiterung ist EXPERIMENTELL.
        [...]
        Seien Sie gewarnt und verwenden Sie diese Erweiterung auf eigenes Risiko..

        Kommentar


        • #5
          joa, hatn besonderen grund...
          denn damit arbeit ich innerhalb der Klasse um Links einzufügen und wieder zu löschen...oder auch zum updaten...
          Da kommt aus dem Formular einfach das $_POST rein und is automatisch dann ein $this->session

          Kommentar


          • #6
            Warum nimmst du denn nicht $_POST , $_GET $_SESSION ect auch innerhalb deiner Klasse?
            Ist doch ein kleines bisel umständlicher oder?


            Außerdem könntest du auch $query als Klassenvariable definieren, dann müsstest du das nicht in jeder Methode neu erstellen.

            Ansonsten, endlich mal eingerückter, leicht verständlicher Code.
            Diese Erweiterung ist EXPERIMENTELL.
            [...]
            Seien Sie gewarnt und verwenden Sie diese Erweiterung auf eigenes Risiko..

            Kommentar


            • #7
              Joa andy, ansich hast du recht, nur ich nehm die $session var auch für andere zwecke her....

              auserdem kann ich dann auf $session mit $_SESSION, $_GET und $_POST zugreifen. einfach die var reinschmeißen und in der Klasse is es dann egal ob es post, get oder session is

              mei, andere machens anders, ich machs so
              hab mich daran gewöhnt und mir taugts so...

              zum eingerückten Code...

              Ich arbeuit mit Zendstudio zum einen, zum 2. is eingerückter Code in Klassen fast unbedingt notwendig, ne, ned fast, is einfach so

              Kommentar

              Lädt...
              X