Visualizzazione risultati 1 fino 26 di 26

Discussione: SMF 2.1.1 e mancata comunicazione con SimpleMachines

  1. #1
    fwe
    fwe non è connesso Neofita
    Data registrazione
    02-01-2019
    Messaggi
    12

    Predefinito SMF 2.1.1 e mancata comunicazione con SimpleMachines

    Buonasera

    per prova ho installato una board SimpleMachine nella sua nuova versione 2.1.1

    Con stupore mi accorgo che, nonostante simplemachines sia in whitelist per quanto riguarda le connessioni esterne, la board non riesce a comunicare coi server SM e quindi non mostra le news, non controlla la versione e, maggiormente, non permette il download di pacchetti come per le traduzioni.

    Messaggio di errore dal log della board:

    E' cambiato qualcosa?

    Grazie
    Ultima modifica di fwe : 16-02-2022 alle ore 16.29.01

  2. #2
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,211

    Predefinito

    Strano, sembra che da Altervista si riesca a raggiungere correttamente quell'URL: http://alemoppo.altervista.org/LABS/smf/test.php

    Puoi provare a creare un file di test con estensione .php, incollare questo codice e visitare la pagina?

    Codice PHP:
    <?php
    echo file_get_contents('https://www.simplemachines.org/smf/current-version.js?version=SMF+2.1.1');
    Ciao!

  3. #3
    fwe
    fwe non è connesso Neofita
    Data registrazione
    02-01-2019
    Messaggi
    12

    Predefinito

    http://fwe.altervista.org/smf21/test.php

    Questo test funziona, ma ciò non toglie che SMF non riesce a comunicare con simplemachines.

    Problema rilevato anche da almeno un altro paio di utenti altervista con installata la nuova versione 2.1.x



    Nel box che dovrebbe contenere le news appare
    You are unable to connect to simplemachines.org's latest news file.
    Nel log appare il messaggio riportato precedentemente
    Tentando di scaricare un pacchetto di lingua si ottiene il messaggio
    The Simple Machines site is not responding. Please try again later.

    EDIT:
    Cercando un po' in rete trovo che il comportamento può dipendere dall'uso di fsockopen-

    Ho provato a fare un secondo test (http://fwe.altervista.org/smf21/test2.php) con un file così fatto:

    Codice PHP:
    <?php
    $fp
    = fsockopen("https://www.simplemachines.org/smf/current-version.js?version=SMF+2.1.1", 443, $errno, $errstr, 30);
    if (!
    $fp) {
    echo
    "$errstr ($errno)<br />\n";
    } else {
    $out = "GET / HTTP/1.1\r\n";
    $out .= "Host: https://www.simplemachines.org/smf/current-version.js?version=SMF+2.1.1\r\n";
    $out .= "Connection: Close\r\n\r\n";
    fwrite($fp, $out);
    while (!
    feof($fp)) {
    echo
    fgets($fp, 128);
    }
    fclose($fp);
    }
    ?>
    ottenendo stavolta questo risultato:

    HTTP/1.0 403 Forbidden Date: Wed, 16 Feb 2022 20:22:43 GMT Server: Apache Content-Type: text/plain Host di destinazione non consentito, sblocca la connessione nel pannello di AlterVista (Risorse > Impostazioni PHP)
    Cosa inaspettata in quanto, come detto, *.simplemachines.org è in whitelist

    Se è raggiungibile, lo dovrebbe essere comunque sia usando file_get_contents che fsockopen
    Ultima modifica di fwe : 16-02-2022 alle ore 22.33.28

  4. #4
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,894

    Predefinito

    L'intestazione HOST non contiene l'Url (URI) ma bensì il nome di dominio. Inoltre una richiesta http (GET o POST o altro) a / si espande alla prima directory cioè a dire https://www.domain.tld/ che se il web server è configurato sceglie una index predefinita.
    PHP dovrebbe aggiungere automaticamente host, per la versione HTTP 1.1 l'intestazione HOST è richiesta.
    Ultima modifica di darbula : 17-02-2022 alle ore 14.57.32

  5. #5
    fwe
    fwe non è connesso Neofita
    Data registrazione
    02-01-2019
    Messaggi
    12

    Predefinito

    Quello scritto era solo un test.

    Tornando alla problematica tecnica originaria, la situazione è comunque che la board di Simplemachines (che usa proprio fsockopen) nella versione 2.1 non riesce a comunicare.
    Modificare il core della stessa è una strada impraticabile e che sarebbe comunque riscritta al primo aggiornamento.



    ***
    Anche modificando lo script di test in:

    Codice PHP:
    <?php
    $fp
    = fsockopen("https://www.simplemachines.org", 443, $errno, $errstr, 30);

    if (!
    $fp) {
    echo
    "$errstr ($errno)<br />\n";
    } else {
    $out = "GET /smf/current-version.js?version=SMF+2.1.1 HTTP/1.1\r\n";
    $out .= "Host: https://www.simplemachines.org\r\n";
    $out .= "Connection: Close\r\n\r\n";
    fwrite($fp, $out);
    while (!
    feof($fp)) {
    echo
    fgets($fp, 128);
    }
    fclose($fp);
    }
    ?>
    La situazione rimane la medesima:

    HTTP/1.0 403 Forbidden Date: Thu, 17 Feb 2022 14:47:11 GMT Server: Apache Content-Type: text/plain Host di destinazione non consentito, sblocca la connessione nel pannello di AlterVista (Risorse > Impostazioni PHP)
    Ultima modifica di fwe : 17-02-2022 alle ore 17.45.59

  6. #6
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,211

    Predefinito

    Puoi provare così? (io ho le connessioni s2s sbloccate).
    Codice PHP:
    <?php
    $fp
    = fsockopen("www.simplemachines.org", 443, $errno, $errstr, 30);

    if (!
    $fp) {
    echo
    "$errstr ($errno)<br />\n";
    } else {
    $out = "GET /smf/current-version.js?version=SMF+2.1.1 HTTP/1.1\r\n";
    $out .= "Host: www.simplemachines.org\r\n";
    $out .= "Connection: Close\r\n\r\n";
    fwrite($fp, $out);
    while (!
    feof($fp)) {
    echo
    fgets($fp, 128);
    }
    fclose($fp);
    }
    ?>
    Ciao!

  7. #7
    fwe
    fwe non è connesso Neofita
    Data registrazione
    02-01-2019
    Messaggi
    12

    Predefinito

    E' esattamente quello che avevo già fatto, come puoi vedere nel post precedente, e il risultato è quello scritto.
    Connessione bloccata.

    HTTP/1.0 403 Forbidden Date: Thu, 17 Feb 2022 14:47:11 GMT Server: Apache Content-Type: text/plain Host di destinazione non consentito, sblocca la connessione nel pannello di AlterVista (Risorse > Impostazioni PHP)
    Ultima modifica di fwe : 17-02-2022 alle ore 22.50.45

  8. #8
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,211

    Predefinito

    Citazione Originalmente inviato da fwe Visualizza messaggio
    E' esattamente quello che avevo già fatto, come puoi vedere nel post precedente
    No, il codice è un po' diverso. Lo hai provato?

    Se funziona la file_get_contents non vedo perché non debba funzionare la fsockopen o le altre funzioni di lettura dei file.

    Ciao!

  9. #9
    fwe
    fwe non è connesso Neofita
    Data registrazione
    02-01-2019
    Messaggi
    12

    Predefinito

    OK, eliminando il protocollo (https) funziona, anche se essendo lo stesso dominio di destinazione dovrebbe essere ininfluente.

    Ma stiamo andando fuori dal problema.

    SMF non comunica. Possiamo fare tutti gli scriptini e le modifiche che vogliamo, ma il forum non funziona.
    Ultima modifica di fwe : 18-02-2022 alle ore 10.17.01

  10. #10
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,894

    Predefinito

    @fwe il test deve essere fedele alle specifiche altrimenti il non funzionamento dipende da codice scritto male.
    D'accordo qualcosa non va per il SMF ma lo script con la correzione funziona, bisogna capire cos'altro non va.
    Attualmente io non ci sono riuscito.
    A questo punto poiché è un file Javascript può darsi che qualche restrizione sia lato cliente nel tuo browser. Riporta la versione attuale del tuo browser e soprattutto aggiorna browser e sistema operativo per vecchie versioni, cioè se dalla barra degli indirizzi il browser riscontra un problema con i certificati del sito di tipo ISRG Root X1 come https://www.simplemachines.org/
    Update September 30, 2021 As planned, the DST Root CA X3 cross-sign has expired, and we’re now using our own ISRG Root X1 for trust on almost all devices.
    https://letsencrypt.org/docs/dst-roo...eptember-2021/
    Ultima modifica di darbula : 18-02-2022 alle ore 14.53.25

  11. #11
    fwe
    fwe non è connesso Neofita
    Data registrazione
    02-01-2019
    Messaggi
    12

    Predefinito

    Non è problema lato client.

    - Non funziona né con Chrome né con Firefox aggiornatissimi alle ultime releases, e anche in modalità in incognito (con tutto staccato).
    - Lo stesso problema rilevato da diversi utenti aventi configurazioni e connessioni estremamente differenti.
    - Il problema è presente solo su AV.
    - L'errore è loggato lato server nello stesso forum.
    - Installazione locale (XAMPP) stesso browser, stesse impostazioni, stesso pc, stesso tutto ... il forum FUNZIONA.



    Il blocco è lato server.
    Ultima modifica di fwe : 18-02-2022 alle ore 17.58.41

  12. #12
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,211

    Predefinito

    Ho appena provato e a me non risultano problemi:



    Hai provato abilitando le connessioni server to server?

    Ciao!

  13. #13
    fwe
    fwe non è connesso Neofita
    Data registrazione
    02-01-2019
    Messaggi
    12

    Predefinito

    Ho scritto chiaramente e più volte che il problema si presenta con la versione 2.1.x della Board.

    Quella mostrata (e che funziona) è la versione precedente, la 2.0.x.

    simplemachines.org è uno dei domini in whitelist e non vedo perchè dovrei attivare le connessioni S2S.
    Ultima modifica di fwe : 18-02-2022 alle ore 21.49.56

  14. #14
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,211

    Predefinito

    Sono riuscito a riprodurre il problema.

    Non credo però sia un problema lato Altervista, visto che in fase di installazione, come prima schermata appare questo:



    Comunque adesso indagheremo sul problema.

    Citazione Originalmente inviato da fwe Visualizza messaggio
    Ma stiamo andando fuori dal problema.
    SMF non comunica. Possiamo fare tutti gli scriptini e le modifiche che vogliamo, ma il forum non funziona.
    Certo, però gli scriptini sono utili a capire la natura del problema.

    Ciao!
    Ultima modifica di alemoppo : 18-02-2022 alle ore 22.06.51

  15. #15
    fwe
    fwe non è connesso Neofita
    Data registrazione
    02-01-2019
    Messaggi
    12

    Predefinito

    Ho provato a cancellare e reinstallare la board.

    PHP 7.3

    Nessun errore e/o warning


  16. #16
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,211

    Predefinito

    La funzione che credo dovrebbe tentare di collegarsi verso siti esterni è "fetch_web_data" (definita nel file Sources/Subs.php). Però questa a quanto ho visto non viene mai invocata.

    Nella pagina di amministrazione, non viene eseguita alcuna richiesta verso l'esterno (né con errori, né senza errori).

    Non conosco l'applicativo e non so quando dovrebbe eseguire questi controlli, ti consiglierei di chiedere agli sviluppatori dell'applicativo che sicuramente conoscono meglio l'applicativo di me.

    Ciao!

  17. #17
    ninjatest5 non è connesso Neofita
    Data registrazione
    28-01-2017
    Messaggi
    3

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    La funzione che credo dovrebbe tentare di collegarsi verso siti esterni è "fetch_web_data" (definita nel file Sources/Subs.php). Però questa a quanto ho visto non viene mai invocata.

    Nella pagina di amministrazione, non viene eseguita alcuna richiesta verso l'esterno (né con errori, né senza errori).

    Non conosco l'applicativo e non so quando dovrebbe eseguire questi controlli, ti consiglierei di chiedere agli sviluppatori dell'applicativo che sicuramente conoscono meglio l'applicativo di me.

    Ciao!
    Ciao alemoppo! Confermo l'errore segnalato 8 mesi fa da fwe, viene chiamato in Sources/ScheduledTasks.php, function scheduled_fetchSMfiles()
    Codice PHP:
    /**
    * This retieves data (e.g. last version of SMF) from sm.org
    */
    function scheduled_fetchSMfiles()
    {
    global
    $sourcedir, $txt, $language, $modSettings, $smcFunc, $context;

    // What files do we want to get
    $request = $smcFunc['db_query']('', '
    SELECT id_file, filename, path, parameters
    FROM {db_prefix}admin_info_files'
    ,
    array(
    )
    );

    $js_files = array();

    while (
    $row = $smcFunc['db_fetch_assoc']($request))
    {
    $js_files[$row['id_file']] = array(
    'filename' => $row['filename'],
    'path' => $row['path'],
    'parameters' => sprintf($row['parameters'], $language, urlencode($modSettings['time_format']), urlencode(SMF_FULL_VERSION)),
    );
    }

    $smcFunc['db_free_result']($request);

    // Just in case we run into a problem.
    loadEssentialThemeData();
    loadLanguage('Errors', $language, false);

    foreach (
    $js_files as $ID_FILE => $file)
    {
    // Create the url
    $server = empty($file['path']) || (substr($file['path'], 0, 7) != 'http://' && substr($file['path'], 0, 8) != 'https://') ? 'https://www.simplemachines.org' : '';
    $url = $server . (!empty($file['path']) ? $file['path'] : $file['path']) . $file['filename'] . (!empty($file['parameters']) ? '?' . $file['parameters'] : '');

    // Get the file
    $file_data = fetch_web_data($url);

    // If we got an error - give up - the site might be down. And if we should happen to be coming from elsewhere, let's also make a note of it.
    if ($file_data === false)
    {
    $context['scheduled_errors']['fetchSMfiles'][] = sprintf($txt['st_cannot_retrieve_file'], $url);
    log_error(sprintf($txt['st_cannot_retrieve_file'], $url));
    return
    false;
    }

    // Save the file to the database.
    $smcFunc['db_query']('substring', '
    UPDATE {db_prefix}admin_info_files
    SET data = SUBSTRING({string:file_data}, 1, 65534)
    WHERE id_file = {int:id_file}'
    ,
    array(
    'id_file' => $ID_FILE,
    'file_data' => $file_data,
    )
    );
    }
    return
    true;
    }

  18. #18
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,894

    Predefinito

    È un falso positivo, in quanto ritorna false anche con la semplice risposta http 200 o 201

    Codice PHP:
    <?php

    error_reporting
    (99223372036854775807);

    function
    fetch_web_data($url, $post_data = '', $keep_alive = false, $redirection_level = 0)
    {
    global
    $webmaster_email;
    static
    $keep_alive_dom = null, $keep_alive_fp = null;

    preg_match('~^(http|ftp)(s)?://([^/:]+)(:(\d+))?(.+)$~', $url, $match);

    // An FTP url. We should try connecting and RETRieving it...
    if (empty($match[1]))
    return
    false;
    elseif (
    $match[1] == 'ftp')
    {
    // Include the file containing the ftp_connection class.
    loadClassFile('Class-Package.php');

    // Establish a connection and attempt to enable passive mode.
    $ftp = new ftp_connection(($match[2] ? 'ssl://' : '') . $match[3], empty($match[5]) ? 21 : $match[5], 'anonymous', $webmaster_email);
    if (
    $ftp->error !== false || !$ftp->passive())
    return
    false;

    // I want that one *points*!
    fwrite($ftp->connection, 'RETR ' . $match[6] . "\r\n");

    // Since passive mode worked (or we would have returned already!) open the connection.
    $fp = @fsockopen($ftp->pasv['ip'], $ftp->pasv['port'], $err, $err, 5);
    if (!
    $fp)
    return
    false;

    // The server should now say something in acknowledgement.
    $ftp->check_response(150);

    $data = '';
    while (!
    feof($fp))
    $data .= fread($fp, 4096);
    fclose($fp);

    // All done, right? Good.
    $ftp->check_response(226);
    $ftp->close();
    }
    // This is more likely; a standard HTTP URL.
    elseif (isset($match[1]) && $match[1] == 'http')
    {
    if (
    $keep_alive && $match[3] == $keep_alive_dom)
    $fp = $keep_alive_fp;
    if (empty(
    $fp))
    {
    // Open the socket on the port we want...
    $fp = @fsockopen(($match[2] ? 'ssl://' : '') . $match[3], empty($match[5]) ? ($match[2] ? 443 : 80) : $match[5], $err, $err, 5);
    if (!
    $fp)
    return
    false;
    }

    if (
    $keep_alive)
    {
    $keep_alive_dom = $match[3];
    $keep_alive_fp = $fp;
    }

    // I want this, from there, and I'm not going to be bothering you for more (probably.)
    if (empty($post_data))
    {
    fwrite($fp, 'GET ' . $match[6] . ' HTTP/1.0' . "\r\n");
    fwrite($fp, 'Host: ' . $match[3] . (empty($match[5]) ? ($match[2] ? ':443' : '') : ':' . $match[5]) . "\r\n");
    fwrite($fp, 'User-Agent: PHP/SMF' . "\r\n");
    if (
    $keep_alive)
    fwrite($fp, 'Connection: Keep-Alive' . "\r\n\r\n");
    else
    fwrite($fp, 'Connection: close' . "\r\n\r\n");
    }
    else
    {
    fwrite($fp, 'POST ' . $match[6] . ' HTTP/1.0' . "\r\n");
    fwrite($fp, 'Host: ' . $match[3] . (empty($match[5]) ? ($match[2] ? ':443' : '') : ':' . $match[5]) . "\r\n");
    fwrite($fp, 'User-Agent: PHP/SMF' . "\r\n");
    if (
    $keep_alive)
    fwrite($fp, 'Connection: Keep-Alive' . "\r\n");
    else
    fwrite($fp, 'Connection: close' . "\r\n");
    fwrite($fp, 'Content-Type: application/x-www-form-urlencoded' . "\r\n");
    fwrite($fp, 'Content-Length: ' . strlen($post_data) . "\r\n\r\n");
    fwrite($fp, $post_data);
    }

    $response = fgets($fp, 768);

    // Redirect in case this location is permanently or temporarily moved.
    if ($redirection_level < 3 && preg_match('~^HTTP/\S+\s+30[127]~i', $response) === 1)
    {
    $header = '';
    $location = '';
    while (!
    feof($fp) && trim($header = fgets($fp, 4096)) != '')
    if (
    strpos($header, 'Location:') !== false)
    $location = trim(substr($header, strpos($header, ':') + 1));

    if (empty(
    $location))
    return
    false;
    else
    {
    if (!
    $keep_alive)
    fclose($fp);
    return
    fetch_web_data($location, $post_data, $keep_alive, $redirection_level + 1);
    }
    }

    // Make sure we get a 200 OK.
    elseif (preg_match('~^HTTP/\S+\s+20[01]~i', $response) === 0)
    return
    false; //il false dovrebbe essere questo il problema, ma ripeto è SMF che sbaglia con la funzione scheduled_fetchSMfiles()

    // Skip the headers...
    while (!feof($fp) && trim($header = fgets($fp, 4096)) != '')
    {
    if (
    preg_match('~content-length:\s*(\d+)~i', $header, $match) != 0)
    $content_length = $match[1];
    elseif (
    preg_match('~connection:\s*close~i', $header) != 0)
    {
    $keep_alive_dom = null;
    $keep_alive = false;
    }

    continue;
    }

    $data = '';
    if (isset(
    $content_length))
    {
    while (!
    feof($fp) && strlen($data) < $content_length)
    $data .= fread($fp, $content_length - strlen($data));
    }
    else
    {
    while (!
    feof($fp))
    $data .= fread($fp, 4096);
    }

    if (!
    $keep_alive)
    fclose($fp);
    }
    else
    {
    // Umm, this shouldn't happen?
    trigger_error('fetch_web_data(): Bad URL', E_USER_NOTICE);
    $data = false; // qui non arriva
    }

    return
    $data;
    }
    var_dump(fetch_web_data('https://www.simplemachines.org/smf/current-version.js?version=SMF+2.1.1'));

    ?>
    EDIT: Aggiunto commento php nonché il motivo perché il valore di ritorno false è interpretato erroneamente dalla funzione scheduled_fetchSMfiles()
    PS. Ovviamente occorre abilitare Il Server To Server (Connessione Remota).
    Ultima modifica di darbula : 25-10-2022 alle ore 21.14.00

  19. #19
    L'avatar di gmcworld
    gmcworld non è connesso Utente giovane
    Data registrazione
    02-06-2005
    Messaggi
    33

    Predefinito

    Ciao Ragazzi,
    Ho seguito con interesse questo topic in quanto ho lo stesso problema.
    A quanto pare questo "falso positivo" non è stato ancora risolto?

    Today at 11:18:59 AM
    Fabioamd87
    xx.xx.xx.xx
    b785ad8cf276fbf129a76e9544931daf
    https://www.gmcworld.altervista.org/...scheduledtasks
    Backtrace information

    Type of error: General
    Error message Select
    Could not retrieve the file https://www.simplemachines.org/smf/c...sion=SMF+2.1.3.

    Grazie,
    Ciao

  20. #20
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,894

    Predefinito

    Ciao questa volta il CDN CloudFlare non supporta l'intestazione
    Codice PHP:
    $string = 'Host: www.simplemachines.org:443' . "\r\n";
    Il problema è SMF :)
    Senza la vecchia compatibilità di :443 funziona.
    Mentre alla data di creazione di questo messaggio https://forum.it.altervista.org/prob...ml#post1483320 il problema fù
    Codice PHP:
    preg_match('~^HTTP/\S+\s+20[01]~i', $response)
    Ultima modifica di darbula : 25-01-2023 alle ore 23.44.55

  21. #21
    eng2test non è connesso Neofita
    Data registrazione
    16-07-2012
    Messaggi
    3

    Question

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Non conosco l'applicativo e non so quando dovrebbe eseguire questi controlli, ti consiglierei di chiedere agli sviluppatori dell'applicativo che sicuramente conoscono meglio l'applicativo di me.
    https://github.com/SimpleMachines/SMF/issues/7742

    What's next?

  22. #22
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,211

    Predefinito

    Anzitutto la tua risposta dettagliata mi ha reso possibile fare molte prove (in particolare i punti 3 -> 6).

    Ho quindi estratto il codice e confrontandomi internamente sono venuto a conoscenza che, solo per la fsokopen+SSL, occorre agire in questo modo:
    Codice PHP:
    $fp = fsockopen("127.0.0.1", 81, $errno, $errstr, 5);

    fwrite($fp, "CONNECT www.simplemachines.org:443 HTTP/1.1\r\n");
    fwrite($fp, "Host: www.simplemachines.org\r\n");
    fwrite($fp, "GET /smf/current-version.js?version=SMF+2.1.3 HTTP/1.0\r\n");
    fwrite($fp, "user-agent: Mozilla/5.0 (Linux Linux) AppleWebKit/605.1.15(KHTML, like Gecko) SMF/2.1.3");
    fwrite($fp, "Connection: Close\r\n\r\n");

    echo
    fgets($fp, 768);
    fclose($fp);
    So che le modifiche su codice vanno evitate (anche perché al prossimo aggiornamento andrebbero probabilmente perse), ma la soluzione più veloce è usare CURL. Per usare CURL è sufficiente inserire prima della riga 6142 del file Sources/Subs.php:
    Codice PHP:
    $fp = FALSE;
    Quindi, sarebbe:
    Codice:
    if (empty($fp))
    {
    	// Open the socket on the port we want...
    	$fp = @fsockopen(($match[2] ? 'ssl://' : '') . $match[3], empty($match[5]) ? ($match[2] ? 443 : 80) : $match[5], $err, $err, 5);
    }
    $fp = FALSE;
    if (!empty($fp))
    {
    	if ($keep_alive)
    Ho chiesto internamente se possiamo agire a più basso livello per questo caso particolare (per non metter mano su codice PHP), però modificando anche minimamente una cosa di così basso livello si rischia di rendere non funzionanti moltissimi altri siti.
    Temo quindi che una modifica di questo tipo non possa essere presa in considerazione, però comunque l'ho chiesto.

    Ciao!
    Ultima modifica di alemoppo : 07-05-2023 alle ore 19.28.57

  23. #23
    eng2test non è connesso Neofita
    Data registrazione
    16-07-2012
    Messaggi
    3

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Ho chiesto internamente se possiamo agire a più basso livello per questo caso particolare (per non metter mano su codice PHP), però modificando anche minimamente una cosa di così basso livello si rischia di rendere non funzionanti moltissimi altri siti.
    Temo quindi che una modifica di questo tipo non possa essere presa in considerazione, però comunque l'ho chiesto.

    Ciao!
    Il problema sembra essere più esteso, dato che anche con il workaround fornito sopra non riesco a inviare email in SMF 2.1.3 (sia configurando un server SMTP che tramite la funzione mail di PHP). Visto che su 2.0.19 non ci sono errori con i medesimi settaggi, è logico pensare che anche in questo caso si tratti della gestione di fsockopen da parte di Altervista.

    Quindi il mio dubbio è: devo aprire una nuova discussione dettagliata a riguardo (da entrambe le parti) o lascio a voi le verifiche del caso?

  24. #24
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,211

    Predefinito

    Sicuramente via SMTP non può funzionare perché su AlterVista sono chiuse le porte SMTP.
    La funzione mail() di PHP invece deve funzionare. Hai ricevuto qualche comunicazione sul pannello riguardo un blocco email?

    Ciao!

  25. #25
    eng2test non è connesso Neofita
    Data registrazione
    16-07-2012
    Messaggi
    3

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    La funzione mail() di PHP invece deve funzionare. Hai ricevuto qualche comunicazione sul pannello riguardo un blocco email?
    Grazie, confermo che la riattivazione del traffico email è andata a buon fine.

    Per quanto riguarda il problema principale, confermo che il workaround funziona, ma resto in attesa di una soluzione definitiva.
    Ultima modifica di eng2test : 09-05-2023 alle ore 08.23.08

  26. #26
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,211

    Predefinito

    Ti segnalo una cosa che potrebbe interessarti: quando avevo provato ad installare SMF la prima volta, mi son trovato molti bot che hanno preso di mira il sito e oltre a bloccarmi l'invio delle email mi hanno riempito il database. Consiglierei quindi di disabilitare le iscrizioni, o comunque di inserire (se possibile) dei captcha.

    Ciao!

Regole di scrittura

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