remote copy script werkt niet meer

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Nvt nvt

nvt nvt

28/01/2008 21:21:00
Quote Anchor link
hallo,

ik gebruik het volgende 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
<?php
function retrieve($remote_filename, $home_filename, $autocomplete = true)
{

    $awnser = '';
    $headers = array();
    $status = '';
    $headerstopped = false;
    $fileId = 0;
    $size = 0;
    
    $url = explode('/', $remote_filename);
    if($url[0] == 'http:' OR $url[0] == 'https'){
        $url = array_slice($url, 2);
    }

    if($autocomplete){
        $home_filename .= $url[count($url)-1];
    }

    
    if(!$filehandle = fopen($home_filename, 'w')){
        trigger_error('Could not create file', E_USER_ERROR);
        return false;
    }
else{
        if(!$handle = fsockopen($url[0], 80, $errno, $errstr, 30)) {
            trigger_error("$errstr ($errno)", E_USER_ERROR);
            fclose($filehandle);
            return false;
        }
else{
            $out = "GET /".implode('/', array_slice($url, 1))." HTTP/1.0\r\n";
            $out .= "Host: ".$url[0]."\r\n";
            $out .= "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; nl-NL; rv:1.7.8) Gecko/20050511 Firefox/1.0.4\r\n";
            $out .= "Connection: Close\r\n\r\n";
            fwrite($handle, $out);
            while (!feof($handle)) {
                if(!$headerstopped){
                    $awnser .= fgets($handle, 8192);
                    if(stristr($awnser, "\r\n\r\n")){
                    list($header, $data) = explode("\r\n\r\n", $awnser);
                        $header = analizeHeader($header);
                        if(stristr($header['Status'], '200 OK')){
                            $headerstopped = true;
                            unset($awnser);
                        }
else{
                            if(stristr($header['Status'], '400')){
                                trigger_error('Bad request', E_USER_ERROR);
                            }

                            elseif(stristr($header['Status'], '404')){
                                trigger_error('File not found', E_USER_ERROR);
                            }

                            unset($awnser);
                            fclose($handle);
                            fclose($filehandle);
                            return false;
                        }
                    }
                }
else{
                    $buffer = fgets($handle, 8192);
                    fwrite($filehandle, $buffer);
                    $buffer = NULL;
                }
            }

            fclose($handle);
            fclose($filehandle);
            return $home_filename;
        }
    }
}

function
analizeHeader($header)
{

    $headers = array();
    foreach(explode("\r\n", $header) as $value){
        if(stristr($value, ': ')){
            list($key, $value) = explode(': ', $value);
            $headers[$key] = $value;
        }
else{
            $headers['Status'] = $value;
        }
    }

    return $headers;
}

?>

en roep het aan met
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
require('afbeelding.php');
        if($file = retrieve($plaatje, './')){
    echo '<img src="'.$file.'"/>';
}else{
    echo 'error';
}

ik heb het geheel nu overgeplaatst naar een andere server en nu werkt het niet meer. met error_reporting(E_ALL); krijg ik geen fouten te zien maar de site stopt gewoon.

waar kan dit aan gelegen hebben?
alvast bedankt, jesper
 
PHP hulp

PHP hulp

03/01/2025 10:31:06
 
Nvt nvt

nvt nvt

29/01/2008 15:05:00
Quote Anchor link
*lekker bumpen*
 
Joren de Wit

Joren de Wit

29/01/2008 15:08:00
Quote Anchor link
Dan gaat er blijkbaar toch iets fout. Controleer eens of de display_errors instelling in je php.ini wel aan staat. Dat is namelijk vrij essentieel als je fouten wilt zien...
 
Nvt nvt

nvt nvt

29/01/2008 15:24:00
Quote Anchor link
Notice: Undefined variable: errno in /home/vol4/byethost.nl/byet_1506309/dvdtjes12.byethost.nl/
htdocs/site/afbeelding.php on line 26

de bovenste is 26
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
if(!$handle = fsockopen($url[0], 80, $errno, $errstr, 30)) {
            trigger_error("$errstr ($errno)", E_USER_ERROR);

dit script is niet van mij maar verder word nergens $erno gebruikt.
Gewijzigd op 01/01/1970 01:00:00 door nvt nvt
 
Jesper Diovo

Jesper Diovo

29/01/2008 16:28:00
Quote Anchor link
Dat is dus ook de fout.
$errno bestaat niet! Overigens zou ik niet de enkele '=' operator gebruiken. Als je wil vergelijken gebruik dan de dubbele '='.
Desalniettemin is de plaats waar $errno in de functie staat leeglaatbaar. Ik zou even voordat je met de if begint $errno = ''; plaatsen. Aangezien ik vrees dat hij hierna voor $errstr een error teruggeeft, zou ik die ook even d'rvoor plaatsen (of wordt hij wel gebruikt?).
 
Jelmer -

Jelmer -

29/01/2008 16:46:00
Quote Anchor link
Dat is helaas niet het probleem, aangezien het hoogstens een notice is. Het is netter ze ergens vooraf te definiëren, maar niet noodzakelijk. Die enkele = klopt ook. Als fsockopen false teruggeeft, geeft $handle false terug, wordt de voorwaarde dus true. Mag gewoon.

Maar je zegt dat hij blijft hangen, het script. Dat klinkt als een timeout op een blocking functie. Zou je rondom alle fsockopen, fwrite, fopen, fclose en fgets eens echo's plaatsen zodat je kan zien tot waar hij werkt, en waar hij ermee kapt?
 
Nvt nvt

nvt nvt

29/01/2008 20:22:00
Quote Anchor link
ik heb na veel proberen een andere, naar mij idee DE, fout code gevonden

Warning: fsockopen() has been disabled for security reasons in /home/vol4/byethost.nl/byet_1506309/dvdtjes12.byethost.nl
/htdocs/site/afbeelding.php on line 27

hoe zet ik het weer aan?
Gewijzigd op 01/01/1970 01:00:00 door nvt nvt
 
Slurp

Slurp

29/01/2008 20:29:00
Quote Anchor link
deze is door je host uitgeschakeld, ik zou hun een mailtje sturen om het weer aan te zetten..
 
Nvt nvt

nvt nvt

29/01/2008 21:06:00
Quote Anchor link
dan gaan we dat proberen
 
Frank -

Frank -

29/01/2008 21:23:00
Quote Anchor link
Wanneer fsockopen() is geblokkeerd, kun je toch met cURL aan de slag? Het staat mij bij dat die veiliger is en juist daarom wordt geinstalleerd en gebruikt.

Ps. Heb er nooit mee gewerkt...
 



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.