Visualizzazione risultati 1 fino 11 di 11

Discussione: [PHP] Problema $_GET non riconosciuto..

  1. #1
    Guest

    Post [PHP] Problema $_GET non riconosciuto..

    Ciao a tutti, sto programmando quel cms (myPB)..ma ho un problema con $_GET...lo sto facendo per navigare nelle pagina...senza switch..per la homepage uso:
    Codice PHP:
    if($_GET['p'] == "") {
    // codice home page
    }
    per vedere un post singolo invece:
    Codice PHP:
    if($_GET['postid']) {
    // codice del post singolo
    }
    Ma se io vado su index.php?postid=X..mi visualizza sempre l'homepage!
    Perchè? Ecco il codice "generale"...
    Codice PHP:
    if($_GET['postid']) {
    $postid = $_GET['postid'];
    if(
    $postid == "") {
    $template = str_replace("[titolop]","Errore",$template);
    $template = str_replace("[testop]","Il Post selezionato, non esiste!",$template);
    $template = str_replace("[data]","00/00/0000",$template);
    $template = str_replace("[ora]","00:00",$template);
    $template = str_replace("[commenti]","0",$template);
    } else {
    $postq = mysql_query("SELECT * FROM post WHERE id = '$postid'");
    $post = mysql_fetch_array($postq);

    $template = str_replace("[titolop]","$post[titolo] - POSTID",$template);
    $template = str_replace("[testop]","$post[testo]",$template);
    $template = str_replace("[data]","$post[data]",$template);
    $template = str_replace("[ora]","$post[ora]",$template);
    $template = str_replace("[urlp]","#",$template);
    $numq = mysql_query("SELECT * FROM commenti WHERE post = '$post[id]'");
    $num = mysql_num_rows($numq);
    $template = str_replace("[commenti]","$num",$template);
    $template = str_replace("[comform]","<h3>Commenti</h3>\n
    <p><form method=\"POST\">\n
    Nome*: <input type=\"text\" name=\"nome\" /><br />\n
    Email*: <input type=\"text\" name=\"email\" /><br />\n
    SitoWeb: <input type=\"text\" name=\"sitoweb\" /><br />\n
    Testo*:<br />\n
    <textarea name=\"testo\"></textarea><br />\n
    <input type=\"submit\" value=\"Invia Commento\" name=\"commenta\" /> <b>* = Campo Obbligatorio...</b>"
    ,$template);
    $comq = mysql_query("SELECT * FROM commenti WHERE post = '$postid'");
    while(
    $com = mysql_fetch_array($comq)) {
    if(
    $com['sitoweb'] == "") {
    $template = str_replace("[comall]","<b><a href=\"mailto:$com[email]\">$com[nome]</a></b> il $com[data] alle $com[ora]<br />$com[testo]<hr />",$template);
    } else {
    $template = str_replace("[comall]","<b><a href=\"mailto:$com[email]\">$com[nome]</a></b> il $com[data] alle $com[ora] - <a href=\"$com[sitoweb]\">SitoWeb</a><br />$com[testo]<hr />",$template);
    }
    }
    }
    }

  2. #2
    Guest

  3. #3
    Guest

    Predefinito

    Ho stampato la variabile.. e mi mostra 1 (l'id inviato e corrispondente all'articolo)...ma dopo?? Non stampa il resto...rimane in homepage! :'(
    Ciao! ^^

  4. #4
    Guest

    Predefinito

    Posta il codice aggiornato.


    Ciao!

  5. #5
    Guest

    Predefinito

    Ecco il codice...
    Codice PHP:
    // }...fine di $_GET['p'] == ""
    } elseif($_GET['postid']) {
    $postq = mysql_query("SELECT * FROM post WHERE id = '$_GET[postid]'");
    $post = mysql_fetch_array($postq);
    if(
    $_GET['postid'] == $post['id']) {
    $postid = $_GET['postid'];
    $template = str_replace("[titolop]","$post[titolo] - POSTID",$template);
    $template = str_replace("[testop]","$post[testo]",$template);
    $template = str_replace("[data]","$post[data]..",$template);
    $template = str_replace("[caturlp]","index.php?catid=$post[cat]",$template);
    $catq = mysql_query("SELECT * FROM categorie WHERE id = '$post[cat]'");
    $cat = mysql_fetch_array($catq);
    $template = str_replace("[catnomep]","$cat[nome]",$template);
    $template = str_replace("[ora]","$post[ora]",$template);
    $template = str_replace("[urlp]","#",$template);
    $numq = mysql_query("SELECT * FROM commenti WHERE post = '$post[id]'");
    $num = mysql_num_rows($numq);
    $template = str_replace("[commenti]","$num",$template);
    $template = str_replace("[comform]","<h3>Commenti</h3>",$template);
    $comq = mysql_query("SELECT * FROM commenti WHERE post = '$postid'");
    while(
    $com = mysql_fetch_array($comq)) {
    if(
    $com['sitoweb'] == "") {
    $template = str_replace("[comall]","<b><a href=\"mailto:$com[email]\">$com[nome]</a></b> il $com[data] alle $com[ora]<br />$com[testo]<hr />",$template);
    } else {
    $template = str_replace("[comall]","<b><a href=\"mailto:$com[email]\">$com[nome]</a></b> il $com[data] alle $com[ora] - <a href=\"$com[sitoweb]\">SitoWeb</a><br />$com[testo]<hr />",$template);
    }
    }
    } else {
    $template = str_replace("[titolop]","Errore",$template);
    $template = str_replace("[testop]","Errore, il Post non Esiste!",$template);
    $template = str_replace("[data]","00/00/0000",$template);
    $template = str_replace("[ora]","00:00",$template);
    $template = str_replace("[urlp]","#",$template);
    $template = str_replace("[caturlp]","#",$template);
    $tempalte = str_replace("[catnomep]","Categoria",$template);
    $template = str_replace("[commenti]","0",$template);
    $template = str_replace("[commenti]","",$template);
    $template = str_replace("[comform]","",$template);
    }
    }
    Grazie 1000...ciao Davide! ^^
    Ultima modifica di sIM : 08-09-2008 alle ore 14.02.56

  6. #6
    Guest

    Predefinito

    ehm... dov'è che stampi l'array $_GET?


    Ciao!

  7. #7
    Guest

    Predefinito

    Ah...no l'ho tolto! ;)
    Era per vedere se funzionava cmq l'ho stampato qui:
    Codice PHP:
    elseif($_GET['postid']) {
    echo
    $_GET['postid'];
    //codice
    Cmq mi mostrava l'id del $_GET che chiedevo (ossia 1) che è anche id dell'articolo...
    Ciao! ^^

  8. #8
    Guest

    Predefinito

    Non hai capito.
    Devi scrivere print_r($_GET); così da stamparti tutto il contenuto di questo array, e lo devi scrivere prima di qualsiasi altra cosa, cioè subito dopo <?php


    Ciao!

  9. #9
    Guest

    Predefinito

    Mi mostra:
    Array ( [postid] => 1 )
    E quindi? Il Get funziona...giusto? Ma allora il problema dove sta? xD..
    Grazie...ciao davide! ^^
    Edit: Risolto!..ecco come: Ho messo in index.php questo:
    Codice PHP:
    if(empty($_GET)) {
    // codice homepage
    } elseif($_GET['variabile']) {
    // codice di index.php?variabile=XXX
    }
    Ma adesso ho un problema..se faccio questa query:
    SELECT * FROM post ORDER BY id DESC LIMIT 3
    Da phpMyAdmin spunta tutto ok..ma quando la metto in mysql_query che dopo andra dentro il while()...ma mi mostra solo l'ultima news!..ho capito qual'è il problema..io uso str_replace visto che c'è un solo codice tipo (<a href="[url]">[cat]"</a>) con un while e dentro un str_replace cambiano..invece no!!! Rimangono sempre gli stessi..perchè?
    Ex:
    Codice PHP:
    /* M E N U */
    $menuq = mysql_query("SELECT * FROM categorie");
    while(
    $menu = mysql_fetch_array($menuq)) {
    $template = str_replace("[caturl]","index.php?catid=$menu[id]",$template);
    $template = str_replace("[catnome]","$menu[nome]",$template);
    }
    Ci sono 2 categorie..e invece me ne mostra 1 perchè? Perchè nel codice del template io ho messo solo 1 [caturl] e un [catnome]..invece come faccio a risolvere questo problema??
    Grazie 1000...ciao Davide! ^^
    Ri-edit: ho messo al posto di tutti gli str_replace, ereg_replace...ma adesso non smette di caricare...perchè?
    Ultima modifica di sIM : 08-09-2008 alle ore 15.02.26

  10. #10
    Guest

    Predefinito

    Ma perché scrivi empty($_GET) e non empty($_GET['variabile']) o meglio, perché non scrivi direttamente isset($_GET['variabile']), in questo modo ti basterebbe scrivere questo per visualizzare l'homepage:

    Codice PHP:
    <?php
    if(isset($_GET['variabile']))
    {
    //visualizza pagina
    } else {
    //homepage
    }
    Riguardo al str_replace() del menu perché non metti direttamente le variabili? Ciao :)

  11. #11
    Guest

    Predefinito

    1: Lo capirai, quando finirò questo progetto!
    2: Perchè così chi vuole personalizzare il template, gli viene facilissimo (conosci i "tag"?)..
    Ciao! ^^
    PS. Non ho risolto il problema di str_replace!

Regole di scrittura

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