Output "foo.php?bar=123" in een string krijgen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Eusebius
  • Registratie: November 2001
  • Niet online
foo.php?bar=123 geeft als output 0 of 1 op het scherm. Nu probeer ik dit af te vangen in een script, waarna ik het kan gebruiken voor een else / if constructie.

Nu heb ik fread, ob_get_contents, file_get_contents etc uitgeprobeerd, maar het lukt me niet om de output 0 of 1 in de string $outputfoo te krijgen. Alleen een php bestand lukt nog wel, maar met ?bar=123 niet ... waarschijnlijk zal dit simpel zijn, maar zelfs met mijn handboek PHP kom ik er niet uit.

==
hoi


Acties:
  • 0 Henk 'm!

Verwijderd

PHP:
1
2
3
4
5
6
7
8
if($_GET['bar'] == '123')
{
    $outputfoo = '0';
}
else
{
    $outputfoo = '1';
}

Zoiets?

[ Voor 20% gewijzigd door Verwijderd op 25-01-2009 20:12 . Reden: codevoorbeeld verbeterd ]


Acties:
  • 0 Henk 'm!

  • Pyrus
  • Registratie: November 2001
  • Laatst online: 20-09 21:30

Pyrus

Hardknock life

Hoe probeer je de file te bereiken? Via het web of direct op dezelfde computer?

Het klinkt er naar dat je het op dezelfde computer doet, dus
PHP:
1
$bla=file_get_contents("foo.php");


Dan krijg je, zoals je al ondervonden hebt denk ik, alleen de inhoud van dat bestand terug. Dit komt omdat de PHP code niet verwerkt wordt door de parser, maar direct ingelezen wordt als tekst. Wil je dat de code wel uitgevoerd wordt, dan kun je twee dingen doen. Wat kan, maar wat lelijk en omslachtig is, is dat je het bestand via het internet benadert dus:
PHP:
1
$bla=file_get_contents("http://www.jedome.in/foo.php?bar=123");


De andere, nettere en betere, optie is om de code uit foo.php in je huidige bestand uit te voeren. Dit kun je bijvoorbeeld doen met een include of door gewoon de code te copy/pasten. Of je nou copy/pastet of includet, de code in een functie zetten is misschien handig voor de leesbaarheid. :)

Dat zou dan zoiets worden:

PHP:
1
2
3
4
5
6
//foo.php
function foo($bar)
{
 if(TRUE){ return 1; }
 else { return 0; }
}


PHP:
1
2
3
4
5
6
7
8
//je andere file
include(foo.php);

//Hoop andere code

$bla=foo(123);

//Doe iets met $bla

LinkedIn


Acties:
  • 0 Henk 'm!

  • Sebazzz
  • Registratie: September 2006
  • Laatst online: 17:23

Sebazzz

3dp

file_get_contents werkt alleen indien url_fopen aanstaat (zie ook de notes @ PHP manual). Je kan proberen dit met ini_set aan te zetten.
Verwijderd schreef op zondag 25 januari 2009 @ 20:11:
PHP:
1
2
3
4
5
6
7
8
if($_GET['bar'] == '123')
{
    $outputfoo = '0';
}
else
{
    $outputfoo = '1';
}

Zoiets?
TS bedoelt afvangen met ander script ;)

[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]


Acties:
  • 0 Henk 'm!

  • Eusebius
  • Registratie: November 2001
  • Niet online
Pyrus schreef op zondag 25 januari 2009 @ 20:13:
Hoe probeer je de file te bereiken? Via het web of direct op dezelfde computer?
Lijkt me wel cruciaal detail: het bestand wat ik aanroep, staat op het web. Het is een check om te kijken of een livestream wel of niet aanstaat.

==
hoi


Acties:
  • 0 Henk 'm!

  • Peedy
  • Registratie: Februari 2002
  • Laatst online: 06-11-2024
Staat hij op dezelfde server? Maw; je laadt de file in met include? Dan kan je gewoon $_GET['bar'] = 123 zetten boven je include, dan zal hij deze GET variabele oppikken in dat script.

Acties:
  • 0 Henk 'm!

  • BlackWhizz
  • Registratie: September 2004
  • Laatst online: 08-12-2024
Lees dit stuk eens:

Klik!

Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Nu online

Creepy

Tactical Espionage Splatterer

Eusebius schreef op zondag 25 januari 2009 @ 19:55:
foo.php?bar=123 geeft als output 0 of 1 op het scherm. Nu probeer ik dit af te vangen in een script, waarna ik het kan gebruiken voor een else / if constructie.

Nu heb ik fread, ob_get_contents, file_get_contents etc uitgeprobeerd, maar het lukt me niet om de output 0 of 1 in de string $outputfoo te krijgen. Alleen een php bestand lukt nog wel, maar met ?bar=123 niet ... waarschijnlijk zal dit simpel zijn, maar zelfs met mijn handboek PHP kom ik er niet uit.
En hoe heb je het dan gedaan zonder de ?bar=123? Welke code gebruik je daarvoor? Waarom denk je dat dat mis gaat?

Nu dump je je vraag en lijk je te wachten op een oplossing. We verwachten hier dat je in elk geval aangeeft wat je hebt geprobeerd en wat daar niet mee lukte. Dit laat je nu totaal achterwege en zo komt het nogal over als een scriptrequest.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

  • Matis
  • Registratie: Januari 2007
  • Laatst online: 10:43

Matis

Rubber Rocket

Ik wil graag helpen, maar ik snap de vraag niet eens :s.

Misschien kun je, zoals Creepy zegt, wat meer uitleg geven over je probleem en je eventuele oplossingen.

De stream die je wilt checken, draait die op dezelfde server als waar je .php staat? Zo ja, dan heb je hierboven je oplossing; zo nee leg dan eens uit wat je wel wilt.

Wat je mss ook kan doen is een portcheck doen op de pagina waar de stream wel of niet draait?!

If money talks then I'm a mime
If time is money then I'm out of time

Pagina: 1