Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[PHP] file_get_content vindt geen data

Pagina: 1
Acties:
  • 525 views

Onderwerpen


  • Mastha-Hacker
  • Registratie: Mei 2009
  • Laatst online: 02-12-2024
Hallo,

Ik ben momenteel bezig met een CMS-systeem.
Er komt ook een update-service in. Ik wil daarvoor een stukje tekst uit een HTML bestand halen van mijn eigen server, en dat controleren. Ik kan wel verbinding maken met mijn server, maar ik kan het bestand niet uitlezen. Hij geeft niets weer.
De code:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
// Functie voor controle of het domein up is.
pingDomain("mastha-hacker.com", 80, 1);
    if($status == -1) {
        print "The host is currently not available! (Time Out error)";
        
    } else {
    $data = @file_get_contents("http://mastha-hacker.com/obs/update.html");
    if (!$data)
        print "geen data!";
        
    print $data;
    print 'test';
    }


Cookies worden op 1 of andere manier ook niet aangemaakt. Kan dat alles met elkaar te maken hebben?

  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

Haal die @ eens weg om te controlleren of je geen fouten krijgt.

Going for adventure, lots of sun and a convertible! | GMT-8


  • McVirusS
  • Registratie: Januari 2000
  • Laatst online: 23-10 00:49
Je onderdrukt de eventuele foutmelding die je krijgt door die @. Haal die eens weg en kijk eens wat voor melding je krijgt.

Tevens; wat doet die pingDomain functie?

  • djexplo
  • Registratie: Oktober 2000
  • Laatst online: 27-10 15:31
Gebruik urlencode op je url voor dat je deze aan file_get_contents geeft.

Die pingdomain is geen standaard functie....

Daarnaast, waarom (langzaam) via http het bestand ophalen als je het rechstreeks van het filesysteem van de server kan lezen?

[ Voor 35% gewijzigd door djexplo op 28-07-2011 15:22 ]

'if it looks like a duck, walks like a duck and quacks like a duck it's probably a duck'


  • Mastha-Hacker
  • Registratie: Mei 2009
  • Laatst online: 02-12-2024
Hi,
Ik heb de @ weg gehaald. Ik krijg geen meldingen. De pingDomain functie is n eigen functie om te checken of het domein up is:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function pingDomain($domain, $port, $timeout)   // Function to check response time
    {
        $starttime = microtime(true);
        ob_start();
        $file      = fsockopen ($domain, $port, $errno, $errstr, $timeout);
        $message = ob_get_contents();
        ob_end_clean(); // clean the output to avoid the warning being displayed.
    
        // if operation timed out is found, a timeout was reached, set $file to false
        if (stristr($message, "operation timed out") !== false) 
            $file = false;
    
        $stoptime  = microtime(true);
        $status    = 0;
       
       if (!$file) $status = -1;  // Site is down
        else {
            fclose($file);
            $status = ($stoptime - $starttime) * 1000;
            $status = floor($status);
        }
        return $status;
    }

Deze werkt prima!

@djexplo Wat bedoel je precies?

EDIT: En rechtstreeks wou ik eerst ook proberen, maar ik kreeg dat ook niet voor elkaar..

[ Voor 4% gewijzigd door Mastha-Hacker op 28-07-2011 15:29 ]


  • speedzor
  • Registratie: Maart 2008
  • Laatst online: 01-02-2014
Waarom spreek je in je eerste code $status aan wanneer deze lokaal staat in pingDomain?

Corrigeer me indien ik verkeerd ben, maar de scope is hier toch verkeerd?

edit: Trivian z'n correctie is hetgene ik bedoel

[ Voor 13% gewijzigd door speedzor op 28-07-2011 15:38 ]

Streaming History


  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

Going for adventure, lots of sun and a convertible! | GMT-8


  • Bapawe
  • Registratie: September 2003
  • Laatst online: 26-11 00:04
Misschien vergeet je nog het onderstaande in je code?

PHP:
1
$status = pingDomain("mastha-hacker.com", 80, 1);

www.twitch.tv/bapawe | www.twitter.com/bapawe


  • djexplo
  • Registratie: Oktober 2000
  • Laatst online: 27-10 15:31
Zoe iets...
PHP:
1
2
3
4
5
6
$filename="obs/update.html";
if (file_exists($filename)) {
    $data = file_get_contents($filename);
} else {
    echo "The file $filename does not exist";
}

[ Voor 57% gewijzigd door djexplo op 28-07-2011 15:41 ]

'if it looks like a duck, walks like a duck and quacks like a duck it's probably a duck'


  • Mastha-Hacker
  • Registratie: Mei 2009
  • Laatst online: 02-12-2024
Trivian schreef op donderdag 28 juli 2011 @ 15:37:
Misschien vergeet je nog het onderstaande in je code?

PHP:
1
$status = pingDomain("mastha-hacker.com", 80, 1);
Die was ik inderdaad vergeten! Ik kan nu wel pingen naar google.nl, maar als ik mastha-hacker.com doe, zegt ie dat de server down is.

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

Maar waarom ga je dat zitten doen dan? Ik vind het wel een grappige functie, daar niet van, maar als de site down is krijg je op file_get_contents() vanzelf een foutmelding. Vergeet niet dat sockets maken "duur" en "langzaam" is, dus waarom twee maken als één voldoende is?

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

En als je CMS draait op dezelfde server als de server waarop je wil testen zal je gewoon een 500 krijgen als die down is :+ Je CMS is dan ook onbereikbaar

Going for adventure, lots of sun and a convertible! | GMT-8


  • Mastha-Hacker
  • Registratie: Mei 2009
  • Laatst online: 02-12-2024
CMS en het bestand staan op een andere server. Het cms-systeem staat op OBS.nentjes-computing.nl en het bestand op mastha-hacker.com/obs/update.html.

Beide werken ook gewoon, maar hij krijgt de contents niet.Het stukje code staat nu ook hier:
http://nentjes-computing.nl/test.php

  • johnkeates
  • Registratie: Februari 2008
  • Laatst online: 04-07 16:30
En als je nou eens een IP gebruikt ipv hostname?

  • Mastha-Hacker
  • Registratie: Mei 2009
  • Laatst online: 02-12-2024
Ook geprobeerd: zelfde resultaat..

  • X_lawl_X
  • Registratie: September 2009
  • Laatst online: 26-11 18:52
Was er niet een PHP optie die voorkomt dat je een remote file kan includen?

  • speedzor
  • Registratie: Maart 2008
  • Laatst online: 01-02-2014
allow_url_include
allow_url_fopen

staan die enabled in php.ini?

Streaming History


  • Mastha-Hacker
  • Registratie: Mei 2009
  • Laatst online: 02-12-2024
Hmmzzz. Zit ik daarvoor zolang te zoeken? Allow_url_fopen is uitgeschakeld bij mijn houting provider (hosting2go)

Zijn er nog andere mogelijkheden dan?

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

Dan ga je toch debuggen :?

Als @file_get_contents("http://mastha-hacker.com/obs/update.html") niet het resultaat geeft wat jij verwacht, dan ga je kijken wat file_get_contents("http://mastha-hacker.com/obs/update.html") doet. En als dat ook niet werkt (en geen fouten geeft, hoe staat je error reporting ingesteld?), ga je kijken of een lokaal bestand wel werkt. Of een bestand op een andere server.

En de link van Snake was te veel moeite om aan te klikken, het moet voorgekauwd worden zoals speedzor doet? En dan verwacht je ook nog dat de alternatieven op een presenteerblaadje worden aangereikt? Komen ze dan hè:

- Contact opnemen met je hostingprovider
- Proberen of je die setting met .htaccess kunt overrulen
- Op een andere manier het bestand openen (curl bijvoorbeeld?)

[ Voor 11% gewijzigd door CodeCaster op 28-07-2011 16:01 ]

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


  • Mastha-Hacker
  • Registratie: Mei 2009
  • Laatst online: 02-12-2024
CodeCaster schreef op donderdag 28 juli 2011 @ 15:58:
- Contact opnemen met je hostingprovider
- Proberen of je die setting met .htaccess kunt overrulen
- Op een andere manier het bestand openen (curl bijvoorbeeld?)
quote: hostingprovider
Het is op onze machines al geruime tijd niet meer mogelijk om externe URL's te 'includen' met Perl of met het PHP commando "fopen" of "curl" (allow_url_fopen). Het betreft hier uitsluitend http includes en connecties met het IRC en MSN netwerk.

Dit is gedaan in verband met de veiligheid van de aanwezige sites op deze servers, en voorkomt dat persoonlijke informatie zoals o.a. passwords makkelijk te verkrijgen is door hackers. Ook kregen wij regelmatig klachten van website beheerders dat content zonder toestemming werd overgenomen en dat er via onze server getracht werd illegale activiteiten te ontplooien gebruikmakend van een proxy-script (als PHProxy), om zodoende de identiteit van de surfer te verbergen.

We verontschuldigen ons voor het onwaarschijnlijke geval dat u hinder ondervindt van deze configuratieaanpassing, echter hopen we dat u begrijpt dat deze aanpassing vrijwel uitsluitend voordelen heeft voor de beveiliging op de gehele server, en dat dit door ons ook niet per hostingpakket in te stellen is.

Overigens zijn er wel mogelijkheden om via html externe url's te includen. U doet dat door een zgn. "iframe" op te nemen, met daarin een directe link naar de pagina die u wilt includen. Zodoende loopt de include vanaf de server van de eigenaar zelf, en laadt uw website veel sneller. Daarnaast scheelt het u dataverbruik.

Niet alle http includes zijn geblokkeerd. In bepaalde applicaties (o.a. Wordpress) zijn verificatie-modules aanwezig die door ons op een whitelist zijn geplaatst en dus prima functioneren. Wanneer u problemen ondervindt met een bepaalde applicatie dan kunt u een whitelist toevoeging verzoeken door contact op te nemen met onze helpdesk.
Ik heb alle info gelezen ;)

  • White_Collar
  • Registratie: Februari 2009
  • Laatst online: 11:40
*kuch*

"Warning: file_get_contents() [function.file-get-contents]: URL file-access is disabled in the server configuration in /home/vhosts/nentjes-computing.nl/httpdocs/test.php on line 2

"The reason for time is so that everything doesn't happen at once"


  • mocean
  • Registratie: November 2000
  • Laatst online: 25-11 11:02
Los het dan anders op met een <iframe> die ergens op je startpagina van het CMS staat. Daarin kan je dan weergeven of er een update is.
<iframe src="link_to_server/myversion=1.1.x"></iframe>

Koop of verkoop je webshop: ecquisition.com


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 26-11 22:53

Creepy

Tactical Espionage Splatterer

Dan vraag ik me toch af waarom je hier vragen blijft stellen. Je hoster verwoordt het prima. Wat jij wil kan niet vanuit PHP/Curl bij jou hoster en daar krijg je zelfs een foutmelding over. Niks aan te doen. Als je het echt nodig hebt zul je toch echt met je hoster moeten gaan overleggen of 1 van de oplossingen moeten gaan gebruiken die zij aandragen. Hier blijven vragen wat er nog meer mogelijk is zonder zelf wat te proberen is in elk geval niet de bedoeling.

"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

Pagina: 1

Dit topic is gesloten.