Parse error, ein kleiner Fehler der unauffindbar scheint^^.
Niels
- php
Hi,
habe folgende Fehlermeldung:
Parse error: syntax error, unexpected $end, expecting T_FUNCTION in (...)/wiki/extensions/MyExtension/MyExtension_body.php on line 85
<?php
class MyExtension extends SpecialPage {
function __construct() {
parent::__construct( 'MyExtension' );
wfLoadExtensionMessages('MyExtension');
}
function execute( $par ) {
global $wgRequest, $wgOut;
$this->setHeaders();
# Get request data from, e.g.
$param = $wgRequest->getText('param');
# Do stuff
//$output = "Hello world!";
$addWikiText = '
{{#form:action=<nowiki>http://wiki.nielswestphal.de/index.php/Special:MyExtension</nowiki>|method=POST|
{{#input: type = hidden
| name = count
| value = 2
}}
';
if (isset($_POST['count']))
{
$count = $_POST['count'];
$i = 0;
while ($count > $i)
{
$ii = $i + 1;
$value = $_POST[$ii];
if (isset($_POST[$i]))
{
$checked = 'true';
}
else
{
$checked = '';
}
$addWikiText = '
{{#input: type = checkbox
| name = '.$i.'
| value = '.$value.'
| checked = '.$checked.'
}} {{'.$value.'}}
';
$i = $i + 2;
}
}
else
{
$addWikiText .= '
{{#input: type = checkbox
| name = vehicle
| value = Bike
| checked = true
}} I have a bike
{{#input: type = checkbox
| name = bike
| value = diamond
| checked =
}} my bike is a diamond
{{#input: type = submit
| value = Submit
}}
}}
';
$wgOut->addWikiText($addWikiText);
$output .= $_POST['vehicle'].$_POST['bike'].$_POST['count'];
# Output
$wgOut->addHTML( $output );
}
}
Zeile 85 ist die letzte.
Grüße Niels
Ahoi,
du solltest schauen, dass du einen Editor nutzt, der Dir anzeigt, welche öffnende zu welcher schließenden Klammer gehört. Versuchs mal mit einer schließenden } am Ende.
Dank und Gruß,
Danke für die fielen Reaktionen, es funktioniert jetzt.
Grüße Niels
PS: Verwende Notepad++
echo $begrüßung;
Parse error: syntax error, unexpected $end, expecting T_FUNCTION in (...)/wiki/extensions/MyExtension/MyExtension_body.php on line 85
Überprüfe deine Klammernpaare! Eine konsequentere Einrückung des Quelltextes kann für mehr Übersicht sorgen.
echo "$verabschiedung $name";
Hi, wo schliesst Du denn dieses
»» class MyExtension extends SpecialPage {
wieder? Wenn Das wirklich der ganze Code ist, und Du nichts abgeschnitten hast, fehlt Dir ein Akkolade(}).
Gruß
Wizzard
PS:Nen Editor mit Syntax-Highlight benutzen
Hallo Niels,
habe folgende Fehlermeldung:
Parse error: syntax error, unexpected $end, expecting T_FUNCTION in (...)/wiki/extensions/MyExtension/MyExtension_body.php on line 85
Zeile 85 ist die letzte.
dass Du den Fehler nicht findest, liegt an Deinem (fehlenden) Coding-Style:
<?php
class MyExtension extends SpecialPage {
// [...]
function execute( $par ) {
# Anmerkung: Die Nutzung globaler Variablen in einer Klasse
# ist extrem verbesserungswürdiger Programmierstil.
global $wgRequest, $wgOut;
[...]
# Hier gibt es im Wikitext anscheinend zwei
# schliessende geschweifte Klammern zuviel
$addWikiText .= '
{{#input: type = checkbox
| name = vehicle
| value = Bike
| checked = true
}} I have a bike
{{#input: type = checkbox
| name = bike
| value = diamond
| checked =
}} my bike is a diamond
{{#input: type = submit
| value = Submit
}}
}}
';
$wgOut->addWikiText($addWikiText);
$output .= $_POST['vehicle'].$_POST['bike'].$_POST['count'];
# Output
$wgOut->addHTML( $output );
}
}
# Du möchtest die Klasse auch mit einer geschweiften Klammer schließen.
# Weil Du dies nicht tust, kommt die Fehlermeldung.
# Anständige Editoren bieten übrigens die Anzeige korrespondierender Klammernpaare.
Es ist gleichgültig, welchen Coding-Style Du verwendest - aber verwende genau einen, und diesen konsequent.
Weitere Hinweise:
Kommentare haben Code übrigens noch nie geschadet. Was macht Deine Extension? Was ist die Aufgabe der Methode execute?
Freundliche Grüße
Vinzenz
Hi,
habe folgende Fehlermeldung:
Parse error: syntax error, unexpected $end, expecting T_FUNCTION in (...)/wiki/extensions/MyExtension/MyExtension_body.php on line 85
Zeile 85 ist die letzte.dass Du den Fehler nicht findest, liegt an Deinem (fehlenden) Coding-Style
Dass er nicht wusste, dass es zumindest in die Richtung fehlerhafter Klammerung geht, wusste er hingegen deshalb nicht, weil er wohl nicht gesucht hat - zu der Meldung gibt es schliesslich einiges zu finden.
MfG ChrisB