Fehlerlösungen

Aus HL7 Austria MediaWiki
Wechseln zu: Navigation, Suche
[unmarkierte Version][unmarkierte Version]
(Fehler in PHP)
(CustomTitle)
Zeile 65: Zeile 65:
 
         return true;
 
         return true;
 
     }
 
     }
 +
</pre>
 +
 +
=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 Fehlermeldung das in einer Zeile des MagicWordArray.php wurde auf der Wiki Seite dargestellt und hatten den Grund, dass die Funktion in der MagicWordArray.php veraltet war.
 +
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>
 
</pre>

Version vom 16. Mai 2018, 15:29 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.

Daher bitte niemals zwei hintereinanderfolgende - (--) am Zeilenbeginn einfügen!

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;
    }

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 Fehlermeldung das in einer Zeile des MagicWordArray.php wurde auf der Wiki Seite dargestellt und hatten den Grund, dass die Funktion in der MagicWordArray.php veraltet war. 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' );
                }