Visualizzazione risultati 1 fino 15 di 15
Like Tree1Likes
  • 1 Post By alemoppo

Discussione: problema con include e require

  1. #1
    medievalempires non è connesso Utente Blog
    Data registrazione
    27-10-2021
    Messaggi
    10

    Predefinito problema con include e require

    Salve, ho comprato il dominio medieval-empires.eu e quando tento di fare un require con

    require 'medieval-empires.eu/nomepagina/nomepagina2'

    mi dice che non è stato trovato il path.

    Devo per forza far così per far fungere il tutto:
    require '/membri/medievalempires/nomepagina1/nomepagina2'

    come risolvo?

    EDIT: accedendo al sito dal dominio medieval-empires.eu non carica nemmeno più le immagini.
    Ultima modifica di medievalempires : 09-07-2022 alle ore 14.06.23

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

    Predefinito

    Citazione Originalmente inviato da medievalempires Visualizza messaggio
    require 'medieval-empires.eu/nomepagina/nomepagina2'
    Utilizza invece un path relativo:
    Codice PHP:
    require './nomepagina/nomepagina2';

    Citazione Originalmente inviato da medievalempires Visualizza messaggio
    EDIT: accedendo al sito dal dominio medieval-empires.eu non carica nemmeno più le immagini.
    Hai per caso abilitato l'antifurto banda? (da qui).
    Se non la trovi, puoi riportare il codice .htaccess?

    Ciao!
    Ultima modifica di alemoppo : 09-07-2022 alle ore 16.04.51
    medievalempires likes this.

  3. #3
    medievalempires non è connesso Utente Blog
    Data registrazione
    27-10-2021
    Messaggi
    10

    Predefinito

    Ciao, disattivando il furto banda ho risolto il problema delle immagini, ma quello del path persiste.
    codice php:
    Codice:
    require_once './includes/functions.inc.php';
    require_once '/membri/medievalempires/config.inc.php';
    errore:


    Fatal error
    : Uncaught Error: Failed opening required './includes/functions.inc.php' (include_path='.:') in /membri/medievalempires/main/pages/redirectExtraPage.php:4 Stack trace: #0 {main} thrown in
    /membri/medievalempires/main/pages/redirectExtraPage.php
    on line
    4

    htaccess :
    # # av:php5-engine
    AddHandler av-php8 .php
    Ultima modifica di medievalempires : 09-07-2022 alle ore 17.54.58

  4. #4
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Per certi account la directory è membri2 invece di membri. Puoi controllare qual'è quella giusta nel tuo caso con un piccolo file tipo:
    Codice PHP:
    <?php
    echo __DIR__;

  5. #5
    medievalempires non è connesso Utente Blog
    Data registrazione
    27-10-2021
    Messaggi
    10

    Predefinito

    si ma io non voglio sapere se è membri1 o membri2, voglio che scrivendo il nome del sito funzionino gli include e i require.

  6. #6
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Sono confuso. Se require e varianti non trovano un file, è perché hai usato un percorso sbagliato. Sapere il percorso corretto dovrebbe aiutarti

    voglio che scrivendo il nome del sito funzionino gli include e i require
    Forse c'è anche un po' di confusione qua: il nome che passi a require non è un indirizzo web, ma il percorso di un file su disco. Questo può essere un percorso relativo, od un percorso assoluto che comincia con /membri[nnn]/medievalempires/.

  7. #7
    medievalempires non è connesso Utente Blog
    Data registrazione
    27-10-2021
    Messaggi
    10

    Predefinito

    Okkey, ma vorrei evitare di scrivere i path con "/membri/medievalempires/(...)" semplicemente perchè mi toccherebbe modificarli ogni volta dato che sull'apache non è lo stesso percorso.

    attualmente su altervista per trovare il file "messaggi.php" devo scrivere:

    require "/membri/medievalempires/main/pages/messaggi.php"

    invece sul server apache:
    main/pages/messaggi.php

    come faccio dunque a evitare di avere path differenti nei due ambienti?
    c'è qualche modo per evitare di scrivere nel path "/membri/medievalempires/" ?

  8. #8
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Decisamente! Dover mettere path diversi su AlterVista sarebbe ingestibile.

    Usare path relativi dovrebbe funzionare come altrove. Dobbiam capire cosa c'è di sbagliato. Tipo: su AlterVista (e su Linux in generale) c'è differenza fra maiuscole e minuscole. Se in locale stai lavorando su Windows, magari hai usato lettere maiuscole per le directory?

  9. #9
    medievalempires non è connesso Utente Blog
    Data registrazione
    27-10-2021
    Messaggi
    10

    Predefinito

    no.
    Il problema è che su apache non uso come path relativo membri/medievalempires/

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

    Predefinito

    File index.php
    Codice PHP:
    <?php

    $fl
    = __FILE__;
    $var = dirname($fl);
    var_dump($var); // Path escluso il nome del file /menbri/nick
    var_dump($fl); // Path assoluto /membri/nick/index.php
    // Path relativo ./index.php della cartella corrente, la root web è una cartella con path assoluto /membri/nick

    ?>
    Il punto indica cartella corrente
    Ultima modifica di darbula : 10-07-2022 alle ore 09.26.56

  11. #11
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    @Darbula: quello è un modo molto complicato di scrivere echo __DIR__;

    Citazione Originalmente inviato da medievalempires Visualizza messaggio
    no.
    Il problema è che su apache non uso come path relativo membri/medievalempires/
    membri/medievalempires non è il path relativo, è quello assoluto. E traduco "su Apache" come "sul mio computer", perché anche AlterVista usa Apache.

    Puoi spiegarci bene dove sono i tuoi file, e come si richiamano l'un l'altro? Perché senza avere idea di dove siano è assai difficile suggerirti cosa fare.
    Ultima modifica di dreadnaut : 10-07-2022 alle ore 11.08.40

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

    Predefinito

    Citazione Originalmente inviato da dreadnaut Visualizza messaggio
    @Darbula: quello è un modo molto complicato di scrivere echo __DIR;
    Codice migliorato per spiegare la costante magica __FILE__ che indica il percorso assoluto e nome del file incluso.

  13. #13
    medievalempires non è connesso Utente Blog
    Data registrazione
    27-10-2021
    Messaggi
    10

    Predefinito

    mi sto incasinando il cervello.
    Vi spiego meglio il path per farvi capire meglio.

    Codice:
    main/pages/collection_point/collection_point.php <--- FILE IN CUI SONO ORA
    includes/function.php <---- FILE CHE VOGLIO INCLUDERE
    Come ci arrivo senza scrivere
    Codice:
    membri/medievalempires/includes/function.php
    ??

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

    Predefinito

    Come già spiegato, la via più saggia è usare un path relativo.

    Visto che è relativo, dipende da dove si trova lo script PHP che esegue require.

    Quel che devi fare è "navigare" con i nomi delle cartelle e "../" per tornare indietro.

    Visto che il tuo PHP è in "main/pages/collection_point/", dovrai tornare indietro di 3 cartelle, e poi partire da include.

    Codice PHP:
    require '../../../includes/function.php';
    Lo script che lancia il require è:
    main/pages/collection_point/collection_point.php

    • ./ -> (cartella corrente) -> puoi includere i file presenti nella cartella "collection_point"
    • ../ -> (indietro di 1) -> puoi includere i file presenti nella cartella "pages"
    • ../../ -> (indietro di 2) -> puoi includere i file presenti in "main"
    • ../../../ -> (indietro di 3) -> puoi includere i file presenti nella cartella che contiene "main" (che sarebbe /membri/medievalempires/)


    Ciao!
    Ultima modifica di alemoppo : 10-07-2022 alle ore 12.05.58

  15. #15
    medievalempires non è connesso Utente Blog
    Data registrazione
    27-10-2021
    Messaggi
    10

    Predefinito

    dovrò far così.
    Grazie mille a te e a tutti gli altri !

Regole di scrittura

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