Visualizzazione risultati 1 fino 25 di 25

Discussione: Include e function

  1. #1
    TrainWeb non è connesso Utente
    Data registrazione
    16-10-2002
    Messaggi
    212

    Angry Include e function

    Un saluto a tutto il forum.

    Premesso che sto ancora imparando nonostante è già molto tempo che mi do da fare con il php, non riesco mai a capire quali siano i metodi giusti e quelli sbagliati anche per questo mi sono deciso a parlanre sul forum. Mi spiego meglio:

    Sto seguendo un tutorial che mi permetta di inserire delle informazione mediante un form nel file insert.php che passa i valori immessi mediante method post nel file save.php e, dopo verifica della passord e del corretto inserimento di valori, li va ad inserire nel database mysql.

    Per cui ho un file chiamato top_foot_inc.php nel quale sono inserite due funzioni dichiarate nel seguente modo:
    Codice:
    <?function top(){ ?> 
    //seguito da 
    <html><head>titolo</head> 
    blablabla blablabla
     
    <? } 
     
    function foot () { ?>
     
    </body>
     
    </html>
     
    <? } ? >
    Bene a questo punto, stando a quanto scritto dal tutorial, mi basta includere il file con il quale ho creato la funzione, ovvero include (“top_foo.inc.php”); e richiamare all’occorrenza top(); e foot();

    E invece no, nel file insert.php, quando premoinvia per passare i dati a save.php, nada, non funziona, mi continua a dare sempre lo stesso errore:

    Fatal error. Cannot redeclare top() (previously in c:\blablabla\www\app\top_foot.inc.php:9) in c:\blablabla\www\app\top_foot.inc.php on line 1

    Se invece nel file save.php richiamo top() e foot()senza usare include, allora lo script funziona. Mentre, al contrario, in insert.php devo perforza includere top_foot.inc.php altrimenti genera errore.

    Sempre nello stesso tutorial c’è scritto di utilizzare il seguente codice per recuperare i dati per poi inserirli nel database:
    Codice:
     
    <? include(“top_foot.inc.php”);
     
    include (“config.inc.php”);
     
    top();
     
    if ($pass !=$password); //la variabile $password è memorizzata nel file config.inc.php
     
    echo “password errata;
     
    elseif (trim($titolo)== “” OR trim($testo)==””);
     
    echo I campi Titoli e Testo devono essere riempiti!”;
     
    else:
     
    $titolo = addslashes(stripslashes($titolo));
     
    //Etc, etc
     
    //Poi ancora
     
    If (mysql_query($query, $db))
     
    Echo “l’articolo è stato inserito correttamente”;
     
    else
     
    echo “Errore durante l’inserimento”;
     
    mysql_close($db);
     
    endif;
     
    foot();
     
    ?>


    Anche sta volta non funziona nulla, ho dovuto modificare il codice inserendo le parentesi graffe { } ed eliminare endif e qualcos’altro.

    Insomma io mi chiedo come diavolo posso imparare se ci sono delle discrepanze fra quello che viene detto o scritto e quello che realmente accade durante l’esecuzione?

    Esiste un tutorial che spiega bene bene tutte le fasi dello script con relativa sintassi?

    Scusate la lungaggine del post, ma era necessario anche perché così mi sono sfogato.

    Grazie per l'attenzione
    TrainWeb

  2. #2
    Guest

    Predefinito

    train nn ho capito una cosa...ma tu il problema alla fine l'hai risolto?
    cmq se vuoi trovare un buon tutorial vai su freephp.html.it e se ancora nn ti basta scaricati la documentazione ufficiale in italiano da qst link
    http://it2.php.net/get/php_manual_it...php.net/mirror
    è un po' grande ma c'è tutto (su php.net c'è anche la versione online).
    cmq il problema dell'endif è dovuto al fatto ke probabilmente la versione del tuo modulo php è + recente di quella xcui il codice è stato scritto, infatti la sintassi del costrutto if...endif è stata cambiata(anke se quella del codice ke hai postato tu mi sembra che sia comunque sbagliata).

  3. #3
    TrainWeb non è connesso Utente
    Data registrazione
    16-10-2002
    Messaggi
    212

    Predefinito

    Diciamo che qualcosa ho risolto, non tutto però.
    TrainWeb

  4. #4
    Guest

    Predefinito

    ma è il tutorial di freephp.html.it quello su creare uno script sulle news??

    se è quello negli script italiani c'è già uno script per le news uguale identico spiccicato a quello spiegato nel tutorial mi pare si chiama meganoide news o qualcosa del genere

  5. #5
    TrainWeb non è connesso Utente
    Data registrazione
    16-10-2002
    Messaggi
    212

    Predefinito

    Quello che ho io non ricordo dove l'ho scricato, anche perchè ne ho diversi da siti diversi, comunque il tutorial si chiama Breve introduzione ai database relazionali
    TrainWeb

  6. #6
    Guest

  7. #7
    TrainWeb non è connesso Utente
    Data registrazione
    16-10-2002
    Messaggi
    212

    Predefinito

    Si è quello di freephp, ma è molto semplificato rispetto a quello di Meganoide's news v1.1.1.
    TrainWeb

  8. #8
    L'avatar di Leo91
    Leo91 non è connesso Altervistiano Junior
    Data registrazione
    28-03-2004
    Residenza
    alle tue spalle
    Messaggi
    728

  9. #9
    TrainWeb non è connesso Utente
    Data registrazione
    16-10-2002
    Messaggi
    212

    Predefinito

    Dici a me?
    Non hai letto il promo msg?
    Premesso che sto ancora imparando .........................
    Se fossi stato un esperto stavo qui a dispensare aiuti non a chiederli
    TrainWeb

  10. #10
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Partendo dal fatto che non ho capito molto: credo che il tuo problema sia il fatto che hai "incluso" più volte il file top_foot.inc.php o che ci sia già una funzione che si chiama Top().
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  11. #11
    TrainWeb non è connesso Utente
    Data registrazione
    16-10-2002
    Messaggi
    212

    Predefinito

    Cosa non hai capito?
    Riassumendo il tutto in modo seplicistico, in un file inserisco include ("top_foot.inc.php") e poi richiamo la funzione con top() e foot() e funziona, in un altro file inserisco solo top() e foot() senza include e funziona. Il perchè, bho non lo so.
    TrainWeb

  12. #12
    Guest

    Predefinito

    ma nn ha senso è impossibile che richiamando due funzioni di un file esterno senza prima averlo incluso(prima di dove vengono richiamate le funz) queste funzionano

  13. #13
    TrainWeb non è connesso Utente
    Data registrazione
    16-10-2002
    Messaggi
    212

    Predefinito

    Già anche io non mi capacito.
    Sto guardando e riguardando i file, ma non riesco a trovare il problema.
    TrainWeb

  14. #14
    Guest

    Predefinito

    nn è che magari è richiamato un file php che contiene le 2 funzioni?

  15. #15
    TrainWeb non è connesso Utente
    Data registrazione
    16-10-2002
    Messaggi
    212

    Predefinito

    Citazione Originalmente inviato da marioprova
    nn è che magari è richiamato un file php che contiene le 2 funzioni?
    DEvo controllare meglio, a mente fresca, altrimenti l'erroe magari c'è l'ho sotto gli occi e non lo vedo.
    Cmq, ammettiamo pure che sia così, ovvero es. nel file pippo.php includo top_foo.inc.php e richiamo le funzione top() e foot(), poi in un file pluto.php inserisco include ("pippo.php"), è possibile richiamare le due funzioni top e foot senza includere top_foot.inc.php?
    Perchè se è così allora è molto probabile che sia l+ l'errore, ovviamente devo controllare.
    TrainWeb

  16. #16
    Data registrazione
    09-12-2004
    Residenza
    Roma
    Messaggi
    103

    Predefinito

    non sono sicuro di aver capito ma dall'errore che dava è come se nella pagina dalle quale non fai l'include lui riesce ugualmente a leggere i metodi giusto?
    non è che per caso tu fai questo:
    dalla pagina A includi la pagina B (quella con i metodi)
    dalla pagina C includi A
    la C è quella dove richiami i metodi che in teoria pensavi non funzionassero..
    se è cosi dovrebbe essere giusto che ti trova quei metodi..
    sxo che fosse qsto il problema.. ciao


    hai postato mentre scrivevo io..
    è proprio l'errore che ti suggerivo..

  17. #17
    Guest

    Predefinito

    ma come si fa a citare?
    va beh cito:

    nel file pippo.php includo top_foo.inc.php e richiamo le funzione top() e foot(), poi in un file pluto.php inserisco include ("pippo.php"), è possibile richiamare le due funzioni top e foot senza includere top_foot.inc.php?

    certo che si può pensavo che lo sapessi, se si include un file php questo è come se fosse stato scritto all'interno del file dove è stato incluso e vale per tutti i file inclusi che richiamano un include(forse nn si capisce quel che ho scritto ma la risposta e sì)

  18. #18
    TrainWeb non è connesso Utente
    Data registrazione
    16-10-2002
    Messaggi
    212

    Predefinito

    Praticamente è quello che ho detto io nel post precedente usando un esempio diverso. Cmq, devo controllare i file che sono su un altro pc, per l'esattezza un notebbok.
    Certo che sè è così mi mangio i cosiddetti
    TrainWeb

  19. #19
    Guest

    Predefinito

    beh calmati nn ti preoccupare se vuoi una mano prova a postare gli script o fa in modo che possiamo vederli

  20. #20
    TrainWeb non è connesso Utente
    Data registrazione
    16-10-2002
    Messaggi
    212

    Predefinito

    Citazione Originalmente inviato da marioprova
    beh calmati nn ti preoccupare se vuoi una mano prova a postare gli script o fa in modo che possiamo vederli
    Scusa forse mi sono espresso male nell'ultimo post, non era mia intenzione di apparire incavolato o contrariato per nulla, anzi, se ho postato in questo forum per chiedere aiuto l'ho fatto in piena coscienza sapendo che a rispondere ci sarebbe stata gente capace e molto disponibile, me neguarderei bene ad incavolarmi pure o essere scortese
    grazie
    Byz
    TrainWeb

  21. #21
    Guest

    Predefinito

    sostituisci gli include(file)

    con include_once(file)

    e dovresti aver risolto ogni problema di inclusioni multiple

    mavericck

  22. #22
    TrainWeb non è connesso Utente
    Data registrazione
    16-10-2002
    Messaggi
    212

    Predefinito

    Giusto così per capire, se dovessi accorgermi che il problema è quello e lascio le cose così, cioè includere un file che ha gia incluso e chiamato la stessa funzione, per evitare di ripetere l'include (visto che cmq da errore) la prassi è giusta?
    Include_once serve per utilizzare l'inclusione solo nel file in cui è indicato?

    Ciao
    TrainWeb

  23. #23
    Guest

    Predefinito

    include_once(), al contrario di include() controlla che il file non sia già stato incluso precedentemente (in qualunque altro file), e in caso affermativo non lo include nuovamente

    mavericck

  24. #24
    TrainWeb non è connesso Utente
    Data registrazione
    16-10-2002
    Messaggi
    212

    Predefinito

    Grazie mavericck
    Finalmente un po di luce in questo buio tremendo, mi chiedo a volte se mai riuscirò ad imparare per benino il php. Menomale che esistono i forum di discussione.
    Ora non mi rimane di controllare se è giusto questo l'errore che ho commesso e poi vi faccio sapere così chiudiamo questa mia odissea.
    byz
    TrainWeb

  25. #25
    TrainWeb non è connesso Utente
    Data registrazione
    16-10-2002
    Messaggi
    212

    Thumbs up

    RISOLTO praticamente mi avevo creato un file per la connessione al database per evitare ogni volta l'inserimento degli stessi parametri per la connessione, e qui che avevo inserito per errore include("top_foot.inc.pcp"); e quindi richiamare le due funzioni (che tra la'ltro non servivano a niente in questo file.. mha ).

    Scusate e ringrazio tutti gli intervenuti al 3D.

    TrainWeb

Regole di scrittura

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