+ Antworten
Ergebnis 1 bis 4 von 4

Thema: Controller function save

  1. #1
    Neu an Board
    Registriert seit
    01.06.2005
    Ort
    Dortmund
    Alter
    42
    Beiträge
    26
    Bedankte sich
    3
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard Controller function save

    Hallo zusammen,

    ich komme einfach nicht weiter.
    Hier mal der php Code:
    PHP-Code:
    function save() {

           
    // Check for request forgeries
           
    JRequest::checkToken() or jexit'Invalid Token' );

           
    //get data from request
            
    $post JRequest::get('post');
            
    $post['name']       = JRequest::getVar('name''''post''name'JREQUEST_ALLOWRAW);
            
    $post['version']    = JRequest::getVar('version''''post''version'JREQUEST_ALLOWRAW);
            
    $post['unpack']     = JRequest::getVar('unpack''''post''unpack'JREQUEST_ALLOWRAW);
            
    $post['switchs']    = JRequest::getVar('switchs''''post''switchs'JREQUEST_ALLOWRAW);
            
    $post['infos']      = JRequest::getVar('infos''''post''infos'JREQUEST_ALLOWRAW);

    // Dieser Bereich geht nicht Anfang

            
    $str $post['name'];
            
    $short substr($str01);
            
    $outlay ucfirst($short);
            if (
    preg_match('/([A-Z]+)/'$outlay)) {
            
    $cat $outlay;
             }else{
            
    $cat '1';
            }

            if (
    $cat == 'A' || $cat == 'B' || $cat == 'C') { $catid '1';}
            elseif (
    $cat == 'D' || $cat == 'E' || $cat == 'F') { $catid '2';}
            elseif (
    $cat == 'G' || $cat == 'H' || $cat == 'I') { $catid '3';}
            elseif (
    $cat == 'J' || $cat == 'K' || $cat == 'L') { $catid '4';}
            elseif (
    $cat == 'M' || $cat == 'N' || $cat == 'O') { $catid '5';}
            elseif (
    $cat == 'P' || $cat == 'Q' || $cat == 'R') { $catid '6';}
            elseif (
    $cat == 'S' || $cat == 'T' || $cat == 'U') { $catid '7';}
            elseif (
    $cat == 'V' || $cat == 'W' || $cat == 'X') { $catid '8';}
            elseif (
    $cat == 'Y' || $cat == 'Z')                { $catid '9';}
            elseif (
    $cat == '1')                               { $catid '10';}

           
    $catid JRequest::getVar('catid''''post''catid'JREQUEST_ALLOWRAW);

    // Dieser Bereich geht nicht Ende

          // get the redirect
            
    $return JURI::base();

           
    // get the model
           
    $model $this->getModel('switchdatabase');
           if (
    $model->store($post)) {
             
    $msg JText::_('MSG_TEXT_SAVE');
             echo 
    '<meta **********=********* content="3;URL=javascript: history.go(-2)" />'$msg;
           } else {
             
    $msg JText::_('MSG_TEXT_SAVE_ERROR');
             echo 
    '<meta **********=********* content="3;URL=javascript: history.go(-1)" />'$msg;
           }
        } 
    In den Code geht folgendes nicht.
    PHP-Code:
    $str $post['name']; 
            
    $short substr($str01); 
            
    $outlay ucfirst($short); 
            if (
    preg_match('/([A-Z]+)/'$outlay)) { 
            
    $cat $outlay
             }else{ 
            
    $cat '1'
            } 

            if (
    $cat == 'A' || $cat == 'B' || $cat == 'C') { $catid '1';} 
            elseif (
    $cat == 'D' || $cat == 'E' || $cat == 'F') { $catid '2';} 
            elseif (
    $cat == 'G' || $cat == 'H' || $cat == 'I') { $catid '3';} 
            elseif (
    $cat == 'J' || $cat == 'K' || $cat == 'L') { $catid '4';} 
            elseif (
    $cat == 'M' || $cat == 'N' || $cat == 'O') { $catid '5';} 
            elseif (
    $cat == 'P' || $cat == 'Q' || $cat == 'R') { $catid '6';} 
            elseif (
    $cat == 'S' || $cat == 'T' || $cat == 'U') { $catid '7';} 
            elseif (
    $cat == 'V' || $cat == 'W' || $cat == 'X') { $catid '8';} 
            elseif (
    $cat == 'Y' || $cat == 'Z')                { $catid '9';} 
            elseif (
    $cat == '1')                               { $catid '10';} 

           
    $catid JRequest::getVar('catid''''post''catid'JREQUEST_ALLOWRAW); 
    Könnte mir da einer helfen, wo ich da einen Fehler haben, dass er mir nicht die $catid einträgt?

    Grüße

    Olaf

  2. #2
    Verbringt hier viel Zeit
    Registriert seit
    24.01.2006
    Beiträge
    594
    Bedankte sich
    108
    Erhielt 359 Danksagungen
    in 203 Beiträgen

    Standard

    Wenn du deinen Code sauber kommentieren und dokumentieren würdest sowie eine Erklärung schreiben würdest, was der Block genau machen soll, was die Eingaben sind und was heraus kommen soll, dann könnte man dir evtl. helfen. "Funktioniert nicht" ist keine Fehlermeldung...

  3. #3
    Neu an Board
    Registriert seit
    01.06.2005
    Ort
    Dortmund
    Alter
    42
    Beiträge
    26
    Bedankte sich
    3
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Hallo bembelimen,
    sorry das ich die Erklärung im Script vergessen habe.

    Hier noch mals das Script wo kein Wert übergeben wird.

    PHP-Code:
    // $post['name'] wird vom Formular geschickt
    $str $post['name']; 
    // Hier soll es bis auf 1 Zeichen gekürzt werden 
            
    $short substr($str01); 
    // Hier soll der Buchstabe falls er klein geschrieben ist auf groß gesetzt werden 
            
    $outlay ucfirst($short); 
    // Die if Schleife soll prüfen ob es ein Buchstabe von A bis Z ist oder ein anderes Zeichen. 
            
    if (preg_match('/([A-Z]+)/'$outlay)) {  
            
    $cat $outlay;  
             }else{  
            
    $cat '1';  
            }  
    // Bei dieser Schleife soll nach bestimmten Buchstaben oder andere Zeichen die CATID zugeordnet werden. 
            
    if ($cat == 'A' || $cat == 'B' || $cat == 'C') { $catid '1';}  
            elseif (
    $cat == 'D' || $cat == 'E' || $cat == 'F') { $catid '2';}  
            elseif (
    $cat == 'G' || $cat == 'H' || $cat == 'I') { $catid '3';}  
            elseif (
    $cat == 'J' || $cat == 'K' || $cat == 'L') { $catid '4';}  
            elseif (
    $cat == 'M' || $cat == 'N' || $cat == 'O') { $catid '5';}  
            elseif (
    $cat == 'P' || $cat == 'Q' || $cat == 'R') { $catid '6';}  
            elseif (
    $cat == 'S' || $cat == 'T' || $cat == 'U') { $catid '7';}  
            elseif (
    $cat == 'V' || $cat == 'W' || $cat == 'X') { $catid '8';}  
            elseif (
    $cat == 'Y' || $cat == 'Z')                { $catid '9';}  
            elseif (
    $cat == '1')                               { $catid '10';}  
    // Hier sollte es in der Datenbank gespeichert werden.
           
    $catid JRequest::getVar('catid''''post''catid'JREQUEST_ALLOWRAW); 
    Ich hoffe Ihr könnt es verstehen was ich meinte.

    Danke schon einmal.

    Grüße

    Olly

  4. #4
    Verbringt hier viel Zeit
    Registriert seit
    24.01.2006
    Beiträge
    594
    Bedankte sich
    108
    Erhielt 359 Danksagungen
    in 203 Beiträgen

    Standard

    Zitat Zitat von OllyP234 Beitrag anzeigen
    PHP-Code:
    CATID zugeordnet werden
            if (
    $cat == 'A' || $cat == 'B' || $cat == 'C') { $catid '1';}  
            elseif (
    $cat == 'D' || $cat == 'E' || $cat == 'F') { $catid '2';}  
            elseif (
    $cat == 'G' || $cat == 'H' || $cat == 'I') { $catid '3';}  
            elseif (
    $cat == 'J' || $cat == 'K' || $cat == 'L') { $catid '4';}  
            elseif (
    $cat == 'M' || $cat == 'N' || $cat == 'O') { $catid '5';}  
            elseif (
    $cat == 'P' || $cat == 'Q' || $cat == 'R') { $catid '6';}  
            elseif (
    $cat == 'S' || $cat == 'T' || $cat == 'U') { $catid '7';}  
            elseif (
    $cat == 'V' || $cat == 'W' || $cat == 'X') { $catid '8';}  
            elseif (
    $cat == 'Y' || $cat == 'Z')                { $catid '9';}  
            elseif (
    $cat == '1')                               { $catid '10';}  
    // Hier sollte es in der Datenbank gespeichert werden.
           
    $catid JRequest::getVar('catid''''post''catid'JREQUEST_ALLOWRAW); 
    Warum setzt du erst die Variable $catid mit deinen ifs (wobei du evtl. mal über ein switch/case statement nachdenken solltest, mit fallthrough) und überschreibst die Variable eine Zeile darunter mit einem völlig neuen Wert?

    Ich denke mal, du suchst das:

    PHP-Code:
    $post['catid'] = $catid
    Ansonsten solltest du dir auch nochmal Gedanken machen über deine Filtermethode. getVar in Kombination mit JREQUEST_ALLOWRAW ist nicht wirklich der Bringer. Du solltest da ein bisschen restriktiver Filtern, siehe hier

+ Antworten

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein