Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 25
  1. #1

    PHP e Aruba: non si può usare più il comando include

    Ciao a tutti,

    sabato ho messo on-line il nuovo sito web di un amico su host windows. Funzionava tutto tranne lo script della gestione delle news e dopo un'infinità di prove e variazioni mi sono trovato a chiedere aiuto al supporto. Questa è stata la risposta:

    Inserito da: luca.niccolini
    Data: 17/01/09 16:04
    Messaggio:
    Gentile cliente,

    Per i problemi con l'include tale versione (riferito a PHP) ha apportato alcune novità nella sua configurazione per garantire una maggiore sicurezza e, tra queste, vi è il parametro "allow_url_include" che sui nostri Server è impostato su "Off". Ciò significa che, per la sua stessa sicurezza, non è possibile utilizzare le funzioni "include","include_once","require" e "require_once" del Php per includere degli Url come avviene attualmente nelle sue pagine.

    Non è possibile eseguire l'override/workaround di tale parametro e, quindi, al fine di poter risolvere la sua problematica le consiglio di effettuare le opportune modifiche al suo file affinché utilizzi le path relative di inclusione e non gli Url.

    Codice PHP:
    include("esempio.php"); 
    deve autonomamente verificare le sue applicazioni PHP. Contatti un webmaster o colui/colei che le ha costruito il sito web.
    Sul sito di php deve verificare le differenze tra le due versioni 4 / 5 sul change log :

    www.php.net/changelog

    e controllare se i suoi script compiano quelle operazioni che devono essere effettuate in diverso modo sulla nuova versione.

    Cordiali Saluti
    ora, io di PHP non sono un grande esperto, ma come posso risolvere sta situazione? Mi conviene migrare tutto a linux e non pensarci più? Se hanno messo questa impostazione a PHP su windows, non è che lo hanno fatto anche alle piattaforme linux?

    Dimenticavo, l'indirizzo del sito web è http://www.dragonbikestrigno.it/
    Errare è umano, ma per fare veramente casino ci vuole la password di root

  2. #2
    mi pare chiara la loro risposta!

    se utilizzi degli include/require[_once] che hanno come riferimento un URL invece che un percorso su disco otterrai un errore

    che tipo di include/require effettui?
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  3. #3
    ciao,

    io ho una cartella news in cui ho tutti i file per la gestione. Ora, alla pagina news non ho fatto altro che fare

    Codice PHP:
     <?php 
        
    include("./news/mynews.inc.php");
        
    ?>
    non ho capito però perchè sono andati a disabilitare l'opzione allow_url_include del file php.ini.

    Per esempio il menu è generato da un file menu.php e quello viene generato perfettamente...
    Errare è umano, ma per fare veramente casino ci vuole la password di root

  4. #4
    Utente di HTML.it L'avatar di blekm
    Registrato dal
    Jun 2004
    Messaggi
    8,310
    hanno fatto questa modifica solo sui domini Windows?
    Il portale sul turismo a Lucca

    Siti web Lucca

    Vendo Tex a colori di Repubblica (primi 100 numeri) - info in pvt.

  5. #5
    anche su quelli linux. Non riesco a capire il perchè... nel messaggio parlano di sicurezza. Penso proprio che con aruba siano finiti i miei rapporti.

    Ecco comunque cosa mi ha scritto il tecnico di aruba

    Gentile cliente,
    anche su hosting linux non potrà configurare un proprio php.ini ma avrà la possibilità di sceglierne uno su una lista di file proposti.

    Questa la configurazione base per linux :

    http://webx92.aruba.it/ver.php

    Cordiali Saluti
    e dopo aver chiesto se mi potevano abilitare gli include ecco la risposta:

    Gentile cliente,
    no, non è possibile avere personali configurazioni.
    Può valutare il fatto di acquistare un server virtuale dove potrà configurare come desidera il php.

    Cordiali Saluti
    Errare è umano, ma per fare veramente casino ci vuole la password di root

  6. #6
    Utente di HTML.it L'avatar di blekm
    Registrato dal
    Jun 2004
    Messaggi
    8,310
    Originariamente inviato da Neo996sps
    al fine di poter risolvere la sua problematica le consiglio di effettuare le opportune modifiche al suo file affinché utilizzi le path relative di inclusione e non gli Url.

    Codice PHP:
    include("esempio.php"); 
    la soluzione è usare il codice qua sopra invece che

    Codice PHP:
    include("http://www.sito.it/phpcode/esempio.php"); 
    giusto? Ho capito bene?
    Il portale sul turismo a Lucca

    Siti web Lucca

    Vendo Tex a colori di Repubblica (primi 100 numeri) - info in pvt.

  7. #7
    loro dicono di fare così, ma non funziona!
    Errare è umano, ma per fare veramente casino ci vuole la password di root

  8. #8
    La forma
    include("http://www.sito.it/phpcode/esempio.php");

    E' SBAGLIATISSIMA!!!!

    Perché oltre al fatto che non dovrebbe avere estensione .php altrimenti viene interpretato dal server web e php riceve una pagina che di php non c'ha niente ... e quindi non può essere interpretata localmente ... è realmente una SERIA fonte di possibili bug!

    Per farti un esempio ... se io so che tu fai questo giochino molto semplicemente prendo ed effettuo un DNS POISONING dei server dns di aruba utilizzati dalle loro macchine windows e faccio si che www.sito.it punti ad uno spazio web mio ... e faccio si che dentro la docroot ci sia il percorso usato con il mio codice malevolo che non fa altro che installare una backdoor sul tuo spazio web

    et waila! il gioco è fatto

    Più che altro se fai un include di tipo
    include("./news/mynews.inc.php");

    non c'è alcun motivo che non funzioni.

    Piuttosto, sei sicuro che sia proprio quell'include a non funzionare? Perché per essere sicuro dovresti creare una pagina vuota con un include e mettere nel file che includi un echo con un bel die ... se il contenuto dell'echo viene stampato vuol dire che il problema è altro ... e sinceramente penso, personalmente, che non siano gli include perché vorrebbe dire che avresti trovato un bug di php perché con la configurazione ha poco a che fare (almeno per come lo usi tu)
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  9. #9
    questi sono gli errori che mi genera lo script PHP delle news. Sul mio webserver locale funziona perfettamente:

    Codice PHP:
    Warningfile(Ddata.dat) [function.file]: failed to open streamNo such file or directory in D:\Inetpub\webs\dragonbikestrignoit\news\mynews.inc.php on line 328

    Warning
    Invalid argument supplied for foreach() in D:\Inetpub\webs\dragonbikestrignoit\news\mynews.inc.php on line 337

    Warning
    usort() [function.usort]: The argument should be an array in D:\Inetpub\webs\dragonbikestrignoit\news\mynews.inc.php on line 133

    Warning
    current() [function.current]: Passed variable is not an array or object in D:\Inetpub\webs\dragonbikestrignoit\news\mynews.inc.php on line 344

    Warning
    usort() [function.usort]: The argument should be an array in D:\Inetpub\webs\dragonbikestrignoit\news\mynews.inc.php on line 133

    Warning
    : include(Dlog.dat.php) [function.include]: failed to open streamNo such file or directory in D:\Inetpub\webs\dragonbikestrignoit\news\mynews.inc.php on line 182

    Warning
    : include() [function.include]: Failed opening 'Dlog.dat.php' for inclusion (include_path='.;c:\php\includes'in D:\Inetpub\webs\dragonbikestrignoit\news\mynews.inc.php on line 182

    Warning
    file(Dtemplate.inc.php) [function.file]: failed to open streamNo such file or directory in D:\Inetpub\webs\dragonbikestrignoit\news\mynews.inc.php on line 506

    Warning
    implode() [function.implode]: Invalid arguments passed in D:\Inetpub\webs\dragonbikestrignoit\news\mynews.inc.php on line 506

    Warning
    Invalid argument supplied for foreach() in D:\Inetpub\webs\dragonbikestrignoit\news\mynews.inc.php on line 509



    Warning
    : include(Dlog.dat.php) [function.include]: failed to open streamNo such file or directory in D:\Inetpub\webs\dragonbikestrignoit\news\mynews.inc.php on line 182

    Warning
    : include() [function.include]: Failed opening 'Dlog.dat.php' for inclusion (include_path='.;c:\php\includes'in D:\Inetpub\webs\dragonbikestrignoit\news\mynews.inc.php on line 182 
    Dato che non funzionava ho chiesto aiuto ad aruba e loro mi hanno detto che non funziona perchè allow_url_include è settato a off.
    A questo punto guardo se c'è qualche altro gestore di news pronto che non necessiti di DB.
    Errare è umano, ma per fare veramente casino ci vuole la password di root

  10. #10
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    Originariamente inviato da Neo996sps
    loro dicono di fare così, ma non funziona!
    Se fosse davvero cosi, dovrei passare una settimana (come minimo) a spostare siti web.
    I miei siti che non hanno questo tipo di include e funzionano perfettamente.

    Mi chiedo (siccome non uso mai windows come server), non è che non gli piace la sintassi "./"? o magari la sostituisce con qualcosa di strano?

    Prova a sostituire il tuo percorso ./ con un percorso assoluto.

    ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.