Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [PHP] problema require_once

    Ciao a tutti,

    ho un piccolo problemino con questo benedetto require_once.

    Allora quello che ho appreso è che tutto ciò che metto in require_once lo devo avere prima nel file php.ini alla voce include_path, cioè se:

    require_once 'C:/mia_applicazione/index.php';

    ad esempio, allora nel php.ini dovrò scrivere:

    include_path = ".;C:\mia_applicazione\"

    è giusto o no?

    Ora assodato che lo sia, vi illustro dove ho il problema, vi semplifico la struttura perché altrimenti sarebbe complicato spiegarvelo.

    allora supponiamo che io abbia come file i seguenti:

    C:\mia_applicazione\CO\business\pippoLogic.php
    C:\mia_applicazione\CO\business\paperinoLogic.php
    C:\mia_applicazione\CO\models\pippo.php
    C:\mia_applicazione\CO\models\paperino.php
    C:\mia_applicazione\PE\DAO\pippoDAO.php
    C:\mia_applicazione\PE\DAO\paperinoDAO.php

    ora a me serve che dentro pippoLogic.php ci sia:

    require_once '../../PE/DAO/pippoDAO.php';
    require_once '../../CO/models/pippo.php';

    e in paperinoLogic.php:

    require_once '../../PE/DAO/paperinoDAO.php';
    require_once '../../CO/models/paperino.php';

    ora premettendo che dalla disperazione ho incluso nell'include_path del php.ini tutti i percorsi sopra indicati, la situazione è la seguente:

    i require_once in pippoLogic funzionano, mentre in paperinoLogic no, quando eseguo lo script mi continua a dire che non trova un benedetto nulla nel percorso che ho specificato nei require_once di paperino.

    Spero che qualcuno mi sappia indicare una soluzione perché non so più dove mettere le mani.

    Tra l'altro ovunque ho trovato appunti su questo argomento leggo che sarebbe sufficiente, una volta specificato l'include_path, scrivere i percorsi in require_once a partire dallo slash e non dal punto punto per salire di directory e invece io devo per forza utilizzare il punto punto perché altrimenti non funziona manco così


    Grazie in anticipo

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    398

    Re: [PHP] problema require_once

    Originariamente inviato da massimiliano76
    Ciao a tutti,

    ho un piccolo problemino con questo benedetto require_once.

    Allora quello che ho appreso è che tutto ciò che metto in require_once lo devo avere prima nel file php.ini alla voce include_path
    è giusto o no?
    No; l'include path serve per comodità per non doverla ripetere
    Ma se usi path assolute o relative mettere la path nel php.ini non serve a nulla.
    Inoltre puoi modificare l'include path via script con la funzione set_include_path

    Ti sconsiglio ti modificare il php.ini per le tue appllicazioni meglio farlo via script.

    Originariamente inviato da massimiliano76
    Ora assodato che lo sia, vi illustro dove ho il problema, ...
    Se quello che hai scritto è vero deve andare.
    Ti suggerisco di eliminare tutta la schifezza che hai aggiunto nel php.ini e analizzare bene la cosa

    Andrea

  3. #3
    Ok ma il set_include lo devo utilizzare in ogni nuovo file php e poi proseguire con il require_once?

  4. #4
    No non funziona una emerita.....

    a questopunto non c'ho capito io niente.

    Sto utilizzando XAMPP e quindi l'installazione di php 5.2.8 e mi piacerebbe che qualcuno mi chiarisca il require_once senza indicarmi guide online perché le ho già lette tutte.

    continuo a beccare quel warning benedetto con failed to open stream: No such file or directory in e il file php dove ho il require_once che va in errore.

    I path sono corretti, su internet non trovo granché su questo problema tranne cose che so già, ho utilizzato anche il set_include_path, ma continua a darmi gli stessi problemi.

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    398
    Non è difficile
    le funzioni include ,include_once, require, require_once
    espandono il file indicato nel punto in cui chiami la funzione.

    sarebbe uguale se facessi il copia incolla del contenuto del file punto in cui chiami la funzione.
    Detto questo la differenza tra le require e include è che la prima ti da errore se il file che cerchi di espandere non errore la seconda tira dritto se il file non esiste.
    La differenza su once o meno è che se c'è once e il file viene incluso piu volte il file viene espanso solo la prima.

    Questo è fonamentale quando , per esempio , in un include definisci una funzione e la includi in piu file che si includo fra loro.

    Detto questo tornando a quello che fa la funzione è espandere il file che gli dici di espandere.
    I motivi per qui non lo fa possono essere due
    o il file non è dove gli dici di essere
    o non hai i diritti di lettura del file


    fine.
    Non ho altro da aggiungere e non saprei che altro dire.

  6. #6

    Re: [PHP] problema require_once

    Originariamente inviato da massimiliano76
    ho un piccolo problemino con questo benedetto require_once.
    Ti invito a leggere questo articolo:

    Gestire le inclusioni di file in PHP

  7. #7
    Si l'articolo l'ho letto, e il mistero rimane, in quanto cita già tutto quello che conoscevo in merito e ho applicato, il mistero del perché su un file funziona e su un altro no non sono riuscito a svelarlo. Comunque per il momento ho adottato la soluzione sicuramente meno conveniente che è quella del percorso assoluto.

    Grazie lo stesso a tutti

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.