Ankündigung

Einklappen
Keine Ankündigung bisher.

implode Fehler - falsche Parameterangabe

Einklappen

Neue Werbung 2019

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

  • implode Fehler - falsche Parameterangabe

    Hi Leute!

    Habe einen implode Fehler. Die Parameter sind falsch. Ich weiß aber nicht was an folgender Zeile falsch sein sollte:
    PHP-Code:
    $whereAdd[] = $table.'.uid_local=tx_dmmjobcontrol_job.uid AND ('.$table.'.uid_foreign='.implode(' OR '.$table.'.uid_foreign='intval($value)).')'
    Die ganze Funktion lautet
    PHP-Code:
    // If there is a search-session, then extend the query arrays to make the search (but not for rss feeds of course)

            
    if (!$this->rssMode && !$this->conf['ignore_search']) {

                
    $session $GLOBALS['TSFE']->fe_user->getKey('ses'$this->prefixId);

                if (isset(
    $session['search']) && $search $session['search']) {

     

                    foreach (
    $search AS $field => $value) {

                        if (
    is_array($value) && count($value) == && current($value) == -1) {

                            continue;

                        }

     

                        if (isset(
    $TCA['tx_dmmjobcontrol_job']['columns'][$field]['config']['MM'])) {

                            
    $table $TCA['tx_dmmjobcontrol_job']['columns'][$field]['config']['MM'];

                            
    $tableAdd[] = $table;

                            
    $whereAdd[] = $table.'.uid_local=tx_dmmjobcontrol_job.uid AND ('.$table.'.uid_foreign='.implode(' OR '.$table.'.uid_foreign='intval($value)).')';

                        } elseif (
    $field == 'keyword') {

                            
    $keywords str_replace(array(','), ' '$value);

                            
    $keywords explode(' '$keywords);

     

                            foreach (
    $keywords AS $keyword) {

                                
    $keyword addslashes($keyword);

     

                                
    $whereAdd[] = '(tx_dmmjobcontrol_job.job_title LIKE "%'.$keyword.'%" OR '.

                                
    'tx_dmmjobcontrol_job.job_description LIKE "%'.$keyword.'%" OR '.

                                
    'tx_dmmjobcontrol_job.location LIKE "%'.$keyword.'%" OR '.

                                
    'tx_dmmjobcontrol_job.reference LIKE "%'.$keyword.'%" OR '.

                                
    'tx_dmmjobcontrol_job.job_requirements LIKE "%'.$keyword.'%")';

                            }

                        } elseif (isset(
    $TCA['tx_dmmjobcontrol_job']['columns'][$field])) {

                        
    // !!!

                        // listQuery doesn't do IN statement

                        // !!!

                        
    $value current($value);

                            
    $selectAdd[] = 'tx_dmmjobcontrol_job.'.$field.' AS '.$field;

                            
    $whereAdd[] = $GLOBALS['TYPO3_DB']->listQuery($field$value'tx_dmmjobcontrol_job');

                        } else {

                            continue;

                        }

                    }

                }

            } 
    Der Fehler lautet
    PHP-Code:
    CoreError handler (FE): PHP Warningimplode() [<a href='function.implode'>function.implode</a>]: Invalid arguments passed in /typo3conf/ext/dmmjobcontrol/pi1/class.tx_dmmjobcontrol_pi1.php line 255 
    Vielen Dank für Hilfestellungen!

  • #2
    Implode erwartet ein Array, was du aber an dieser Stelle nicht hast.
    Die Deutsche Rechtschreibung ist Freeware! Du darfst sie kostenlos nutzen, allerdings ist sie nicht Open Source, d.h. Du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

    Kommentar


    • #3
      http://php.net/manual/en/function.implode.php
      [QUOTE=nikosch]Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.[/QUOTE]

      Kommentar


      • #4
        Ich bin leider PHP Anfänger. Könnt ihr mir vielleicht sagen wie man die Parameter in diesem Fall richtig angebt? Das ' OR ' ist denk ich schon mal falsch oder?

        Kommentar


        • #5
          Wenn du da herumbastelst ohne zu wissen was/wie, machst du mehr kaputt als gut. Frag doch mal den, der den Code gebaut hat, das warst ja offensichtlich nicht du...

          Info: http://www.php.de/php-einsteiger/543...produkten.html

          LG
          The string "()()" is not palindrom but the String "())(" is.

          Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
          PHP.de Wissenssammlung | Kein Support per PN

          Kommentar


          • #6
            Das Problem ist, dass derjenige nicht mehr diese TYPO3 Erweiterung wartet und nicht mehr programmiert.

            Kommentar


            • #7
              PHP-Code:
              $whereAdd[] =
                
              $table.'.uid_local=tx_dmmjobcontrol_job.uid AND ('.$table.'.uid_foreign='.implode(' OR '.$table.'.uid_foreign='intval($value)).')'
              Und wie sah der/die letzt funktionierende code/query an der Stelle aus? Glaube ja nicht, das die schon von Beginn an so aussah.

              Ansonsten kannst du es ja mal hier versuchen: http://www.php.de/scriptboerse/
              The string "()()" is not palindrom but the String "())(" is.

              Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
              PHP.de Wissenssammlung | Kein Support per PN

              Kommentar


              • #8
                Auf die letzte Version dieser Zeile habe ich keinen Zugriff mehr, da die alte Version SQL injections zugelassen hat.

                Kommentar

                Lädt...
                X