joomla 3.1.5 error notice unexpected end

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

St p

st p

26/08/2013 22:14:18
Quote Anchor link
welkom mensen van het forum.
Mensen van een voetbal vereniging vroegen aan me of ik de beheerder wilden worden van hun site.
Ik heb hierop ja gezegt.

met mijn enig php ervaring ben ik er achtergekomen dat de vereniging helemaal niks heeft gedaan aan bugs verhelpen. Dus ging ik kijken in de ftp server en kwam ik veel script fouten tegen.
Verder gebruikt de vereniging joomla 3.1.5 .

verolgens ben ik ook @ apen staartje tegen gekomen in het script.
De voetbal site onderdrukt fouten want er staan in sommige documenten een @ staartje terwijl het geen ccs bestand is. maar een php bestand waar alleen php script in voor mag komen.
verder heb ik ook een email gestuurd naar joomla.org.

het zijn er eigenlijk zoveel. Verder heb ik een paar documenten verbeterd maar dat verorzaakt een fout in een andere map of bestand. de webserver geeft de fout aan als
error notice unexpected end aan bij het hele script



Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
<?php
/**
 * @package    Joomla.Administrator
 *
 * @copyright  Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved.
 * @license    GNU General Public License version 2 or later; see LICENSE.txt
 */


if (version_compare(PHP_VERSION, '5.3.1', '<'))
{

    die('Your host needs to use PHP 5.3.1 or higher to run this version of Joomla!');
}


/**
 * Constant that is checked in included files to prevent direct access.
 * define() is used in the installation folder rather than "const" to not error for PHP 5.2 and lower
 */

define('_JEXEC', 1);

if (file_exists(__DIR__ . '/defines.php'))
{

    include_once __DIR__ . '/defines.php';
}


if (!defined('_JDEFINES'))
{

    define('JPATH_BASE', __DIR__);
    require_once JPATH_BASE.'/includes/defines.php';
}


require_once JPATH_BASE.'/includes/framework.php';
require_once JPATH_BASE.'/includes/helper.php';
require_once JPATH_BASE.'/includes/toolbar.php';

// Mark afterLoad in the profiler.
JDEBUG ? $_PROFILER->mark('afterLoad') : null;

// Instantiate the application.
$app = JFactory::getApplication('administrator');

// Initialise the application.
$app->initialise(
    array('language' => $app->getUserState('application.lang'))
);


// Test for magic quotes
if (get_magic_quotes_gpc())
{

    $lang = JFactory::getLanguage();
    if ($lang->hasKey('JERROR_MAGIC_QUOTES'))
    {

        JFactory::getApplication()->enqueueMessage(JText::_('JERROR_MAGIC_QUOTES'), 'Error');
    }

    else
    {
        JFactory::getApplication()->enqueueMessage('Your host needs to disable magic_quotes_gpc to run this version of Joomla!', 'Error');
    }
}


// Mark afterIntialise in the profiler.
JDEBUG ? $_PROFILER->mark('afterInitialise') : null;

// Route the application.
$app->route();

// Mark afterRoute in the profiler.
JDEBUG ? $_PROFILER->mark('afterRoute') : null;

// Dispatch the application.
$app->dispatch();

// Mark afterDispatch in the profiler.
JDEBUG ? $_PROFILER->mark('afterDispatch') : null;

// Render the application.
$app->render();

// Mark afterRender in the profiler.
JDEBUG ? $_PROFILER->mark('afterRender') : null;

// Return the response.
echo $app;
[
/code]





[
code]
[
code]<?php
/**
 * @package    Joomla.Administrator
 *
 * @copyright  Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved.
 * @license    GNU General Public License version 2 or later; see LICENSE.txt
 */


defined('_JEXEC') or die;

/*
 * Joomla! system checks.
 */


@ini_set('magic_quotes_runtime', 0);

/*
 * Installation check, and check on removal of the install directory.
 */

if (!file_exists(JPATH_CONFIGURATION.'/configuration.php') || (filesize(JPATH_CONFIGURATION.'/configuration.php') < 10) || file_exists(JPATH_INSTALLATION.'/index.php'))
{

    header('Location: ../installation/index.php');
    exit();
}


//
// Joomla system startup.
//

// System includes.

require_once JPATH_LIBRARIES.'/import.legacy.php';

JError::setErrorHandling(E_NOTICE, 'message');
JError::setErrorHandling(E_WARNING, 'message');
JError::setErrorHandling(E_ERROR, 'message', array('JError', 'customErrorPage'));

// Botstrap the CMS libraries.
require_once JPATH_LIBRARIES.'/cms.php';

// Pre-Load configuration.
ob_start();
require_once JPATH_CONFIGURATION.'/configuration.php';
ob_end_clean();

// System configuration.
$config = new JConfig;

// Set the error_reporting
switch ($config->error_reporting)
{
    case
'default':
    case
'-1':
        break;

    case
'none':
    case
'0':
        error_reporting(0);
        break;

    case
'simple':
        error_reporting(E_ERROR | E_WARNING | E_PARSE);
        ini_set('display_errors', 1);
        break;

    case
'maximum':
        error_reporting(E_ALL);
        ini_set('display_errors', 1);
        break;

    case
'development':
        error_reporting(-1);
        ini_set('display_errors', 1);
        break;

    default:

        error_reporting($config->error_reporting);
        ini_set('display_errors', 1);
        break;
}


define('JDEBUG', $config->debug);

unset($config);

/*
 * Joomla! framework loading.
 */

// System profiler.

if (JDEBUG)
{

    $_PROFILER = JProfiler::getInstance('Application');
}
[
/code]

[
quote]
hierboven hebben ze de ?>

vergeten maar ook een @  als ik dit weg haal krijg ik weer de error notice unexpected end.
[/quote]


<?php
/**
 * @package    Joomla.Administrator
 *
 * @copyright  Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved.
 * @license    GNU General Public License version 2 or later; see LICENSE.txt
 */


defined('_JEXEC') or die;

//Global definitions.
//Joomla framework path definitions.

$parts = explode(DIRECTORY_SEPARATOR, JPATH_BASE);
array_pop($parts);

//Defines.
define('JPATH_ROOT',           implode(DIRECTORY_SEPARATOR, $parts));
define('JPATH_SITE',          JPATH_ROOT);
define('JPATH_CONFIGURATION', JPATH_ROOT);
define('JPATH_ADMINISTRATOR', JPATH_ROOT . '/administrator');
define('JPATH_LIBRARIES',     JPATH_ROOT . '/libraries');
define('JPATH_PLUGINS',       JPATH_ROOT . '/plugins');
define('JPATH_INSTALLATION',  JPATH_ROOT . '/installation');
define('JPATH_THEMES',        JPATH_BASE . '/templates');
define('JPATH_CACHE',         JPATH_ROOT . '/cache');
define('JPATH_MANIFESTS',     JPATH_ADMINISTRATOR . '/manifests');
[
/code]



[
code]
[
code]<?php
/**
 * @package     Joomla.Administrator
 * @subpackage  com_login
 *
 * @copyright   Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 */


defined('_JEXEC') or die;

$input = JFactory::getApplication()->input;
$task = $input->get('task');
if ($task != 'login' && $task != 'logout')
{

    $input->set('task', '');
    $task = '';
}


$controller = JControllerLegacy::getInstance('Login');
$controller->execute($task);
$controller->redirect();
[
/code]




[
code]
[
code]<?php
/**
 * @package     Joomla.Administrator
 * @subpackage  com_login
 *
 * @copyright   Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 */


defined('_JEXEC') or die;

/**
 * Login Controller
 *
 * @package     Joomla.Administrator
 * @subpackage  com_login
 * @since       1.5
 */

class LoginController extends JControllerLegacy
{
    /**
     * Typical view method for MVC based architecture
     *
     * This function is provide as a default implementation, in most cases
     * you will need to override it in your own controllers.
     *
     * @param   boolean            If true, the view output will be cached
     * @param   array  An array of safe url parameters and their variable types, for valid values see {@link JFilterInput::clean()}.
     * @return  JController        This object to support chaining.
     * @since   1.5
     */

    public function display($cachable = false, $urlparams = false)
    {

        // Special treatment is required for this component, as this view may be called
        // after a session timeout. We must reset the view and layout prior to display
        // otherwise an error will occur.


        $this->input->set('view', 'login');
        $this->input->set('layout', 'default');

        parent::display();
    }


    /**
     * Method to log in a user.
     *
     * @return  void
     */

    public function login()
    {

        // Check for request forgeries.
        JSession::checkToken('request') or jexit(JText::_('JINVALID_TOKEN'));

        $app = JFactory::getApplication();

        $model = $this->getModel('login');
        $credentials = $model->getState('credentials');
        $return = $model->getState('return');

        $result = $app->login($credentials, array('action' => 'core.login.admin'));

        if (!($result instanceof Exception))
        {

            $app->redirect($return);
        }


        parent::display();
    }


    /**
     * Method to log out a user.
     *
     * @return  void
     */

    public function logout()
    {

        JSession::checkToken('request') or jexit(JText::_('JInvalid_Token'));

        $app = JFactory::getApplication();

        $userid = $this->input->getInt('uid', null);

        $options = array(
            'clientid' => ($userid) ? 0 : 1
        );

        $result = $app->logout($userid, $options);

        if (!($result instanceof Exception))
        {

            $model     = $this->getModel('login');
            $return = $model->getState('return');
            $app->redirect($return);
        }


        parent::display();
    }
}

?>



Ik wil graag weten wat je met de de @ini_set moet doen want als ik het verander in ini_set dan krijg ik error notice unexpected end

[modedit=Bewerkt]
De juiste code-tags gebruikt voor het codeblok. [s]Echter deze vreemde codeopmaak is een foutje van de site. Het is inmiddels gemeld.....[/s] [b]Bug gefixed[/b]
[/modedit]
Gewijzigd op 27/08/2013 11:30:52 door - Ariën -
 
PHP hulp

PHP hulp

27/10/2021 15:58:39
 
Ceasar Feijen

Ceasar Feijen

26/08/2013 22:20:24
Quote Anchor link
Ja en wat is nu de vraag ?
 
Frank Nietbelangrijk

Frank Nietbelangrijk

26/08/2013 22:24:30
Quote Anchor link
de php sluit tag wordt vaker weggelaten. dit voorkomt ongewilde output als gevolg van bijv een enter aan het einde.
 
- Ariën -
Beheerder

- Ariën -

26/08/2013 22:27:36
Quote Anchor link
Die sluittag is blijkbaar onnodig verplicht in het forum bij gebruik van de code-tag, vandaar de merkwaardige mark-up van je bericht.

In PHP mag je die sluittag overigens gewoon weglaten. Op deze manier worden de kansen op 'Headers already sent' verkleind, doordat er geen spatie als output aan het eind van een script kan staan.
 
Wouter J

Wouter J

26/08/2013 22:37:14
Quote Anchor link
Zo lek als een mandje refereerd in de computer wereld altijd naar veiligheids risico's.

Verder vraag ik me af of jou bugs wel echt bugs zijn, of dat je gewoon niet begrijpt wat je aan het doen bent. Dit is niet erg, het is alleen wel erg dat je dan meteen zo geïrriteerd op het forum overkomt.

Voor bugs is er een bugtracker, logisch dus dat op emails niet wordt reageert.

Als laatste is de eind ?> niet nodig, het is zelfs de standaard om deze weg te laten wanneer een bestand alleen PHP code bevat. Als dit een bug is, kun je dan misschien nog een bug vertellen?
 
Ozzie PHP

Ozzie PHP

26/08/2013 22:50:45
Quote Anchor link
Tja, inderdaad een grappig topic... het weglaten van de sluitingstag is een bewuste keuze en dus geen bug.

Waarschijnlijk heb je het over deze apenstaart:

@ini_set('magic_quotes_runtime', 0);

Die staat daar met een reden.

Ik heb zo het idee dat je ergens de klok hebt horen luiden, maar niet weet waar de klepel hangt. Misschien is het handiger om jezelf wat meer te verdiepen in PHP voordat je gaat zeggen dat iets "zo lek is als een mandje".

Overigens wil ik hiermee niet zeggen dat er geen bugs in kunnen zitten, maar de punten die jij aanhaalt zijn geen bugs.

Toevoeging op 26/08/2013 23:14:27:

PS Ik zie dat je zojuist je openingsbericht hebt aangepast, maar dat ziet niemand. Als je een vraag hebt stel deze dan even hieronder.
 
Bart V B

Bart V B

26/08/2013 23:25:55
Quote Anchor link
Op zich wel grappig dat ze die erin hebben gezet terwijl vanaf 5.3.0 DEPRECATED is. :)
Ze geven toch bovenin toch aan dat de php versie 5.3.1 toch echt nodig is om dit te kunnen draaien.
Dus die regel kan je gewoon zo vervangen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
//@ini_set('magic_quotes_runtime', 0);
?>

Staat ie er toch mooi in, en heb je er geen last meer van.
notice unexpected end
Betekend gewoon dat je een haakje niet afsluit.
Dus je openings haakjes ({) en je sluit haakjes (}) tellen..
Gewijzigd op 26/08/2013 23:28:06 door Bart V B
 
St p

st p

26/08/2013 23:38:23
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
// Pre-Load configuration.
ob_start();
require_once JPATH_CONFIGURATION.'/configuration.php';
ob_end_clean();


Kan iemand mij uit leggen hoe je dit verandend in

start session() en session destroy

of is dit niet verstandig
 
Ozzie PHP

Ozzie PHP

26/08/2013 23:43:24
Quote Anchor link
Misschien kan je eerst even reageren op de antwoorden die de mensen gegeven hebben naar aanleiding van jouw eerste bericht. Lijkt me wel zo netjes. Dan kijken we daarna weer verder ;)
 
Bart V B

Bart V B

26/08/2013 23:44:54
Quote Anchor link
?? Begrijp je probleem niet helemaal.
ob_start() en ob_end_clean() is voor ouput buffering.
Om bijvoorbeeld de befaamde header already send op te vangen.

Waarom wil je dat veranderen naar een session_start() en session_destroy()?
Als je die nodig hebt zet je hem onder ob_start().
Hoewel dit niet echt een nette methode is natuurlijk.
 
St p

st p

27/08/2013 00:16:43
Quote Anchor link
ik heb ook met een tool veel kwetsbaarheden gevonden.
dus vandaar dat ik misschien te snel deze topic erop gezet heb.
het programma heet youtube joomscan in action

Hiermee kwam ik er achter dat er iets niet klopt met de website.

nog bedankt voor jullie tips,
en misschien kwam ik een beetje drammerig over maar ik wil het ook goed en snel de fouten eruit halen want de updater van joomla doet ook niet alles wat er er van verwacht.
nog bedankt bart voor de uitleg over de output.


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
//@ini_set('magic_quotes_runtime', 0);
?>

nog een vraag je bart hoe moet ik dit laten werken want // betekend dat php het niet op moet nemen in de functie dus dan slaat php het over.
kun je net zo goed weg laten. of zit ik dan helemaal mis met mijn gedachten.
Gewijzigd op 27/08/2013 00:28:11 door st p
 
- Ariën -
Beheerder

- Ariën -

27/08/2013 00:36:01
Quote Anchor link
die // weghalen, en het wordt uitgevoerd.
Als je geen zekerheid hebt over de veiligheid van Joomla, dan kan je deze setting op 1 zetten.
Onthoud wel dat magic_quotes in PHP 5.4 definitief eruit zijn, dan is het goed updaten van je pakket zeker aan te bevelen.
 
Ozzie PHP

Ozzie PHP

27/08/2013 00:37:48
Quote Anchor link
// wil zeggen dat het commentaarregels zijn

Door // ergens voor te zetten wordt het als een commentaarregel gezien en dus genegeerd. Je kan het ook weghalen, maar omdat het niet je eigen code is kun je ervoor kiezen om het uit te commentariseren. Zo kun je naderhand nog wel zien welke code er stond. Als je het weghaalt is het voor altijd weg.

Als je Joomla niet vertrouwt dan moet je het ombouwen naar iets anders.
 
St p

st p

27/08/2013 00:45:21
Quote Anchor link
ozzie php

Ik heb een vraagje de een zegt dat @ini_set('magic_quotes_runtime', 0);
met @ en de ander zegt zonder wat is het nu.

ik heb ook de topic op phphulp gevolgd en de topic is beginnersfouten tegen gaan.Daarin staat ook dat de ini_set geen @ nodig heef.vervolgens staat er ook dat het apenstaartje de fout onder drukt. dus als het fout gaat dan geeft het script geen fout!!.

Kun je misschien iets duidelijker zijn met een reden dat de apenstaartje ervoor moet staan??.

Toevoeging op 27/08/2013 00:54:10:

Ombouwen gaat heel moeizaam want de vereniging heeft een abonnement op de plugings van joomla.
en er staan meer dan 100 artikelen op die verhuist moeten worden en de vereniging heeft maar 3 ict mensen met mij er bij geteld dus het grote migratie naar een andere cms syteem is een grote opperatie vooral als je bedenkt dat er maar 3 mensen het draaiende moeten houden en de verslaggevers moeten opeens weer naar school om het ict cms weer opnieuw te leren.
 
Bart V B

Bart V B

27/08/2013 05:22:46
Quote Anchor link
Een @ onderdrukt inderdaad foutmeldingen.
Maar wat interessanter is heb je die magic_quotes_runtime nodig?
In de 3.1.5 versie, zoals in je code staat aangegeven niet.
Want:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
if (version_compare(PHP_VERSION, '5.3.1', '<'))
{

    die('Your host needs to use PHP 5.3.1 or higher to run this version of Joomla!');
}

?>

Als ik dan in de manual ga kijken: http://php.net/manual/en/function.set-magic-quotes-runtime.php
Quote:
Warning
This function has been DEPRECATED as of PHP 5.3.0 and REMOVED as of PHP 5.4.0.

Dat wil zeggen dat hij "liever niet meer gebruikt moet worden".
Als jij die @ weghaalt, dan begint php waarschijnlijk te roepen dat er een deprecated function word aangeroepen.

Dus als hij dan toch "liever niet" gebruikt dient te worden, dan kan je dus deze eruit halen.
Dat eruit halen moet je dan niet letterlijk doen, maar een commentaar regel van maken.
Stel nou dat Joomla het toch nog ergens voor nodig heeft, dan kan je gewoon die // weer weghalen.
Dat is voor je mede programmeurs wel zo prettig om te weten WAT er veranderd is.
Daarom een commentaar regel ervan maken en niet helemaal weghalen.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.