[PHP] Parse error in URI

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Wim Leers
  • Registratie: Januari 2004
  • Laatst online: 09-09 08:00
Ik ben aan het werken aan een downloadsysteem. Op een gegeven moment wordt er dergelijke code gegenereerd:

code:
1
require(http://www.domain.abc/folder/file.php?arg=MXx8lgsfDh8fHwwfHx8bk465XlzcWwxkNi5wdDSb3d3ZWIuY29tsfHx8YXJrYfW55hc29m6dHx8fFcxYdfs0g5d1o0NjkXl3SmxpNTY0T0hHbkpMfHx8YXJrYW5hc29mdHx8fGFzX2Rvd25sb2Fkc3x8fGFzX2NhcGFjaXR5sfHx8MXx8sffDE5MDU3NDQ0OsdDI=);

(gegenereerd: het staat dus niet zo in de bron...)

Gisteren had ik het hele systeem leuk aan het werken, maar heb ik nog extra functionaliteit toegevoegd, zonder eerst een back-up te maken. Maar nu krijg ik dus een wazige fout:

code:
1
Parse error: parse error in http://www.domain.abc/folder/file.php?arg=MXx8lgsfDh8fHwwfHx8bk465XlzcWwxkNi5wdDSb3d3ZWIuY29tsfHx8YXJrYfW55hc29m6dHx8fFcxYdfs0g5d1o0NjkXl3SmxpNTY0T0hHbkpMfHx8YXJrYW5hc29mdHx8fGFzX2Rvd25sb2Fkc3x8fGFzX2NhcGFjaXR5sfHx8MXx8sffDE5MDU3NDQ0OsdDI= on line 3

(dit is dus een fictieve URI...

Mijn vragen:
-hoe kan ik daar nu een parse error krijgen als ik dat gisteren niet kreeg, de encryptie is niet veranderd
-hoe kan er een parse error zijn op regel 3 van een URI? (Het ligt niet aan file.php.)

Acties:
  • 0 Henk 'm!

  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

Zou je geen "" om die url heenzetten?

All my posts are provided as-is. They come with NO WARRANTY at all.


Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

(jarig!)
Nog afgezien van het feit dat het waarschijnlijk niet al te verstandig is om require/include te gebruiken voor het downloaden van bestanden...

Acties:
  • 0 Henk 'm!

  • Wim Leers
  • Registratie: Januari 2004
  • Laatst online: 09-09 08:00
@CyBeR: quotes zijn niet nodig.

@ACM: dit is geen download, dit is een load balanced download systeem waarbij dmv bovenstaande code php code wordt geïnclude die enkele geëncrypteerde variabelen bevat waarmee de status van een server wordt duidelijk gemaakt. Dit is een omweg die ik moest maken omdat sommige servers geen remote MySQL access toestaan (laat mij nu net deze pech hebben |:( ).

Acties:
  • 0 Henk 'm!

  • Wim Leers
  • Registratie: Januari 2004
  • Laatst online: 09-09 08:00
Ik heb de fout gevonden: er zat dus een syntax fout in de gegenereerde php code. Toch bedankt!

Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 14:53

MueR

Admin Tweakers Discord

is niet lief

Parse errors zijn altijd tikfoutjes.

Anyone who gets in between me and my morning coffee should be insecure.


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Bashrat schreef op zondag 08 januari 2006 @ 10:28:
@CyBeR: quotes zijn niet nodig.
Welles. Zet maar eens error_reporting(E_ALL); bovenaan je script. Zelfs als het niet verplicht is, dan nog is het wel netjes om het wel te doen.
@ACM: dit is geen download, dit is een load balanced download systeem waarbij dmv bovenstaande code php code wordt geïnclude die enkele geëncrypteerde variabelen bevat waarmee de status van een server wordt duidelijk gemaakt. Dit is een omweg die ik moest maken omdat sommige servers geen remote MySQL access toestaan (laat mij nu net deze pech hebben |:( ).
Leuk, maar waarom neem je daarvoor require? file_get_contents is hiervoor juist gemaakt.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Peter
  • Registratie: Januari 2005
  • Laatst online: 13-09 17:10
hehe, Quotes zijn zeer zeker wel nodig. Bij require en include moet/mag je geen argumenten meegeven.

Fout:
PHP:
1
include( "bestand.php?user=96996" );


Goed:
PHP:
1
2
$_GET['user'] = 96996;
include( "bestand.php" );


Zoals NMe al zei, via file_get_contents mag dit wel en dat is ook de functie die je hoort te gebruiken.

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

@.Peter: die code die je bestempelt als "goed" werkt in dit geval ook niet, aangezien er een externe server aangesproken wordt. Er wordt dus überhaupt geen PHP-code geïnclude, maar uitvoer (HTML?), en dan heb je niet veel aan $_GET. Vandaar ook dat ik file_get_contents noem, welke wèl met een querystring overweg kan. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

Verwijderd

-NMe- schreef op zondag 08 januari 2006 @ 14:29:
@.Peter: die code die je bestempelt als "goed" werkt in dit geval ook niet, aangezien er een externe server aangesproken wordt. Er wordt dus überhaupt geen PHP-code geïnclude, maar uitvoer (HTML?), en dan heb je niet veel aan $_GET. Vandaar ook dat ik file_get_contents noem, welke wèl met een querystring overweg kan. :)
Er wordt wel php geinclude, aangezien het remote bestand php genereerd.

Overigens is het door Peter als "goed" bestempelde ook niet 100% perfect. Include en soortgenoten include_once, require en require_once zijn language constructs en kunnen (moeten?) derhalve aangeroepen worden zonder haakjes:

include 'bestand.php';

-r-

Acties:
  • 0 Henk 'm!

  • Skaah
  • Registratie: Juni 2001
  • Laatst online: 16-09 18:38
Verwijderd schreef op zondag 08 januari 2006 @ 14:57:
[...]


Er wordt wel php geinclude, aangezien het remote bestand php genereerd.

Overigens is het door Peter als "goed" bestempelde ook niet 100% perfect. Include en soortgenoten include_once, require en require_once zijn language constructs en kunnen (moeten?) derhalve aangeroepen worden zonder haakjes:

include 'bestand.php';

-r-
Dit is niet verplicht, maar optioneel. list() is ook een languageconstruct, maar moet verplicht met haakjes. Dus je argument houdt ook niet altijd stand.

[ Voor 15% gewijzigd door Skaah op 08-01-2006 18:30 ]


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Verwijderd schreef op zondag 08 januari 2006 @ 14:57:
Er wordt wel php geinclude, aangezien het remote bestand php genereerd.
Nee hoor, er wordt gewoon HTML geïnclude, tenzij PHP op de betreffende server niet geïnstalleerd staat.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

Verwijderd

-NMe- schreef op zondag 08 januari 2006 @ 19:06:
[...]

Nee hoor, er wordt gewoon HTML geïnclude, tenzij PHP op de betreffende server niet geïnstalleerd staat.
Wat bazel je nou?

Het remote bestand genereerd php. Oftewel de output is php. Mini voorbeeldje:
code:
1
2
3
<?php
  echo '<'.'?php echo "blaat"; ?'.'>';
?>


Als je dat vervolgens remote include, include je dus php en geen html.

Acties:
  • 0 Henk 'm!

Verwijderd

Skaah schreef op zondag 08 januari 2006 @ 18:30:
[...]


Dit is niet verplicht, maar optioneel. list() is ook een languageconstruct, maar moet verplicht met haakjes. Dus je argument houdt ook niet altijd stand.
In het geval van list is dan ook wel vast te stellen dat het gebruik van haakjes geen verwarring kan veroorzaken, waar dat bij include wel het geval is. Zie enkel het voorbeeld in de manual alleen al, over de mogelijke verwarringen:

code:
1
if(include("test.php") == "ok")

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Verwijderd schreef op zondag 08 januari 2006 @ 19:25:
Wat bazel je nou?

Het remote bestand genereerd php. Oftewel de output is php. Mini voorbeeldje:
code:
1
2
3
<?php
  echo '<'.'?php echo "blaat"; ?'.'>';
?>


Als je dat vervolgens remote include, include je dus php en geen html.
Dan heb jij meer kennis van zaken dan de topicstarter hier heeft bekendgemaakt, want er staat nergens dat er PHP-code wordt gegenereerd. Wat er wèl staat is dat de URI die aangeroepen wordt gegenereerd wordt, en dat is heel wat anders, en bovendien niet relevant voor dit discussiepunt. Dus zo erg bazel ik niet hoor. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

Verwijderd

-NMe- schreef op zondag 08 januari 2006 @ 19:39:
[...]

Dan heb jij meer kennis van zaken dan de topicstarter hier heeft bekendgemaakt, want er staat nergens dat er PHP-code wordt gegenereerd. Wat er wèl staat is dat de URI die aangeroepen wordt gegenereerd wordt, en dat is heel wat anders, en bovendien niet relevant voor dit discussiepunt. Dus zo erg bazel ik niet hoor. ;)
bovenstaande code php code wordt geïnclude die enkele geëncrypteerde variabelen bevat
Als het csv of xml, of een ini-formaat was, was er wel gebruik gemaakt van file_get_contents, curl of standaard fopen.

;)

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Verwijderd schreef op zondag 08 januari 2006 @ 19:42:
Als het csv of xml, of een ini-formaat was, was er wel gebruik gemaakt van file_get_contents, curl of standaard fopen.

;)
...wat weer precies is wat ik ook voorstel, dus wat dat betreft maak je precies het punt dat ik ook probeer te maken. ;)

Hoe dan ook blijft dit giswerk zolang de topicstarter zelf niet vermeldt wat hij precies doet, dus wat dat betreft heeft deze discussie tot die tijd ook weinig nut. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1