Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Parse error: syntax error, unexpected else (T ELSE), expecting function (T FUNCTION)

Mitglied: Kepala

Kepala (Level 1) - Jetzt verbinden

31.10.2013 um 11:12 Uhr, 1454 Aufrufe, 7 Kommentare, 2 Danke

Hallo,

ich habe oben genannte Fehler, komme aber in PHP nicht sooo gut zurecht. Es waren noch einige andere Fehler drin, welche ich aber schon reparieren konnte. Ich habe mit PHPDesigner 8 mir betreffende Datei angeschau und bekomme diesen Code

01.
<?php
02.
/**
03.
 * @version		$Id: select.php 20640 2011-02-10 06:26:40Z infograf768 $
04.
 * @package		Joomla.Framework
05.
 * @subpackage	HTML
06.
 * @copyright	Copyright (C) 2005 - 2011 Open Source Matters, Inc. All rights reserved.
07.
 * @license		GNU General Public License version 2 or later; see LICENSE.txt
08.
 */
09.

10.
/**
11.
 * Utility class for creating HTML select lists
12.
 *
13.
 * @static
14.
 * @package		Joomla.Framework
15.
 * @subpackage	HTML
16.
 * @since		1.5
17.
 */
18.
abstract class JHtmlSelect
19.
{
20.
	/**
21.
	 * Default values for options. Organized by option group.
22.
	 *
23.
	 * @var array
24.
	 */
25.
	static protected $_optionDefaults = array(
26.
		'option' => array(
27.
			'option.attr' => null,
28.
			'option.disable' => 'disable',
29.
			'option.id' => null,
30.
			'option.key' => 'value',
31.
			'option.key.toHtml' => true,
32.
			'option.label' => null,
33.
			'option.label.toHtml' => true,
34.
			'option.text' => 'text',
35.
			'option.text.toHtml' => true,
36.
		),
37.
	);
38.

39.
	/**
40.
	* Generates a yes/no radio list.
41.
	*
42.
	* @param string The value of the HTML name attribute
43.
	* @param string Additional HTML attributes for the <select> tag
44.
	* @param mixed The key that is selected
45.
	* @return string HTML for the radio list
46.
	*/
47.
	public static function booleanlist(
48.
		$name, $attribs = null, $selected = null, $yes = 'JYES', $no = 'JNO', $id = false
49.
	) {
50.
		$arr = array(
51.
			JHtml::_('select.option', '0', JText::_($no)),
52.
			JHtml::_('select.option', '1', JText::_($yes))
53.
		);
54.
		return JHtml::_('serray_merge($options, $optKey)')
55.
		} else {
56.
			// Get options from the parameters
57.
			$options['option.key'] = $optKey;
58.
			$options['option.text'] = $optText;
59.
			$options['disable'] = $disable;
60.
		}
61.
		$obj = new JObject;
62.
		$obj->$options['option.key'] = $value;
63.
		$obj->$options['option.text'] = trim($text) ? $text : $value;
64.

65.
		/*
66.
		 * If a label is provided, save it. If no label is provided and there is
67.
		 * a label name, initialise to an empty string.
68.
		 */
69.
		$hasProperty = $options['option.label'] !== null;
70.
		if (isset($options['label'])) {
71.
			$labelProperty = $hasProperty ? $options['option.label'] : 'label';
72.
			$obj->$labelProperty = $options['label'];
73.
		} elseif ($hasProperty) {
74.
			$obj->$options['option.label'] = '';
75.
		}
76.

77.
		// Set attributes only if there is a property and a value
78.
		if ($options['attr'] !== null) {
79.
			$obj->$options['option.attr'] = $options['attr'];
80.
		}
81.

82.
		// Set disable only if it has a property and a value
83.
		if ($options['disable'] !== null) {
84.
			$obj->$options['option.disable'] = $options['disable'];
85.
		}
86.
		return $obj;
87.
	}
88.

89.
	/**
90.
	 * Generates the option tags for an HTML select list (with no select tag
91.
	 * surrounding the options).
92.
	 *
93.
	 * @param	array	An array of objects, arrays, or values.
94.
	 * @param	mixed	If a string, this is the name of the object variable for
95.
	 * the option value. If null, the index of the array of objects is used. If
96.
	 * an array, this is a set of options, as key/value pairs. Valid options
97.
	 * are:
98.
	 * <ul><li>Format options, {@see JHtml::$formatOptions}.
99.
	 * </li><li>groups: Boolean. If set, looks for keys with the value
100.
	 * "&lt;optgroup>" and synthesizes groups from them. Deprecated. Defaults
101.
	 * true for backwards compatibility.
102.
	 * </li><li>list.select: either the value of one selected option or an array
103.
	 * of selected options. Default: none.
104.
	 * </li><li>list.translate: Boolean. If set, text and labels are translated via
105.
	 * JText::_(). Default is false.
106.
	 * </li><li>option.id: The property in each option array to use as the
107.
	 * selection id attribute. Defaults to none.
108.
	 * </li><li>option.key: The property in each option array to use as the
109.
	 * selection value. Defaults to "value". If set to null, the index of the
110.
	 * option array is used.
111.
	 * </li><li>option.label: The property in each option array to use as the
112.
	 * selection label attribute. Defaults to null (none).
113.
	 * </li><li>option.text: The property in each option array to use as the
114.
	 * displayed text. Defaults to "text". If set to null, the option array is
115.
	 * assumed to be a list of displayable scalars.
116.
	 * </li><li>option.attr: The property in each option array to use for
117.
	 * additional selection attributes. Defaults to none.
118.
	 * </li><li>option.disable: The property that will hold the disabled state.
119.
	 * Defaults to "disable".
120.
	 * </li><li>option.key: The property that will hold the selection value.
121.
	 * Defaults to "value".
122.
	 * </li><li>option.text: The property that will hold the the displayed text.
123.
	 * Defaults to "text". If set to null, the option array is assumed to be a
124.
	 * list of displayable scalars.
125.
	 * </li></ul>
126.
	 * @param	string  The name of the object variable for the option text.
127.
	 * @param	mixed	The key that is selected (accepts an array or a string)
128.
	 * @return  string  HTML for the select list
129.
	 */
130.
	public static function options(
131.
		$arr, $optKey = 'value', $optText = 'text', $selected = null, $translate = false
132.
	) {
133.
		$options = array_merge(
134.
			JHtml::$formatOptions,
135.
			self::$_optionDefaults['option'],
136.
			array(
137.
				'format.depth' => 0,
138.
				'groups' => true,
139.
				'list.select' => null,
140.
				'list.translate' => false,
141.
			)
142.
		);
143.
		if (is_array($optKey)) {
144.
			// Set default options and overwrite with anything passed in
145.
			$options = array_merge($options, $optKey);
146.
		} else {
147.
			// Get options from the parameters
148.
			$options['option.key'] = $optKey;
149.
			$options['option.text'] = $optText;
150.
			$options['list.select'] = $selected;
151.
			$options['list.translate'] = $translate;
152.
		}
153.

154.
		$html = '';
155.
		$baseIndent = str_repeat($options['format.indent'], $options['format.depth']);
156.

157.
		foreach ($arr as $elementKey => &$element)
158.
		{
159.
			$attr = '';
160.
			$extra = '';
161.
			$label = '';
162.
			$id = '';
163.
			if (is_array($element))
164.
			{
165.
				$key = $options['option.key'] === null
166.
					? $elementKey : $element[$options['option.key']];
167.
				$text = $element[$options['option.text']];
168.
				if (isset($element[$options['option.attr']])) {
169.
					$attr = $element[$options['option.attr']];
170.
				}
171.
				if (isset($element[$options['option.id']])) {
172.
					$id = $element[$options['option.id']];
173.
				}
174.
				if (isset($element[$options['option.label']])) {
175.
					$label = $element[$options['option.label']];
176.
				}
177.
				if (isset($element[$options['option.disable']]) && $element[$options['option.disable']]) {
178.
					$extra .= ' disabled="disabled"';
179.
				}
180.
			} elseif (is_object($element)) {
181.
				$key = $options['option.key'] === null
182.
					? $elementKey : $element->$options['option.key'];
183.
				$text = $element->$options['option.text'];
184.
				if (isset($element->$options['option.attr'])) {
185.
					$attr = $element->$options['option.attr'];
186.
				}
187.
				if (isset($element->$options['option.id'])) {
188.
					$id = $element->$options['option.id'];
189.
				}
190.
				if (isset($element->$options['option.label'])) {
191.
					$label = $element->$options['option.label'];
192.
				}
193.
				if (isset($element->$options['option.disable']) && $element->$options['option.disable']) {
194.
					$extra .= ' disabled="disabled"';
195.
				}
196.
			} else {
197.
				// This is a simple associative array
198.
				$key = $elementKey;
199.
				$text = $element;
200.
			}
201.

202.
			/*
203.
			 * The use of options that contain optgroup HTML elements was
204.
			 * somewhat hacked for J1.5. J1.6 introduces the grouplist() method
205.
			 * to handle this better. The old solution is retained through the
206.
			 * "groups" option, which defaults true in J1.6, but should be
207.
			 * deprecated at some point in the future.
208.
			 */
209.
			$key = (string) $key;
210.
			if ($options['groups'] && $key == '<OPTGROUP>') {
211.
				$html .= $baseIndent . '<optgroup label="'
212.
					. ($options['list.translate'] ? JText::_($text) : $text)
213.
					. '">' . $options['format.eol'];
214.
				$baseIndent = str_repeat($options['format.indent'], ++$options['format.depth']);
215.
			} else if ($options['groups'] && $key == '</OPTGROUP>') {
216.
				$baseIndent = str_repeat($options['format.indent'], --$options['format.depth']);
217.
				$html .= $baseIndent . '</optgroup>' . $options['format.eol'];
218.
			} else {
219.
				// if no string after hypen - take hypen out
220.
				$splitText = explode(' - ', $text, 2);
221.
				$text = $splitText[0];
222.
				if (isset($splitText[1])) {
223.
					$text .= ' - ' . $splitText[1];
224.
				}
225.

226.
				if ($options['list.translate'] && !empty($label)) {
227.
					$label = JText::_($label);
228.
				}
229.
				if ($options['option.label.toHtml']) {
230.
					$label = htmlentities($label);
231.
				}
232.
				if (is_array($attr)) {
233.
					$attr = JArrayHelper::toString($attr);
234.
				} else {
235.
					$attr = trim($attr);
236.
				}
237.
				$extra = ($id ? ' id="' . $id . '"' : '')
238.
					. ($label ? ' label="' . $label . '"' : '')
239.
					. ($attr ? ' ' . $attr : '')
240.
					. $extra
241.
				;
242.
				if (is_array($options['list.select']))
243.
				{
244.
					foreach ($options['list.select'] as $val)
245.
					{
246.
						$key2 = is_object($val) ? $val->$options['option.key'] : $val;
247.
						if ($key == $key2) {
248.
							$extra .= ' selected="selected"';
249.
							break;
250.
						}
251.
					}
252.
				} elseif ((string)$key == (string)$options['list.select']) {
253.
					$extra .= ' selected="selected"';
254.
				}
255.

256.
				if ($options['list.translate']) {
257.
					$text = JText::_($text);
258.
				}
259.

260.
				// Generate the option, encoding as required
261.
				$html .= $baseIndent . '<option value="'
262.
					. ($options['option.key.toHtml'] ? htmlspecialchars($key, ENT_COMPAT, 'UTF-8') : $key) . '"'
263.
					. $extra . '>'
264.
					. ($options['option.text.toHtml'] ? htmlentities(html_entity_decode($text), ENT_COMPAT, 'UTF-8') : $text)
265.
					. '</option>'
266.
					. $options['format.eol']
267.
				;
268.
			}
269.
		}
270.

271.
		return $html;
272.
	}
273.

274.
	/**
275.
	* Generates an HTML radio list.
276.
	*
277.
	* @param array An array of objects
278.
	* @param string The value of the HTML name attribute
279.
	* @param string Additional HTML attributes for the <select> tag
280.
	* @param mixed The key that is selected
281.
	* @param string The name of the object variable for the option value
282.
	* @param string The name of the object variable for the option text
283.
	* @return string HTML for the select list
284.
	*/
285.
	public static function radiolist(
286.
		$data, $name, $attribs = null, $optKey = 'value', $optText = 'text',
287.
		$selected = null, $idtag = false, $translate = false
288.
	) {
289.
		reset($data);
290.
		$html = '';
291.

292.
		if (is_array($attribs)) {
293.
			$attribs = JArrayHelper::toString($attribs);
294.
		}
295.

296.
		$id_text = $idtag ? $idtag : $name;
297.

298.
		foreach ($data as $ind => $obj)
299.
		{
300.
			$k  = $obj->$optKey;
301.
			$t  = $translate ? JText::_($obj->$optText) : $obj->$optText;
302.
			$id = (isset($obj->id) ? $obj->id : null);
303.

304.
			$extra  = '';
305.
			$extra  .= $id ? ' id="' . $obj->id . '"' : '';
306.
			if (is_array($selected))
307.
			{
308.
				foreach ($selected as $val)
309.
				{
310.
					$k2 = is_object($val) ? $val->$optKey : $val;
311.
					if ($k == $k2)
312.
					{
313.
						$extra .= ' selected="selected"';
314.
						break;
315.
					}
316.
				}
317.
			} else {
318.
				$extra .= ((string)$k == (string)$selected ? ' checked="checked"' : '');
319.
			}
320.
			$html .= "\n\t" .'<input type="radio" name="' . $name . '"'
321.
				. ' id="' . $id_text . $k . '" value="' . $k .'"'
322.
				. ' ' . $extra . ' ' . $attribs . '/>'
323.
				. "\n\t" . '<label for="' . $id_text . $k . '"'
324.
				. ' id="' . $id_text . $k . '-lbl" class="radiobtn">'.$t.'</label>';
325.
		}
326.
		$html .= "\n";
327.
		return $html;
328.
	}
329.

330.
}
Betreffende Zeile ist hierbei die Zeile 55 mit dem Wort else. Ich komme nicht damit klar was hier noch falsch sein sollte. Kann mir dabei bitte jemand helfen?

LG Kepala
Mitglied: colinardo
31.10.2013, aktualisiert um 11:25 Uhr
Hallo Kepala,
ist ja klar, da fehlt der if (Bedingung) { Teil vor Zeile 55 und in Zeile 54 das abschließende Semikolon.
Was aber die Bedingung sein soll kann ich aus dem Code in der Schnelle nicht erschließen ...

Grüße Uwe
Bitte warten ..
Mitglied: Kepala
31.10.2013 um 11:25 Uhr
Und wie soll die Zeile dann aussehen?
Bitte warten ..
Mitglied: Bitboy
31.10.2013 um 11:29 Uhr
Hi,

ohne jetzt besonderer PHP Kenner zu sein würde ich sagen in Zeile 49 beginnt die Funktion und vor dem Else wird die mit der } schon wieder zugemacht.
Abgesehen davon fehlt dem Else auch ein If

Um das zu lösen müsste wohl zwischen Zeile 49 und 50 etwas wie If (irgendwas) { eingefügt werden.
Bitte warten ..
Mitglied: colinardo
31.10.2013 um 11:29 Uhr
Zitat von Kepala:
Und wie soll die Zeile dann aussehen?
Ich hab das Ding nicht geschrieben ! woher soll ich dann wissen welche Bedingung drin stehen soll:
Die hast du wahrscheinlich irgendwie rausgelöscht...hol dir die Original-Datei aus den Joomla-Repos fertig ....
01.
if (BEDINGUNG DIE ICH NICHT KENNE){
02.
      //MACH hier was 
03.
} else {
04.
	// Get options from the parameters
05.
	$options['option.key'] = $optKey;
06.
	$options['option.text'] = $optText;
07.
	$options['disable'] = $disable;
08.
}
Grüße Uwe
Bitte warten ..
Mitglied: Kepala
31.10.2013 um 11:33 Uhr
Das seltsame ist dass ich den Code so aus meiner Sicherung habe, die ich direkt gemacht habe bevor ich was an der Seite verändern wollte. Dann ging die Seite nicht mehr und ich habe alles neu hochgeladen und danach gings auf einmal nicht mehr.
Bitte warten ..
Mitglied: Kepala
31.10.2013 um 11:42 Uhr
So ich danke Euch liebe Leute... Habs mit Eurer Hilfe lösen können... Juhuu... Ich hab soooo weit um die ecke gedacht, dass ich nicht drauf gekommen bin mir die richtige Joomla Version nochmal runterzuladen und nur die betreffende Datei neu einzuspielen... Es scheint wieder alles zu funktionieren...
Bitte warten ..
Mitglied: colinardo
31.10.2013 um 12:07 Uhr
Dann bitte noch den Beitrag auf gelöst setzen. Merci.
Bitte warten ..
Ähnliche Inhalte
Datenbanken
SQL Syntax Error beim Escapen
gelöst Frage von ketanest112Datenbanken3 Kommentare

Hallo zusammen, nach nahezu 4 Stunden Eigenrecherche frag ich mal euch, ich komme nicht weiter. Ich möchte mit meinem ...

Datenbanken

PHP Fatal error: Uncaught Error: Call to undefined function oci connect

gelöst Frage von PlanitecXDatenbanken22 Kommentare

Hallo Zusammen, ich sitze seit Tagen am Problem das ich keine PHP Anwendung mit Anbindung zu Oracle zum laufen ...

Batch & Shell

Shell-Skript - Syntax error: Unterminated quoted string

gelöst Frage von newit1Batch & Shell12 Kommentare

Hallo Ich schreibe ein Skript das eine CSV-Datei in eine mySQL Datenbank schieben soll. Bekomme nach start des Skrips ...

Batch & Shell

Batch-Syntax

gelöst Frage von gabeBUBatch & Shell1 Kommentar

Hallo Zusammen Ich habe ein ganz kleines, Simples Batch-File geschrieben, dass mir ein Programm installieren soll, wenn es nicht ...

Neue Wissensbeiträge
Hyper-V
Setup VM W2016 startet nicht in Hyper-V 2016
Erfahrungsbericht von keine-ahnung vor 1 TagHyper-V4 Kommentare

Moin, sitze gerade über meinem neuen Server und versuche, die VM auf den Host zu prügeln. Jetzt wollte ich ...

Server-Hardware

HPE Proliant ML350P Gen8 Probleme mit Zugriff auf Raid-Volumes

Erfahrungsbericht von goscho vor 1 TagServer-Hardware1 Kommentar

Hallo Leute, das Problemgerät: HPE ML350P G8 Windows Server 2012R2 HyperV-Host 8 x 300 GB 10K SAS HDD (1 ...

Humor (lol)

"Linux und 5 Gründe Warum man kein Windows verwenden sollte sondern Ubuntu Linux"

Information von Snowbird vor 3 TagenHumor (lol)8 Kommentare

Gerade gefunden. Ja, ist etwas älter, aber irgendwie lustig?

Linux

"Warum Linux in einer vernetzten Welt einfach keinen Komfort bietet!"

Tipp von Snowbird vor 3 TagenLinux13 Kommentare

Ein interessanter Einblick warum Linux nichts für Geräteübergreifende Arbeit ist :)

Heiß diskutierte Inhalte
Microsoft
Windows 10 - Kombination von lokalen Benutzerkonten und Benutzern aus einer Domäne
Frage von PappnaseVxVVMicrosoft21 Kommentare

Hi, würde gerne folgendes realisieren, von dem ich gern wüsste, ob es geht. Ich habe einen Raum mit 3 ...

Grafikkarten & Monitore
Grafikkarten Angebot auf Amazon
gelöst Frage von NudellordGrafikkarten & Monitore21 Kommentare

Hallo Community, ich suche eine neue Grafikkarte und bin auf die Nvidea Gforce GTX 1080 ti gestoßen. Und dabei ...

Hyper-V
Keine Netzwerkverbindung W2016 VM
gelöst Frage von keine-ahnungHyper-V19 Kommentare

Moin, ich verliere gleich meine contenance ;-). Ich versuche gerade, auf einem Hyper-V 2016 GUI eine W2016-VM (Generation 2 ...

Batch & Shell
Powershell - Webseite auslesen und Abspeichern ein paar Probleme
gelöst Frage von kime203Batch & Shell18 Kommentare

Hallo alle miteinander, ich hab die Aufgabe eine Webseite auszulesen um Einsatzdaten der Feuerwehr daraus zu gewinnen. Das habe ...