Ankündigung

Einklappen
Keine Ankündigung bisher.

Fatal error: Only variables can be passed by reference in

Einklappen

Neue Werbung 2019

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

  • Fatal error: Only variables can be passed by reference in

    Hallo,

    Ich will einmal hoffen, das mir da jemand weiter helfen kann.
    Denn ich komme da einfach nicht so ganz zum Ziel.

    Aber hier nun einmal der hergang!

    Auf einem Localem Rechner, habe ich MySQL 4.1, und PHP 5.x laufen.
    Rufe ich nun mit 'http://localhost/...' die seite auf, bekomme ich den in der Überschrifft stehenden Fehler gemeldet.
    Lege ich aber alles auf den Web-Server ab, und Rufe es mit 'http://domain.de/....' geht alles OHNE Probleme.

    Und das wo BEIDE Rechner, die gleichen versionen benutzen.

    PHP-Code:
    <?php
    function submit_post($mode, &$post_data, &$message, &$meta, &$forum_id, &$topic_id, &$post_id, &$poll_id, &$topic_type, &$bbcode_on, &$html_on, &$smilies_on, &$attach_sig, &$bbcode_uid, &$post_username, &$post_subject, &$post_message, &$poll_title, &$poll_options, &$poll_length, &$topic_desc$topic_announce_duration 0$post_icon 0$topic_calendar_time 0$topic_calendar_duration 0, &$news_category)
    ?>
    PHP-Code:
    <?php
    submit_post
    ($mode$post_data$return_message$return_meta$forum_id$topic_id$post_id$poll_id$topic_type$bbcode_on$html_on$smilies_on$attach_sig$bbcode_uidstr_replace("\'""''"$username), str_replace("\'""''"$subject), str_replace("\'""''"$message), str_replace("\'""''"$poll_title), $poll_options$poll_lengthstr_replace("\'""''"$topic_desc), $topic_announce_duration$post_icon$topic_calendar_time$topic_calendar_duration$news_category);
    ?>

  • #2
    Fatal error: Only variables can be passed by reference in
    $subject ist eine Variable, aber nicht str_replace("\'", "''", $subject)
    Du kannst den Rückgabewert von str_replace nicht als Referenz übergeben.
    PHP-Code:
    <?php
    function foo(&$param) { return true; }

    $a 'abc';
    foo($a); // ja
    foo('abc'); //nein
    foo(str_replace('a','''abc')); //nein
    ?>

    Kommentar


    • #3
      Hallo Bruchpilot,
      Ich würde ja auch sagen, das Du damit recht hast, doch ich frage mich, wieso eben dieser Script übers netzt läuft, und über http://localhost eben nicht.
      Übrigens, der Scriptauszug, ist von DIESEM Foren-Programm. und hier läuft er ja auch. *Komische sache das*

      sicherlich könnte man das ja alles Umcoden, aber das ist dann auch nur durch die Brust ins Auge. Nein, wenn ein Script einmal fehlerfrei läuft, und der selbe ein anderes mal nicht, dann möchte ich halt genau wissen, wie das kommt.
      Zumal ja bis auf das BS (Der Server unter Windows2003, Und der Arbeitsrechner unter WindowsXP) alle anderen Programmversionen die selben sind. selbst die php.ini sind Identisch
      .
      Für Interessierte der Codeauszug ist aus der Posting.php Zeile 554 des Aktuellen phpBB 2.0.17

      Kommentar


      • #4
        Das liegt daran, dass die Referenzgeschichten in PHP bis vor kurzem nicht ganz sauber waren, und man da mal aufgeräumt hat, was u.a. dazu führt, dass jetzt Sachen verboten sind, die schon immer hätten verboten sein sollen.

        V.a. PHP 5.1 ist da etwas pedantisch geworden, PHP 4.4.0 glaube ich auch. Das war ja der Grund, die 4.4.0 überhaupt rauszubringen.
        mod = master of disaster

        Kommentar

        Lädt...
        X