Visualizzazione risultati 1 fino 18 di 18

Discussione: problema con codice php

  1. #1
    Guest

    Predefinito problema con codice php

    ciao a tutti...
    ho un problema...io ho un codice php che mi richiama altre pagine...
    Codice:
    <html>
    <head>
    <style type="text/css">
    A:hover {text-decoration:none;}
    A:link {text-decoration:none;}
    A:visited {text-decoration:none;}
    </style>
    <title>Telefilms Site</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <meta name="description" content="Telefilms Site - Sito che tratta argomenti come films, telefilms e altro ancora...">
    <meta name="Copyright" content="Pablo">
    <meta content="Pablo" name="author">
    
    
    <style type="text/css">
    <!--
    body,td,tr,table {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 10px;
    }
    body {
    margin-left: 0px;
    margin-top: 0px;
    margin-right: 0px;
    margin-bottom: 0px;
    }
    a, a:hover, a:visited {
    text-decoration: none; font-weight: bold
    }
    a, a:visited {
    color: #FFF
    }
    a:hover {
    color: #03F
    }
    a {
    font-weight: bold;
    }
    body {
    color:#FFF
    }
    .txtfin {font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 10px color:white;
    }
    -->
    
    
    
    
    
    
    
    
    
    </head> 
    <body style=" background-color: #000000">
    <table width="900" border="0" align="center" cellpadding="0" cellspacing="0">
    <tr align="center" valign="top">
    <td colspan="3"><span class="txtfin">
    <? include("top.php"); ?>
    </span></td>
    </tr>
    <tr>
    <td width="160" align="center" valign="top"><span class="txtfin">
    <? include("sinistra.php"); ?>
    </span></td>
    <td width="580" align="center" valign="top"><span class="txtfin">
    <? include("banner.php"); ?>
    
    <?php
    
        if(isSet($_GET['pagina'])) {
    
           $pippo=$_GET['pagina'];
    
    }
    
        else {
    
           $pagina=NULL;
    
    }
    
    
        if($pagina!=NULL) {
    
           if(file_exists("$pagina.php")){
    
                echo"<center>";
    
                include("$pagina.php");
    
                echo"</center>"; }
    
         if(!file_exists("$pagina.php")) {
    
                echo"<center>pagina inesistente"
    
                
    
                ."</center>";}
    
    }
    else {
    echo"<center>";
    include("home.php");
     echo"</center>";
    }
    
    ?> 
    </span></td>
    <td width="160" align="center" valign="top"><span class="txtfin">
    <? include("destra.php"); ?>
    </span></td>
    </table>
    </body>
    </html>
    Tutto funziona bene quando nella stessa directory in cui metto index (il file contenetne sto codice) metto anhce le varie pagine tipo: top.php, oppure sinistra.php etc..
    ma io però volevo invece che in ogni cartella del sito mettere tutti i files..i volevo mettere quelli tipo top.php home.php etc in una cartella fissa..per es: files e poi nel codice qua sopra cambaire da include: top.php a include:"http:/sito/files/top.php...io ho provato..ma nn funziona..nn riesce a "richiamarli"...il link in se è giusto..perkè se lo provo dal borwser funziona..ma sto codice sopra nn reisce a prendermelo..sapete il perkè?

    grazie ciao

  2. #2
    L'avatar di phpone
    phpone non è connesso AlterGuru
    Data registrazione
    05-09-2005
    Residenza
    Roma
    Messaggi
    1,217

    Predefinito

    non devi mettere http
    devi mettere l'url relativo

    cioe' se il file e' nella cartella a metti nell'include "sito/files/top.php"
    nella sottocartella metti "../sito/files/top.php"

  3. #3
    Guest

    Predefinito

    Citazione Originalmente inviato da phpone
    non devi mettere http
    devi mettere l'url relativo

    cioe' se il file e' nella cartella a metti nell'include "sito/files/top.php"
    nella sottocartella metti "../sito/files/top.php"
    ora ci provo..entro 10 min editto sto mesx dicendo se funziona o no..thx mille per intanto..
    no scusa nn ho capito...mi puoi spiegare meglio pf?
    cioè il file è top.php..
    la cartella è php
    il sito è telefilmsite.altervista.org
    me lo scrivi pf esattamente coem dovrebbe essere? per favore..
    Ultima modifica di telefilmsite : 04-10-2006 alle ore 20.37.19

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

  5. #5
    Guest

    Predefinito

    cmnq sia c'è un errore quando fai file_exists("$pagina.php") ... il dollaro non va

  6. #6
    Guest

    Predefinito

    Citazione Originalmente inviato da demenziale
    cmnq sia c'è un errore quando fai file_exists("$pagina.php") ... il dollaro non va
    scusa ma nn riesco a capire..tutto funziona...nn so se ci sono errorei o no.ma l'impo è che vada..siccome nn l'ho fatto io sto codice...nn sono capace a sistemarlo..naturalemtne eccetto qualche piccolo ritocco..

    Cmq grazie per il codice (che funziona)..nn so come ringraziarti...


    EDIT: il codice funziona..però io l'index.php che richiam le altre pagine..quella che ho messo come home..richiama tutto bn..ma uguale sol che con un altro home.php (la tabella centrale dove scrivo) nn va..esempio: http://telefilmsite.altervista.org funziona mentre http://telefilmsite.altervista.org/t...mars/index.php mi prende solo il file home ( che nn è col la path; php/home.php ma è solo home.php..cioè lo metto manualmente in ogni sezione)..rovate a vedere..stessa cossa se premet sul link episodi della prima stagione...perkè? non è forse possibile utlizzarlo in due pagine diverse?


    FunCool: Non fare UP, usa il tasto Edita.
    Ultima modifica di funcool : 06-10-2006 alle ore 18.56.00

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

    Predefinito

    Citazione Originalmente inviato da demenziale
    cmnq sia c'è un errore quando fai file_exists("$pagina.php") ... il dollaro non va
    beh, il dollaro non è obbligatorio, però è valido cmq

  8. #8
    Guest

    Predefinito

    io non so quale fosse lo scopo, però sebbene sia giusto sia col dollaro che senza gli effetti prodotti sono molto diversi
    col dollaro viene considerata la pagina il cui nome è composto da $pagina (variabile passata col metodo get) + ".php"
    senza dolalro viene considerata la pagina "pagina.php" che è tutta un'altra cosa..

  9. #9
    Guest

    Predefinito

    scusate ma qui state tutti parlando del dollaro..ma nn so a che cosa vi riferite...lo scopo è che il coidce postato nel primo post è quello della pagina index.php che mi richiama in automatico le seguenti pagien: destra.php sinistra.php top.php banner.php e home.php...
    io ho chiesto quale link dovevo indicare per far raggiungere le pagine anche online..e me l'hanno detto e funziona..però ora ho un altro problema: la index csi modificata funziona in home page, ma nn nella sezione che vi ho indicato nell'ultimo post..è questo vhe voglio sapere come risolvere..grazie ciao

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

    Predefinito

    tu stai usando dei path relativi. quindi il tuo php cerca le pagine spostandosi dalla directory in cui si trova. se sei in / e gli dici di andare in php/ allora funziona, ma se sei in /news e gli dici di andare in php/, allora cercherà i dati in /news/php !

    una soluzione può essere usare il path assoluto, che credo sia
    Codice PHP:
    $pathassoluto = "/membri/telefilmsite/";
    a questo punto puoi metterlo in tutti gli include, e.g.
    Codice PHP:
    include($pathassoluto . "top.php");
    In più, il tuo codice si stà contorcendo un po' troppo fra if ed else Lo puoi raddrizzare così:
    Codice PHP:
    if ( isSet($_GET['pagina']) ) {
    $pagina = $_GET['pagina'];
    } else {
    // eliminiamo il NULL -> se non c'è pagina, ciò che vuoi è la home
    $pagina = "home";
    }

    $pagina = $pathassoluto . $pagina . ".php";

    echo
    "<center>"; // questo avviene in ogni caso

    if ( file_exists($pagina) ) {
    include(
    $pagina);
    } else {
    // ovvero, if !file_exists
    echo"pagina inesistente";
    }

    echo
    "</center>"; // questo pure
    @soulhome:
    scusa, avevo letto male io. pensavo fosse un problema di "$pagina.php" vs. $pagina . ".php"
    Ultima modifica di dreadnaut : 06-10-2006 alle ore 21.04.23 Motivo: mmh. path sbagliato

  11. #11
    Guest

    Predefinito

    Citazione Originalmente inviato da dreadnaut
    tu stai usando dei path relativi. quindi il tuo php cerca le pagine spostandosi dalla directory in cui si trova. se sei in / e gli dici di andare in php/ allora funziona, ma se sei in /news e gli dici di andare in php/, allora cercherà i dati in /news/php !

    una soluzione può essere usare il path assoluto, che credo sia
    Codice PHP:
    $pathassoluto = "/membri/telefilmsite/";
    a questo punto puoi metterlo in tutti gli include, e.g.
    Codice PHP:
    include($pathassoluto . "top.php");
    In più, il tuo codice si stà contorcendo un po' troppo fra if ed else Lo puoi raddrizzare così:
    Codice PHP:
    if ( isSet($_GET['pagina']) ) {
    $pagina = $_GET['pagina'];
    } else {
    // eliminiamo il NULL -> se non c'è pagina, ciò che vuoi è la home
    $pagina = "home";
    }

    $pagina = $pathassoluto . $pagina . ".php";

    echo
    "<center>"; // questo avviene in ogni caso

    if ( file_exists($pagina) ) {
    include(
    $pagina);
    } else {
    // ovvero, if !file_exists
    echo"pagina inesistente";
    }

    echo
    "</center>"; // questo pure
    @soulhome:
    scusa, avevo letto male io. pensavo fosse un problema di "$pagina.php" vs. $pagina . ".php"
    grazie mile..solo ceh vorrei chiederti una cs..forse esagero un po'...
    cmq volevo chiederti se mi potevi riscrivere il codice che ho messo in prima pagina, corretto come pensi che sia..e con dentro quel path assoluto che nn saprei dove mettere...spero che tu possa e voglia farmelo..cmq grazie lo stesso..ciao

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

    Predefinito

    beh l'idea era di consigliarti e non ti farti il lavoro cmq, prendi il tuo codice, all'inizio ci metti "$pathassoluto = ...", a tutti gli include aggiungi $pathassoluto, e poi invece del tuo php centrale, metti quello sopra, che è equivalente. Niente di astruso

  13. #13
    Guest

    Predefinito

    Citazione Originalmente inviato da dreadnaut
    beh l'idea era di consigliarti e non ti farti il lavoro cmq, prendi il tuo codice, all'inizio ci metti "$pathassoluto = ...", a tutti gli include aggiungi $pathassoluto, e poi invece del tuo php centrale, metti quello sopra, che è equivalente. Niente di astruso
    scus ama nn ti seguo..cioè mett: "$pathassoluto = ..." in cima..così scritto..senza modifiche...e poi cs significa invece che include?
    e cs significa invece del php centrale quello sopra????? scusa ma nn capisco bn..

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

    Predefinito

    polemica sterile !
    non so se ho voglia di perdere tempo a spiegarti le cose, se tu non perdi neanche un secondo a rendere i tuoi messaggi leggibili. nn, mett, cs e bn sono tutti termini che non conosco. Mi piacerebbe vedere delle virgole, un costrutto sintattico, ed i puntini di sospensione dovrebbero essere sempre tre ( "..." ) seguiti da uno spazio o un ritorno a capo.

    bene, ora che ho scaricato un po' di tossine, cerco di spiegarmi meglio

    devi assegnare un valore alla variabile $pathassoluto, prima di poterla usare. Quindi all'inizio della pagina devi inserire la sua assegnazione, ovvero
    Codice PHP:
    <?php $pathassoluto = "/membri/telefilmsite/"; ?>
    Poi dobbiamo usare questo valore per far sì che il tuo script cerchi i file da includere nel posto giusto, quindi tutti le chiamate ad include vanno modificate in
    Codice PHP:
    include( $pathassoluto . "nomefile.php" );
    (dove nomefile è la pagina che stai cercando...)

    Il "php al centro" invece è quel grosso blocco di php a metà strada nel tuo codice. Tutto quel blocco va sostituito con il codice che ti ho consigliato qualche messaggio fa in questo stesso thread, che dovrebbe raggiungere lo stesso risultato.
    Ultima modifica di dreadnaut : 08-10-2006 alle ore 21.25.41

  15. #15
    Guest

    Predefinito

    scusa se scrivo abbreviato, non me accorgo..comunque ora scrivo "civilmente"...
    allora, io ho provato a sostituire il mio top.php nel seguente modo, esattamente come lo scrivo ora:
    Codice:
    <? include("php/top.php"); ?>
    diventa

    Codice:
    include( $pathassoluto . "top.php" );
    È giusto così, senza nessuna parentesi triangolare?

    Poi un altra domanda:
    Codice:
    <?php $pathassoluto = "/membri/telefilmsite/"; ?>
    va inserito inserito prorpio in cima alla pagina index.php (quella che richiama le altre)?
    sopra <html> e tutti gli altri, oppure nelle tag <head>?

    PS: io mi ricordo che quando avevo problemi non so più per cosa, mi usciva una scritta errore simile a qualcosa e poi /membri2/telefilmsite/ quinidi (ora non centra questo problema perchè l'ho già risolto) volevo solo chiederti, se invece che
    Codice:
     <?php $pathassoluto = "/membri/telefilmsite/"; ?>
    non andrebbe
    Codice:
    <?php $pathassoluto = "/membri2/telefilmsite/"; ?>
    È solo un dubbio...
    Grazie per la pazienza, ciao

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

    Predefinito

    Citazione Originalmente inviato da telefilmsite
    Codice:
    include( $pathassoluto . "top.php" );
    È giusto così, senza nessuna parentesi triangolare?
    mmmh no, le parentesi lasciale: il php deve essere sempre compreso fra <? e ?>

    Citazione Originalmente inviato da telefilmsite
    Codice:
    <?php $pathassoluto = "/membri/telefilmsite/"; ?>
    va inserito inserito prorpio in cima alla pagina index.php (quella che richiama le altre)? sopra <html> e tutti gli altri, oppure nelle tag <head>?
    dato che quella riga non produce niente in output, la posizione esatta non ha importanza; basta che si prima dei vari comandi include che usano $pathassoluto.

    Citazione Originalmente inviato da telefilmsite
    PS: io mi ricordo che quando avevo problemi non so più per cosa, mi usciva una scritta errore simile a qualcosa e poi /membri2/telefilmsite/ quindi (ora non centra questo problema perchè l'ho già risolto)
    si si, l'avevo detto che non ero certo su membri . Se tu sai che il tuo sito è in membri2, metti quello !

  17. #17
    Guest

    Predefinito

    ecco..volevo dirti che funziona tutto benissimo.. non so come ringraziarti...grazie per la pazienza e per l'aiuto, ciao...
    Potete chiudere...
    Ultima modifica di telefilmsite : 09-10-2006 alle ore 18.07.57

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

    Predefinito

    Citazione Originalmente inviato da telefilmsite
    Potete chiudere...
    Allora chiudo!
    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

Regole di scrittura

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