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

    PHP cos'è che sbaglio nello script?

    Io ho questo script che funziona:

    if( ($name=="Abbonamenti")&&(($title=="IN EDICOLA") || ($title=="MENU
    EXTRA") || ($title=="LOG") || ($title=="MAIN MENU")) ){
    //non mostra i menu in edicola e menu extra
    echo"";

    Vorrei che altre pagine comprese ($name=="Abbonamenti") non si vedessero in menu.
    E' giusto cambiarla così??????????????????

    if( ($name=="Abbonamenti")&&($name=="Madeche")&&(($tit le=="IN EDICOLA") || ($title=="MENU
    EXTRA") || ($title=="LOG") || ($title=="MAIN MENU")) ){
    //non mostra i menu in edicola e menu extra anche Madeche
    echo"";

    Rispondetemi nel forum, grazie

  2. #2
    A prescindere che dovresti scrivere così:

    Codice PHP:
    if( 
    $name=="Abbonamenti" && 
    $title=="IN EDICOLA" || 
    $title=="MENU EXTRA" || 
    $title=="LOG" || $title=="MAIN MENU")  {
    // tutto quello che devi fare se si verifica questa condizione

    Le mie domande sono:
    1) sei sicuro della sintassi alternata di AND e OR nella condizione dell'IF??
    2) le voci che controlli nellì'IF sono i nomi delle pagine oppure l'etichetta del link?

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  3. #3
    considerando che so veramente poco di php:

    Abbonamenti è una pagina modulo mentre IN EDICOLA, LOG ecc. sono dei blocchi che vanno sulla pagina modulo di defalt.
    In questo modo riesco a non farli visualizzare.
    Il problema è:
    Se dovessi visualizzare altre pagine (come ad esempio MADECHE) senza che si vedono gli stessi blocchi come devo procedere???

    1) sei sicuro della sintassi alternata di AND e OR nella condizione dell'IF??
    no, ci sto provando. La prima funziona.
    Se ci aggiungo altre, non so cosa scrivere

  4. #4
    per capirci vorrei fare qualcosa di simile:

    if( ($name=="Abbonamenti" or $name=="Madeche" or $name=="vattelapesca" or $name=="non sopiu")&&(($title=="IN EDICOLA") || ($title=="MENU
    EXTRA") || ($title=="LOG") || ($title=="MAIN MENU")) ){
    //non mostra i menu in edicola e menu extra in tutte queste pagine
    echo"";

    non so cosa mettere. "OR" va bene????

  5. #5
    Allora.... per spiegare.
    È sconsigliabile lanciare con la fionda gli AND e gli OR in una condizione di un IF. Questo perché, soprattutto con clausole articolate come quella che vuoi implementare te, si rischiano i cosiddetti falsi positivi, oppure i falsi negativi.
    Non è difficilissimo scegliere quale condizione usare, visto che il loro funzionamento è assolutamente logico e collegato al significato.

    Se usi AND significa che tutte le condizioni collegate devono risultare vere. Con l'OR ti puoi permettere che ci sia una condizione oppure un'altra.

    Questo come introduzione, alla prossima risposta.
    Quoto per cercare di rendere la mia risposta più esemplificativa, e per aiutare me stesso ad avere un minimo di chiarezza di base.

    Abbonamenti è una pagina modulo mentre IN EDICOLA, LOG ecc. sono dei blocchi che vanno sulla pagina modulo di defalt.
    Parli di pagina sviluppata a moduli, per cui suppongo che c'è una variabile name presente nella URL (che risulterà del tipo pagina.php?name=abbonamenti), in relazione alla quale vai a caricare del codice che genera un menù.
    Spero di non sbagliare perché sennò spreco tempo a scrivere del codice.

    Ad ogni modo, quando hai una pagina strutturata a moduli, ti consiglio l'uso dello switch() <= (apri questo link per vedere il manuale ufficiale cosa riporta per questa funzione).

    Se il mio ragionamento su quello che serve a te è giusto, il codice che devi usare per la tua pagina è:

    Codice PHP:
    // ammesso che il link che passi sia strutturato così
    // pagina.php?name=abbonamenti

    // recupero la variabile
    $name $_GET['name'];

    switch(
    $name) {
    case 
    "abbonamenti":
    /*
    crei una variabile dove metti il codice per visualizzare 
    il menù per la pagina abbonamenti
    */
    $menu "
    <a href=\"voce1.php\">Voce 1</a> ::: 
    <a href=\"voce2.php\">Voce 2</a> ::: 
    <a href=\"voce3.php\">Voce 3</a> :::
    "
    ;

    /*
    crei una variabile dove metti il codice per visualizzare 
    quello di cui necessiti nella pagina abbonamenti
    */

    $contenuto_pagina "............";

    break;

    case 
    "caso2":
    /*
    crei una variabile dove metti il codice per visualizzare 
    il menù per la pagina caso2
    */
    $menu "
    <a href=\"voce4.php\">Voce 4</a> ::: 
    <a href=\"voce5.php\">Voce 5</a> ::: 
    <a href=\"voce6.php\">Voce 6</a> :::
    "
    ;

    /*
    crei una variabile dove metti il codice per visualizzare 
    quello di cui necessiti nella pagina caso2
    */

    $contenuto_pagina "............";

    break;

    case 
    "caso3":
    /*
    crei una variabile dove metti il codice per visualizzare 
    il menù per la pagina caso3
    */
    $menu "
    <a href=\"voce7.php\">Voce 7</a> ::: 
    <a href=\"voce8.php\">Voce 8</a> ::: 
    <a href=\"voce9.php\">Voce 9</a> :::
    "
    ;

    /*
    crei una variabile dove metti il codice per visualizzare 
    quello di cui necessiti nella pagina caso3
    */

    $contenuto_pagina "............";

    break;
    }

    // ora non ti resta che mandare in echo le due variabili
    // in base al valore di $name, visualizzerai di volta in volta
    // il contenuto relativo ad ogni caso

    echo $menu."<hr />".$contenuto_pagina
    Spero di essere stato chiaro.
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

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.