Fehlerlösungen

Aus HL7 Austria MediaWiki
Wechseln zu: Navigation, Suche
[unmarkierte Version][unmarkierte Version]
(Internal Server Error)
 
(14 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
Diese Seite dient zur Erklärung von verschiedenen Fehlercodes die behoben worden sind.
+
{{#CustomTitle:Fehlerlösungen}}
 +
Diese Seite dient zur Erklärung von verschiedensten Fehlern, die aufgetreten und behoben worden sind.
 +
 
 +
=Fehler=
 +
==Internal Server Error==
 +
Wenn beim Abspeichern eines Beitrag der Internal Server Error auftritt, kann der Beitrag nicht gespeichert werden, da die Seite kollabiert.
 +
 
 +
Der Fehlergrund hierfür liegt in zwei hintereinanderfolgenden -, die am Zeilenbeginn stehen.
 +
{{BeginYellowBox}}
 +
'''Niemals zwei hintereinanderfolgende - (--) am Zeilenbeginn einfügen!'''
 +
{{EndYellowBox}}
 +
Fehlerquelle entdeckt am 16.05.2018.
  
=Fehler in PHP=
 
 
==CustomTitle==
 
==CustomTitle==
 
Mit der Extension CustomTitle trat das Problem auf, dass im Text immer wieder Codeteile dargestellt wurden, wie z.B. xxx-CustomPageTitleStart-xxxDoel en scopexxx-CustomPageTitleEnd-xxx
 
Mit der Extension CustomTitle trat das Problem auf, dass im Text immer wieder Codeteile dargestellt wurden, wie z.B. xxx-CustomPageTitleStart-xxxDoel en scopexxx-CustomPageTitleEnd-xxx
Zeile 58: Zeile 68:
 
     }
 
     }
 
</pre>
 
</pre>
 +
Behoben am 16.05.2018.
 +
 +
=Warnungen=
 +
Warnungen stehen am Beginn der Seite und sind keine Errors, die eine Seite lahmlegen. Warnungen sollten trotzdem ausgebessert werden, da Funktionen ansonsten nicht richtig ausgeführt werden.
 +
 +
==MagicWordArray.php==
 +
Die Warnung gab an, dass eine Funktion in der MagicWordArray.php veraltet war.
 +
<pre> Fehlercode: The each() function is deprecated. This message will be suppressed for further calls in /var/www/vhosts/hl7.at/wiki.hl7.at/MagicWordArray.php on line 206</pre>
 +
Fehler:
 +
<pre>
 +
public function parseMatch( $m ) {
 +
                                reset( $m );
 +
                                while ( list( $key, $value ) = each( $m ) ) {
 +
                                              if ( $key === 0 || $value === '' ) {
 +
                                                              continue;
 +
                                              }
 +
                                …
 +
                }
 +
</pre>
 +
Lösung:
 +
<pre>
 +
public function parseMatch( $m ) {
 +
                                reset( $m );
 +
                                while ( ( $key = key( $m ) ) !== null ) {
 +
                                              $value = current( $m );
 +
                                              next( $m );
 +
                                              if ( $key === 0 || $value === '' ) {
 +
                                                              continue;
 +
                                              }
 +
                                              $parts = explode( '_', $key, 2 );
 +
                                              if ( count( $parts ) != 2 ) {
 +
                                                              // This shouldn't happen
 +
                                                              // continue;
 +
                                                              throw new MWException( __METHOD__ . ': bad parameter name' );
 +
                                              }
 +
                                              list( /* $synIndex */, $magicName ) = $parts;
 +
                                              $paramValue = next( $m );
 +
                                              return [ $magicName, $paramValue ];
 +
                                }
 +
                                // This shouldn't happen either
 +
                                throw new MWException( __METHOD__ . ': parameter not found' );
 +
                }
 +
</pre>
 +
Behoben am 09.04.2018.
 +
 +
==count() in FRUserActivity.php==
 +
Der Fehler in der Funktion count() in FRUserActivity.php (liegt in der Extension FlaggedRevision/backend) konnte durch ein Update des PHP behoben werden.
 +
 +
<pre>Fehlercode: count(): Parameters Array or an object that implements Countable in /var/www/vhosts/hl7.at/wiki.hl7.at/extensions/FlaggedRevs/backend/FRUserActivity.php</pre>
 +
Behoben am 09.04.2018.

Aktuelle Version vom 17. Mai 2018, 16:33 Uhr

Diese Seite dient zur Erklärung von verschiedensten Fehlern, die aufgetreten und behoben worden sind.

1 Fehler

1.1 Internal Server Error

Wenn beim Abspeichern eines Beitrag der Internal Server Error auftritt, kann der Beitrag nicht gespeichert werden, da die Seite kollabiert.

Der Fehlergrund hierfür liegt in zwei hintereinanderfolgenden -, die am Zeilenbeginn stehen.

Niemals zwei hintereinanderfolgende - (--) am Zeilenbeginn einfügen!

Fehlerquelle entdeckt am 16.05.2018.

1.2 CustomTitle

Mit der Extension CustomTitle trat das Problem auf, dass im Text immer wieder Codeteile dargestellt wurden, wie z.B.

Um dies zu Unterbinden wurden in der CustomTitle.php die Funktion onOutputPageBeforeHTML verändert.

vorheriger Code:

function onOutputPageBeforeHTML(&$out, &$text)
    {
        if (($found = strpos($text, 'xxx-CustomTitleStart-xxx')) !== false) {
            if (preg_match("//", $text, $matches)) {
                $this->customTitle = $matches[1];
                $text = str_replace($matches[0], "", $text);
            }
        }

        if (($found = strpos($text, 'xxx-CustomPageTitleStart-xxx')) !== false) {
            if (preg_match("//", $text, $matches)) {
                $this->customPageTitle = $matches[1];
                $text = str_replace($matches[0], "", $text);
            }
        }

        return true;
    }

Lösung:

   function onOutputPageBeforeHTML(&$out, &$text)
    {
        if (($found = strpos($text, 'xxx-CustomTitleStart-xxx')) !== false) {
            if (preg_match("//", $text, $matches)) {
                $this->customTitle = $matches[1];
                $text = str_replace($matches[0], "", $text);
                // replace any remaining occurrences
                while (preg_match("//", $text, $matches)) {
                    $text = str_replace($matches[0], "", $text);
                }
            }
        }
 
        if (($found = strpos($text, 'xxx-CustomPageTitleStart-xxx')) !== false) {
            if (preg_match("//", $text, $matches)) {
                $this->customPageTitle = $matches[1];
                $text = str_replace($matches[0], "", $text);
                // replace any remaining occurrences
                while (preg_match("//", $text, $matches)) {
                    $text = str_replace($matches[0], "", $text);
                }
            }
        }
 
        return true;
    }

Behoben am 16.05.2018.

2 Warnungen

Warnungen stehen am Beginn der Seite und sind keine Errors, die eine Seite lahmlegen. Warnungen sollten trotzdem ausgebessert werden, da Funktionen ansonsten nicht richtig ausgeführt werden.

2.1 MagicWordArray.php

Die Warnung gab an, dass eine Funktion in der MagicWordArray.php veraltet war.

 Fehlercode: The each() function is deprecated. This message will be suppressed for further calls in /var/www/vhosts/hl7.at/wiki.hl7.at/MagicWordArray.php on line 206

Fehler:

public function parseMatch( $m ) {
                                reset( $m );
                                while ( list( $key, $value ) = each( $m ) ) {
                                               if ( $key === 0 || $value === '' ) {
                                                               continue;
                                               }
                                …
                }

Lösung:

public function parseMatch( $m ) {
                                reset( $m );
                                while ( ( $key = key( $m ) ) !== null ) {
                                               $value = current( $m );
                                               next( $m );
                                               if ( $key === 0 || $value === '' ) {
                                                               continue;
                                               }
                                               $parts = explode( '_', $key, 2 );
                                               if ( count( $parts ) != 2 ) {
                                                               // This shouldn't happen
                                                               // continue;
                                                               throw new MWException( __METHOD__ . ': bad parameter name' );
                                               }
                                               list( /* $synIndex */, $magicName ) = $parts;
                                               $paramValue = next( $m );
                                               return [ $magicName, $paramValue ];
                                }
                                // This shouldn't happen either
                                throw new MWException( __METHOD__ . ': parameter not found' );
                }

Behoben am 09.04.2018.

2.2 count() in FRUserActivity.php

Der Fehler in der Funktion count() in FRUserActivity.php (liegt in der Extension FlaggedRevision/backend) konnte durch ein Update des PHP behoben werden.

Fehlercode: count(): Parameters Array or an object that implements Countable in /var/www/vhosts/hl7.at/wiki.hl7.at/extensions/FlaggedRevs/backend/FRUserActivity.php

Behoben am 09.04.2018.