Visualizzazione risultati 1 fino 9 di 9

Discussione: [PHP] Problemuccio fopen

  1. #1
    metargon non è connesso Neofita
    Data registrazione
    03-10-2007
    Messaggi
    17

    Predefinito [PHP] Problemuccio fopen

    Salve, anzitutto mi pare giusto dire che non ho capito molto bene il funzionamento della fopen, cmq il problema è sostanzialmente questo:
    sto creando una pagina web che servirebbe per un browsergame, e devo usare un pezzo di pagina php per inviare un pm esterno a un player in-game.
    Sulla guida che ha messo a disposizione il gioco ho trovato questo:

    Codice PHP:
    //I parametri devono essere codificati URL
    $to = urlencode('exception'); //Il destinatario
    $subject = urlencode('test & test'); //L'oggetto
    $message = urlencode('Questo è un test'); //Il messaggio

    $base_url = "http://********/send_mail.php?from_id=FROM_ID&password=PASSWORD";

    // vai all'URL
    $handle = fopen($base_url . "&to=$to&subject=$subject&message=$message", 'r');
    echo
    fgets($handle); // Visualizza messaggio
    fclose($handle);
    Mi è stato facile capire come compilare le varie parti (id, password, destinatario, etc.)
    solo che non capisco perkè non funzioni. Forse con la fopen non posso leggere roba di server esterni?
    Se è cosi mi potete consigliare un altro modo per fare sta cosa? xD

  2. #2
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Non funziona perchè sono disabilitate le connessioni tramite gli URL Wrappers (fopen()).

    Per connetterti ad altri server su AlterVista devi utilizzare cURL o fsockopen().
    Apprezzi l'aiuto? Offrimi un caffè!

  3. #3
    prohu non è connesso Neofita
    Data registrazione
    10-02-2004
    Messaggi
    7

    Predefinito

    a me non gira questo codice, o meglio va direttamente sull'else senza leggere la pagina, in pratica devo ordinare in una tabella dei valori che leggo all'inizio di una pagina html di Altervista sempre su Altervista (http://prohu.altervista.org/cadau.php) come vedete appaiono i trattini ma non i valori:

    Codice PHP:
    <?php

    // Inizializzazione Variabili Meteo


    $fonni1 = "http://prohu.altervista.org/meteo/noname.htm";


    $error = "";

    //fonni1

    $ora = " - ";
    $data = " - ";
    $tmp = " - ";
    $hum = " - ";
    $dew = " - ";
    $wav = " - ";
    $wgt = " - ";
    $dir = " - ";
    $bar = " - ";
    $rdy = " - ";
    $rmt = " - ";
    $ryr = " - ";
    $rhr = " - ";

    // make sure the file is successfully opened before doing anything else
    if ($fp = fopen($fonni1, 'r')) {
    $meteostr = '';
    // leggi
    while ($line = fread($fp, 1024)) {
    $meteostr .= $line;
    }
    fclose($fp);

    $meteostr=substr($meteostr, strpos($meteostr,",")+2);
    $ora = substr($meteostr, 0 ,8);

    $meteostr = substr($meteostr, strpos($meteostr,",")+1);
    $data = substr($meteostr, 0 ,8);

    $meteostr = substr($meteostr, strpos($meteostr,",")+4);
    $pos = strpos($meteostr,",");
    $tmp = substr($meteostr, 0 , $pos);

    $meteostr = substr($meteostr, strpos($meteostr,",")+4);
    $pos = strpos($meteostr,",");
    $hum = substr($meteostr, 0 , $pos);

    $meteostr = substr($meteostr, strpos($meteostr,",")+4);
    $pos = strpos($meteostr,",");
    $dew = substr($meteostr, 0 , $pos);

    $meteostr = substr($meteostr, strpos($meteostr,",")+4);
    $pos = strpos($meteostr,",");
    $wav = substr($meteostr, 0 , $pos);

    $meteostr = substr($meteostr, strpos($meteostr,",")+4);
    $pos = strpos($meteostr,",");
    $wgt = substr($meteostr, 0 , $pos);

    $meteostr = substr($meteostr, strpos($meteostr,",")+4);
    $pos = strpos($meteostr,",");
    $dir = substr($meteostr, 0 , $pos-5);
    $dir = htmlentities($dir);

    $meteostr = substr($meteostr, strpos($meteostr,",")+4);
    $pos = strpos($meteostr,",");
    $bar = substr($meteostr, 0 , $pos);

    $meteostr = substr($meteostr, strpos($meteostr,",")+4);
    $pos = strpos($meteostr,",");
    $rdy = substr($meteostr, 0 , $pos);

    $meteostr = substr($meteostr, strpos($meteostr,",")+4);
    $pos = strpos($meteostr,",");
    $rmt = substr($meteostr, 0 , $pos);

    $meteostr = substr($meteostr, strpos($meteostr,",")+4);
    $pos = strpos($meteostr,",");
    $ryr = substr($meteostr, 0 , $pos);

    $meteostr = substr($meteostr, strpos($meteostr,",")+4);
    $pos = strpos($meteostr,">");
    $rhr = substr($meteostr, 0 , $pos);

    } else {
    //non apre il file htm... (trattìno per tutte le stazioni)
    $error.="<p>Non ho aperto xxx1</p>";
    }

    ?>
    Ultima modifica di prohu : 04-03-2009 alle ore 18.01.08

  4. #4
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Citazione Originalmente inviato da prohu Visualizza messaggio
    a me non gira questo codice, o meglio va direttamente sull'else senza leggere la pagina, in pratica devo ordinare in una tabella dei valori che leggo all'inizio di una pagina html di Altervista sempre su Altervista (http://prohu.altervista.org/cadau.php) come vedete appaiono i trattini ma non i valori:

    Codice PHP:
    <?php

    // Inizializzazione Variabili Meteo


    $fonni1 = "http://prohu.altervista.org/meteo/noname.htm";


    $error = "";

    //fonni1

    $ora = " - ";
    $data = " - ";
    $tmp = " - ";
    $hum = " - ";
    $dew = " - ";
    $wav = " - ";
    $wgt = " - ";
    $dir = " - ";
    $bar = " - ";
    $rdy = " - ";
    $rmt = " - ";
    $ryr = " - ";
    $rhr = " - ";

    // make sure the file is successfully opened before doing anything else
    if ($fp = fopen($fonni1, 'r')) {
    $meteostr = '';
    // leggi
    while ($line = fread($fp, 1024)) {
    $meteostr .= $line;
    }
    fclose($fp);

    $meteostr=substr($meteostr, strpos($meteostr,",")+2);
    $ora = substr($meteostr, 0 ,8);

    $meteostr = substr($meteostr, strpos($meteostr,",")+1);
    $data = substr($meteostr, 0 ,8);

    $meteostr = substr($meteostr, strpos($meteostr,",")+4);
    $pos = strpos($meteostr,",");
    $tmp = substr($meteostr, 0 , $pos);

    $meteostr = substr($meteostr, strpos($meteostr,",")+4);
    $pos = strpos($meteostr,",");
    $hum = substr($meteostr, 0 , $pos);

    $meteostr = substr($meteostr, strpos($meteostr,",")+4);
    $pos = strpos($meteostr,",");
    $dew = substr($meteostr, 0 , $pos);

    $meteostr = substr($meteostr, strpos($meteostr,",")+4);
    $pos = strpos($meteostr,",");
    $wav = substr($meteostr, 0 , $pos);

    $meteostr = substr($meteostr, strpos($meteostr,",")+4);
    $pos = strpos($meteostr,",");
    $wgt = substr($meteostr, 0 , $pos);

    $meteostr = substr($meteostr, strpos($meteostr,",")+4);
    $pos = strpos($meteostr,",");
    $dir = substr($meteostr, 0 , $pos-5);
    $dir = htmlentities($dir);

    $meteostr = substr($meteostr, strpos($meteostr,",")+4);
    $pos = strpos($meteostr,",");
    $bar = substr($meteostr, 0 , $pos);

    $meteostr = substr($meteostr, strpos($meteostr,",")+4);
    $pos = strpos($meteostr,",");
    $rdy = substr($meteostr, 0 , $pos);

    $meteostr = substr($meteostr, strpos($meteostr,",")+4);
    $pos = strpos($meteostr,",");
    $rmt = substr($meteostr, 0 , $pos);

    $meteostr = substr($meteostr, strpos($meteostr,",")+4);
    $pos = strpos($meteostr,",");
    $ryr = substr($meteostr, 0 , $pos);

    $meteostr = substr($meteostr, strpos($meteostr,",")+4);
    $pos = strpos($meteostr,">");
    $rhr = substr($meteostr, 0 , $pos);

    } else {
    //non apre il file htm... (trattìno per tutte le stazioni)
    $error.="<p>Non ho aperto xxx1</p>";
    }

    ?>
    Citazione Originalmente inviato da miki92 Visualizza messaggio
    Non funziona perchè sono disabilitate le connessioni tramite gli URL Wrappers (fopen()).
    Ma scusa se fopen è disabilitato sugli URL potrà mai restituire il valore "true" affinchè l'if funzioni?
    Citazione Originalmente inviato da miki92 Visualizza messaggio
    Per connetterti ad altri server su AlterVista devi utilizzare cURL o fsockopen().
    Apprezzi l'aiuto? Offrimi un caffè!

  5. #5
    Guest

    Predefinito

    Scusami miki..a questo punto non entra in funzione cURL? xD
    Ciauu! ^^

  6. #6
    prohu non è connesso Neofita
    Data registrazione
    10-02-2004
    Messaggi
    7

    Predefinito

    Citazione Originalmente inviato da miki92 Visualizza messaggio
    Ma scusa se fopen è disabilitato sugli URL potrà mai restituire il valore "true" affinchè l'if funzioni?
    Non avevo capito che fopen fosse disabilitato per gli url. scusate

  7. #7
    prohu non è connesso Neofita
    Data registrazione
    10-02-2004
    Messaggi
    7

    Predefinito

    Non mi funziona il fsockopen, pure un codice semplice come questo:

    Codice PHP:
    <?php
    $fp
    = fsockopen("www.google.com", 80, $errno, $errstr, 30);
    if (!
    $fp) {
    echo
    "$errstr ($errno)<br />\n";
    } else {
    $out = "GET / HTTP/1.1\r\n";
    $out .= "Host: www.google.com\r\n";
    $out .= "Connection: Close\r\n\r\n";
    fwrite($fp, $out);
    while (!
    feof($fp)) {
    echo
    fgets($fp, 128);
    }
    fclose($fp);
    }
    ?>
    Mi resistuisce errore di connessione, ora tra l'altro si è bloccato l'host altervista

  8. #8
    L'avatar di darkwolf
    darkwolf non è connesso Salvatore Noschese
    Data registrazione
    18-04-2007
    Residenza
    Reggiolo (RE)
    Messaggi
    6,558

    Predefinito

    Questo mi ha sempre funzionato: http://darkwolf.altervista.org/script/fsocktest.php
    In questo momento ricevo Error 110: Connection timed out.
    Suppongo sia un "problema" momentaneo

  9. #9
    prohu non è connesso Neofita
    Data registrazione
    10-02-2004
    Messaggi
    7

    Predefinito

    Sì lo stesso mio.

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •