• User Attivo

    Aiuto script

    Mi da errore alla stringa switch come mai?:

    [php]
    <?php
    $p="main"; //pagina di default per i contenuti centrali
    if(isset($_GET['page'])){ //pagina passata via parametro
    $p=$GET['page'];
    if($p!=basename($p) || !preg_match("/^[A-Za-z0-9-
    ]+$/",$p) || $p=="index" || !file_exists($p.".php"))
    $p="error"; //pagina di errore
    }

    switch($_GET["p"]){

    case "main":
    $titolo = "benvenuto in nome_pagina";
    $keywords = "key1";
    break;

    case "pluto":
    $titolo = "benvenuto in nome_pagina2";
    $keywords = "key2";
    break;

    default:
    $titolo = "this page isn't found";
    $keywords = "not found";
    break;

    }
    ?>
    [/php]
    Dove sbaglio?
    Grazie


  • Moderatore

    Esiste quella variabile? 🙂


  • User Attivo

    @massy said:

    Esiste quella variabile? 🙂
    No non esiste e non so come fargliela trovare 😞


  • Super User

    $_GET["p"] ?

    dubbio non era $_GET['p']


  • User Attivo

    Prova a sostituire con...

    $p = 'mail';

    if (isset($_GET['p'])) {
    $p = $_GET['p'];
    }

    switch ($p) {

    ....


  • Super User

    prima del codice switch inserisci:

    if (isset($_GET['p']))
    {
    switch etc etc
    }
    else
    echo "Il parametro P non esiste";

    se non esiste il parametro p è perchè la pagina viene chiamata senza il parametro nella querystring (quello che sta dopo il ?)
    es:

    www.tuosito,it/pagina.php?p=ciao

    :ciauz:


  • User Attivo

    @Tymba said:

    prima del codice switch inserisci:

    if (isset($_GET['p']))
    {
    switch etc etc
    }
    else
    echo "Il parametro P non esiste";

    se non esiste il parametro p è perchè la pagina viene chiamata senza il parametro nella querystring (quello che sta dopo il ?)
    es:

    www.tuosito,it/pagina.php?p=ciao

    :ciauz:

    Grazie a tutti faccio due prove e poi vi faccio sapere
    Ciaus


  • User Attivo

    Raga Funziona !!!!!
    Ho trovato dove era l'errore, la mia variabile era 'page' no 'p'
    Grazie a tutti vi posto il codice anche per gli altri utenti
    Ciao Siete Fortiiiiiii
    [php]
    <?php
    $p="main"; //pagina di default per i contenuti centrali
    if(isset($_GET['page'])){ //pagina passata via parametro
    $p=$GET['page'];
    if($p!=basename($p) || !preg_match("/^[A-Za-z0-9-
    ]+$/",$p) || $p=="index" || !file_exists($p.".php"))
    $p="error"; //pagina di errore
    }

    if (isset($_GET['page']))
    {

    switch($_GET['page']){

    case "main":
    $titolo = "benvenuto in Main";
    $keywords = "key1";
    break;

    case "pluto":
    $titolo = "benvenuto in Pluto";
    $keywords = "key2";
    break;

    default:
    $titolo = "Titolo generale";
    $keywords = "Key generale";
    break;

    }
    }
    else
    $titolo = "Titolo index";
    $keywords = "Key index";

    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="it" lang="it">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <meta name="Keywords" content="<?php echo "$keywords"; ?> Key uguali per tutte le pagine " />
    <title><?php echo "$titolo"; ?></title>
    </head>

    <body>

    <h1>Prova titolo</h1>

    <?php

    include($p.".php");

    ?>

    </body>
    </html>

    [/php]