[css][php] codice php esterno non vede il css

MatteoZ

Nuovo Utente
28 Mar 2018
3
0
1
39
Buongiorno,
Stavo realizzando un sito per la visualizzazione di dati, ho creato una pagina index che, a seconda del parametro, carica diversi script in php
Esempio:
Codice:
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Prova Web</title>
    <link rel="stylesheet" type="text/css" href="css/bootstrap.css">
    <link rel="stylesheet" type="text/css" href="css/style.css">
</head>
    <?php
        $titolo = '';
        $pagina = '';
        if (isset($_GET['p'])) {
            $titolo = $_GET['p'];
            //se la pagina ha un parametro 'p' assegno alla variabile pagina il nuovo percorso
            $pagina = $_GET['p'] . '/index.php';
            //Se il percorso non esiste ritorno una pagina di errore
            if(!file_exists($pagina)) {
                $pagina = 'php/404.php';
            }
        }
    ?>
    <body>
        <?php
            require ('header/index.php');
            //Questo carica il menù laterale
            require ("menu/index.php");
        ?>
        <div id="stripe-index">
            <?php
                //carico il contenuto della pagina
                if($pagina != ''){
                    require ($pagina);
                }
            ?>
        </div>
    </body>
</html>
Il problema è che non riesco ad applicare lo style.css alla $pagina che carico col require.
è possibile correggere? devo creare uno style per ogni pagina secondaria?

Grazie Mille

Matteo
 

MatteoZ

Nuovo Utente
28 Mar 2018
3
0
1
39
dentro la variabile $pagina c'è il percorso della sottopagina: "[nome sottocartella]/index.php", dentro la "[nome sottocartella]/index.php" c'è una porzione di pagina html\php, così posso scrivere solo una volta l'header, menu e eventuale footer, inoltre dato che il codice viene caricato solo dalla pagina principale, tutti i riferimenti "dovrebbero" essere relativi alla pagina principale
 

marino51

Utente Attivo
28 Feb 2013
2.951
171
63
Lombardia
per come le hai referenziate, tutte le cartelle,
css, $_GET['p'], header, menu, php ed eventuali altre,
devono stare nella cartella dove si trova lo script che le richiama,

se fossero altrove come già suggerito va usato un percorso simile a
href="../styles/Style.css">
che dipende da quante cartelle si devono "percorrere" per tornare verso la root (senza necessariamente raggiungerla)
e poi ridiscendere nell'albero giusto

se ciò è soddisfatto occorre cercare altro
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
146
63
PR
www.borgo-italia.it
ciao
il mio dubbio era questo, cosa che senza pensarci può capitare,
sia questa schematicamente la pagina che con il require chiama
PHP:
<!doctype html>
<html lang="en">
<head>
<!--  tutto l'head che serve -->
</head>
<body>
<!--  tutto l'html che serve -->
<?php
require "altra_pagina.php";
?>
<!--  tutto l'html che serve -->
</body>
</html>
e ipotizziamo che altra_pagina.php sia così
PHP:
<!doctype html>
<html lang="en">
<head>
<!--  tutto l'head che serve -->
</head>
<body>
<?php
echo "<p>ho chiamato altra pagina</p>";
?>
</body>
</html>
a require eseguito la pagina chiamante risulta essere (cosi la legge il browser)
PHP:
<!doctype html>
<html lang="en">
<head>
<!--  tutto l'head che serve -->
</head>
<body>
<!--  tutto l'html che serve -->
<!doctype html>
<html lang="en">
<head>
<!--  tutto l'head che serve -->
</head>
<body>
<p>ho chiamato altra pagina</p>
</body>
</html>
<!--  tutto l'html che serve -->
</body>
</html>
se noti nella stessa pagina ti ritrovi raddoppiato il doctipe e i gli altri tag html. head, body con conseguente casino
in un cerso sensa usare il require o l'include corrrsponde a scrivere nella pagina che chiama il codice chiamato
 

Oswold

Utente Attivo
7 Ago 2013
81
0
6
Catania
Per caricare le pagine degli stili utilizza questa notazione in modo che sia visibile a partire da qualsiasi posizione:

PHP:
require $_SERVER['DOCUMENT_ROOT'].'/path_a_partire_dalla_root