Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    106

    Funzioni e Switch: Problema

    Salve a tutti, seguendo un tutorial sto provando a realizzare un guestbook che utilizza le funzioni collegate a uno switch, in base al case si attiva la funzione corrispondente; la pagina contiene tre parti:
    La parte di inserimento dei dati
    La parte che manda i dati al database
    La parte che manda in stamap i messaggi del guestbook

    Ecco qui il codice completo:

    <?php
    $connessione=mysql_connect("localhost", "root", "miura77");
    $selezione_db=mysql_select_db("guest", $connessione);
    ?>
    <html>
    <head>
    <title>Guestbook</title>
    </head>
    <body>
    <?
    echo "<a href=\"guestbook.php?azione=Inserisci\">Firma Il guestBook</a>

    ";
    echo "<a href=\"guestbook.php?azione=leggi\">Leggi Il guestBook</a>

    ";
    function form_guest(){
    echo "<form name=\"moduloGuest\" action=\"guestbook.php\" method=\"post\"><input type=\"hidden\" name=\"azione\" value=\"leggi\"><table align=\"center\" border=2><tr><td colspan=2 align=\"center\"><h3>Firma il mioGuestbook!!!!!</h3></td></tr><tr><td>Il tuo nome:</td><td><input type=\"text\" name=\"nome_utente\" size=\"30\" maxlength=\"40\"></td></tr><tr><td valign=\"top\">Il tuo messaggio:</td><td><textarea name=\"testo\" cols=\"30\" rows=\"6\"></textarea></td></tr><tr><td align=\"center\" colspan=\"2\"><input type=\"submit\" value=\"Invia il messaggio!\"></td></tr></table></form>";

    }
    function read_guest(){
    $lettura_risultati=mysql_query("select nome_utente, messaggio, date_format(data_ora, 'in data %d/%m/%Y - ore %H:%i:%s') as data_formattata from messaggi order by data_ora")or(die(mysql_error()));
    if(mysql_num_rows($lettura_risultati)>0){
    echo "<table>";
    $flag_colore=0;
    while($scatola_temporanea=mysql_fetch_array($lettu ra_risultati)){
    $nome_utente=$scatola_temporanea[nome_utente];
    $testo_messaggio=$scatola_temporanea[messaggio];
    $data_inserimento=$scatola_temporanea[data_formattata];
    echo "<tr>";
    if($flag_colore==0){
    echo "<td bgcolor=\"#FFFF00\">";
    $flag_colore=1;
    }
    else{
    echo "<td bgcolor=\"#C0C0C0\">";
    $flag_colore=0;
    }
    echo "L'utente $nome_utente, $data_inserimento, ha scritto:

    $testo_messaggio


    ";
    echo "</tr>";
    } //fine ciclo while che scorre la query e piazza i risultati nell'array temporaneo
    echo "</table>";
    }
    else{ //se non ha trovato record
    echo "complimenti! nessuno ha finora inserito un messaggio.. tu puoi essere il primo!! <a href=\"form.html\">che aspetti??</a>";
    }
    }//fine function read_guest()
    function elabora_guest(){
    $nome_utente_formattato=htmlspecialchars($_POST[nome_utente]);
    $messaggio_formattato=htmlspecialchars($_POST[testo]);
    $inserimento=mysql_query("insert into messaggi (nome_utente, messaggio, data_ora) values (\"$nome_utente_formattato\", \"$messaggio_formattato\", now())")or die(mysql_error());
    echo "<table align=\"center\" border=1><tr><td align=\"center\">messaggio inviato con successo</td><tr><td align=\"center\">Clicca <a href=\"guestbook.php?azione=leggi\">QUI</a> per leggere il guestbook</tr></td>";
    }//fine function elabora_guest()
    switch($_GET[azione]){
    case "inserisci":
    form_guest();
    break;
    case "elabora":
    elabora_guest();
    break;
    case "leggi":
    read_guest();
    break;
    }//switch sulla variabile "azione" passata nella url
    ?>
    </body>
    </html>

    Ci sono dei problemi:
    1) I valori dei campi del form non vengono passati al database, e conseguentemente non stampa i risultati
    2)Cliccando su "leggi il guestBook" il case si ricollega alla funzione e read_guest e manda a video i messaggi, dovrebbe fare lo stesso con "Firma il guestbook" ma quando clicco sul link non funziona; inoltre quando inserisco i dati e clicco su "invia i dati" dal pulsante del guestbook, dovrebbe collegarsi alla funzione elabora_guest e mandare a video:

    echo "<table align=\"center\" border=1><tr><td align=\"center\">messaggio inviato con successo</td><tr><td align=\"center\">Clicca <a href=\"guestbook.php?azione=leggi\">QUI</a> per leggere il guestbook</tr></td>";
    ma niente, non lo fa...
    Spero din essere stato più chiaro possibile, spero in un vostro aiuto, visto che è la prima volta che mi cimento con le funzioni.
    Grazie anticipatamente
    Il sapere appartiene al mondo

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    106
    scusate, ma mi sono accorto di alcuni (gravi) errori che ho commesso, posto il nuovo codice, e conseguentemente i nuovi problemi.

    <?php
    $connessione=mysql_connect("localhost", "root", "miura77");
    $selezione_db=mysql_select_db("guest", $connessione);
    ?>
    <html>
    <head>
    <title>Guestbook</title>
    </head>
    <body>
    <?
    echo "<a href=\"guestbook.php?azione=Inserisci\">Firma Il guestBook</a>

    ";
    echo "<a href=\"guestbook.php?azione=leggi\">Leggi Il guestBook</a>

    ";
    function form_guest() {
    echo "<form name=\"moduloGuest\" action=\"guestbook.php?azione=Elabora\"

    method=\"post\"><table align=\"center\" border=2><tr><td colspan=2

    align=\"center\"><h3>Firma il mioGuestbook!!!!!</h3></td></tr><tr><td>Il

    tuo nome:</td><td><input type=\"text\" name=\"nome_utente\" size=\"30\"

    maxlength=\"40\"></td></tr><tr><td valign=\"top\">Il tuo

    messaggio:</td><td><textarea name=\"testo\" cols=\"30\"

    rows=\"6\"></textarea></td></tr><tr><td align=\"center\" colspan=\"2\"><input

    type=\"submit\" value=\"Invia il messaggio!\"></td></tr></table></form>";
    }
    form_guest();
    function read_guest(){
    $lettura_risultati=mysql_query("select nome_utente, messaggio,

    date_format(data_ora, 'in data %d/%m/%Y - ore %H:%i:%s') as data_formattata from

    messaggi order by data_ora")or(die(mysql_error()));
    if(mysql_num_rows($lettura_risultati)>0){
    echo "<table>";
    $flag_colore=0;


    while($scatola_temporanea=mysql_fetch_array($lettu ra_risultati)){
    $nome_utente=$scatola_temporanea[nome_utente];


    $testo_messaggio=$scatola_temporanea[messaggio];


    $data_inserimento=$scatola_temporanea[data_formattata];
    echo "<tr>";
    if($flag_colore==0){
    echo "<td bgcolor=\"#FFFF00\">";
    $flag_colore=1;
    }
    else{
    echo "<td bgcolor=\"#C0C0C0\">";
    $flag_colore=0;
    }
    echo "L'utente $nome_utente,

    $data_inserimento, ha scritto:

    $testo_messaggio


    ";
    echo "</tr>";
    } //fine ciclo while che scorre la query e piazza i

    risultati nell'array temporaneo
    echo "</table>";
    }
    else{ //se non ha trovato record
    echo "complimenti! nessuno ha finora inserito un

    messaggio.. tu puoi essere il primo!! <a href=\"form.html\">che aspetti??</a>";
    }
    }//fine function read_guest()
    function elabora_guest(){


    $nome_utente_formattato=htmlspecialchars($_POST[nome_utente]);
    $messaggio_formattato=htmlspecialchars($_POST[testo]);
    $inserimento=mysql_query("insert into messaggi

    (nome_utente, messaggio, data_ora) values (\"$nome_utente_formattato\",

    \"$messaggio_formattato\", now())")or

    die(mysql_error());
    echo "<table align=\"center\" border=1><tr><td

    align=\"center\">messaggio inviato con successo</td><tr><td align=\"center\">Clicca <a



    href=\"guestbook.php?azione=leggi\">QUI</a> per leggere il

    guestbook</tr></td>";
    }//fine function elabora_guest()
    elabora_guest();
    switch($_GET[azione]){
    case "inserisci":
    form_guest();
    break;
    case "elabora":
    elabora_guest();
    break;
    case "leggi":
    read_guest();
    break;
    }//switch sulla variabile "azione" passata nella url
    ?>
    </body>
    </html>

    Il problema m,aggiore e che le variabili non vengono inviate al database, un altro problema è che cliccando sui link "Firma il guestbook" e "Leggi il GuestBook" al cliccare dell'uno dovrebbe andare via la visualizzazione dell'altro e viceversa; per ora invece Form, messaggi, e conferma dell'avvenuta spedizione del messaggio sono visibili contemporaneamente sulla stessa pagina, cosa che non ha nessun senso...
    Il sapere appartiene al mondo

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    106
    up
    Il sapere appartiene al mondo

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    106
    ariup
    Il sapere appartiene al mondo

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    106
    possibile che non ci sia nessuno che può darmi una mano?
    Il sapere appartiene al mondo

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    106
    Dai ragazzi!!! date un occhiata a questo post perfavore, è da un po che sono fermo, forse è una stupidaggine e basterebbe un occhiata di qualcuno di voi per aggiustare la situazione
    Il sapere appartiene al mondo

  7. #7
    è troppo un casotto tutto quell'html mischiato al php probabilmente per quello che nessuno ti ha ancora risposto
    prova ad eliminarel'html lasciando solo le parti in php (magari racchiuse tra tag [ php ] o [ code ] in modo da renderlo piu leggibile )
    ciao

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    106
    ok, fatto, ora dovrebbe essere più pulito...

    <?php
    $connessione=mysql_connect("localhost", "root", "miura77");
    $selezione_db=mysql_select_db("guest", $connessione);
    ?>
    [codice html]
    <?
    echo "<a href=\"guestbook.php?azione=Inserisci\">Firma Il guestBook</a>

    ";
    echo "<a href=\"guestbook.php?azione=leggi\">Leggi Il guestBook</a>

    ";
    function form_guest() {
    echo "<form name=\"moduloGuest\" action=\"guestbook.php?azione=Elabora\" method=\"post\">[codice form]</form>";
    }
    form_guest();
    function read_guest(){
    $lettura_risultati=mysql_query("select nome_utente, messaggio, date_format(data_ora, 'in data %d/%m/%Y - ore %H:%i:%s') as data_formattata from messaggi order by data_ora")or(die(mysql_error()));
    if(mysql_num_rows($lettura_risultati)>0){
    echo "<table>";
    $flag_colore=0;
    while($scatola_temporanea=mysql_fetch_array($lettu ra_risultati)){
    $nome_utente=$scatola_temporanea[nome_utente];
    $testo_messaggio=$scatola_temporanea[messaggio];
    $data_inserimento=$scatola_temporanea[data_formattata];
    echo "<tr>";
    if($flag_colore==0){
    echo "<td bgcolor=\"#FFFF00\">";
    $flag_colore=1;
    }
    else{
    echo "<td bgcolor=\"#C0C0C0\">";
    $flag_colore=0;
    }
    echo "L'utente $nome_utente, $data_inserimento, ha scritto:$testo_messaggio</tr>";
    }
    echo "</table>";
    }
    else{
    echo "complimenti! nessuno ha finora inserito un messaggio.. tu puoi essere il primo!!<a href=\"guestbook.php?azione=Inserisci\">che aspetti??</a>";
    }
    }
    read_guest;
    function elabora_guest(){
    $nome_utente_formattato=htmlspecialchars($_POST[nome_utente]);
    $messaggio_formattato=htmlspecialchars($_POST[testo]);
    $inserimento=mysql_query("insert into messaggi (nome_utente, messaggio, data_ora) values (\"$nome_utente_formattato\", \"$messaggio_formattato\", now())")or die(mysql_error());
    echo "<table><tr><td>messaggio inviato con successo</td><tr><td>Clicca <a href=\"guestbook.php?azione=leggi\">QUI</a> per leggere il guestbook</tr></td>";
    elabora_guest();
    }
    switch($_GET[azione]){
    case "inserisci":
    form_guest();
    break;
    case "elabora":
    elabora_guest();
    break;
    case "leggi":
    read_guest();
    break;
    }
    ?>

    meglio di così non potevo fare, spero che qualcuno possa darmi una mano...
    Il sapere appartiene al mondo

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    106
    nessuno che voglia dare un occhiata a questo codice? ma fa così schifo
    Il sapere appartiene al mondo

  10. #10
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    106
    up, da due giorni...
    Il sapere appartiene al mondo

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.