Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    Modulo PHP - funzione header

    Salve a tutti!
    Scusate se la domanda è da considerarsi stupida o se già si è trattato questo argomento in qualche altra parte del forum,
    ma sono un neofita sia di php (ho iniziato da una settimana) che del forum stesso!

    Ecco il mio problema:
    Ho realizzato un modulo per l'invio di suggerimenti.
    Il form funziona benissimo, però vorrei apportare alcuni miglioramenti che non so fare...
    Quando si invia il modulo e ci sono degli errori appare un punto interrogativo accanto al campo sbagliato o da compilare + un messaggio di errore. Giusto come voglio!
    Il problema sta nel fatto che la pagina viene caricata "dall'alto" come se si aprisse un'altra pagina e non nel punto in cui è presente il modulo e inoltre vengono cancellati tutti i campi, anche quelli compilati correttamente. Io invece vorrei che i campi compilati senza errori non si cancellassero.

    Qualcuno sa aiutarmi a risolvere questi problemi?

    Di seguito c'è il codice della pagina php che gestisce l'invio dei dati e il codice del modulo html.

    Grazie.
    MrSifter

    PS Ho pensato che forse si poteva risolvere sostituendo in Location al posto di index.php qualcosa del genere "javascript:history.go(-1);"...

    Ma non sono riuscito a far funzionare lo script!

    >>>> SCRIPT DI GESTIONE chiamato: sugg.php

    Codice PHP:
    <?php
    if (empty($_POST['cognome']) ){ // controllo se il campo nome-cognome è stato compilato
    $errore1 1;
    }
    if (empty(
    $_POST['email']) ){ // controllo se il campo email è stato compilato
    $errore2 1;
    }
    if (!
    eregi("^[a-z0-9][_.a-z0-9-]+@([a-z0-9][0-9a-z-]+.)+([a-z]{2,4})"$_POST['email'])){ // controllo se il formato dell'email è corretto
    $errore3 1;
    }
    if (empty(
    $_POST['messaggio']) ){ // controllo se è stato scritto qualcosa
    $errore4 1;
    }

    if ((
    $errore1 == 1) or ($errore2 == 1) or ($errore3 == 1) or ($errore4 == 1))
    header("Location: index.php?errore1=".$errore1."&errore2=".$errore2."&errore3=".$errore3."&errore4=".$errore4);
    else {
    $destinatario "email@email.it";
    $mail_subject "Suggerimento ricevuto tramite il sito [url]www.sito.it[/url]";
    $mail_body "

    <font color=#000000>Mittente: [b]
    $cognome[/b]</font></p>


    <font color=#000000>MESSAGGIO:
    $messaggio</font></p>";
    // Intestazioni HTML
    $mail_in_html "MIME-Version: 1.0\r\n";
    $mail_in_html .= "Content-type: text/html; charset=iso-8859-1\r\n";
    $mail_in_html .= "From: <$mail_from>";
    // Processo di invio 
    if (mail($destinatario$mail_subject$mail_body$mail_in_html))
    {
    $invio_riuscito 1;
    header("Location: index.php?invio_riuscito=".$invio_riuscito); // se il messaggio viene inviato con successo appare la scritta: << Grazie per averci inviato un suggerimento! >>
    }
    }
    ?>
    >>>> MODULO chiamato: index.php

    Codice PHP:

    <?php
    echo "
    <form method=\"post\" action=\"sugg.php\">
     
    <table width=\"200\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\">

    <tr><td valign=\"top\" width=\"230\">
    <font class=\"testo-04\">[b]Nome e Cognome:[/b]</font>
    "
    ; if ($_GET['errore1']==1) echo "<font size=\"4\" face=\"verdana\" color=\"red\">[b]![/b]</font>"; else echo ""; echo"
    </td>
    </tr>

    <tr><td valign=\"top\" width=\"230\">
    <input name =\"cognome\" type=\"text\" class=\"inputH\" id=\"cognome\" size=\"32\" maxlength=\"40\">
    </td>
    <td>&nbsp</TD>
    </tr>


    <tr><td valign=\"top\" width=\"230\">
    <font class=\"testo-04\">[b]Indirizzo Email:[/b]</font>
    "
    ; if ($_GET['errore2']==or $_GET['errore3']==1) echo "<font size=\"4\" face=\"verdana\" color=\"red\">[b]![/b]</font>"; else echo ""; echo"
    </td>
    </tr>
    <tr><td valign=\"top\" width=\"230\">
    <input name =\"email\" type=\"text\" class=\"inputH\" id=\"email\" size=\"32\" maxlength=\"40\">
    </td>
    </td>
    <td>&nbsp</TD>
    </tr>


    <tr>
    <td valign=\"top\" width=\"230\">
    <font class=\"testo-04\">[b]Invia suggerimenti, consigli, critiche, ...[/b]</font>
    "
    ; if ($_GET['errore4']==1) echo "<font size=\"4\" face=\"verdana\" color=\"red\">[b]![/b]</font>"; else echo ""; echo"
    </td>
    </tr>

    <tr><td valign=\"top\" width=\"230\">
    <textarea name=\"messaggio\" cols=\"32\" rows=\"5\" id=\"messaggio\" class=\"textareaH\"></textarea>
    </td></tr>

    <tr><td valign=\"top\" width=\"230\">
    <center>


    <input type=\"submit\" value=\"Invia\" class=\"bottoneH\">  
    <input type=\"reset\" value=\"Cancella\" class=\"bottoneH\">
    </center> 

    </td></tr>
    <tr><td>
    "
    ; if ($_GET['errore1']==or $_GET['errore2']==or $_GET['errore4']==1) echo "<font size=\"2\" face=\"verdana\" color=\"red\">[b]devi compilare tutti i campi[/b]</font>"; else echo ""; echo"
    </td></tr>

    <tr><td>
    "
    ; if ($_GET['errore3']==1) echo "<font size=\"2\" face=\"verdana\" color=\"red\">[b]Formato email non corretto![/b]</font>"; else echo ""; echo"
    </td></tr>
    <tr><td>
    "
    ; if ($_GET['invio_riuscito']==1) echo "<font size=\"2\" face=\"verdana\" color=\"red\">[b]Grazie per averci inviato un suggerimento![/b]</font>"; else echo ""; echo"
    </td></tr>

    </table>
    </form>"
    ;
    ?>

  2. #2

    Re: Modulo PHP - funzione header

    Originariamente inviato da Shakermaker81
    Il problema sta nel fatto che la pagina viene caricata "dall'alto" come se si aprisse un'altra pagina e non nel punto in cui è presente il modulo
    Inserisci un'ancora prima della form e modifica l'attributo action della form per puntare all'ancora.

    Originariamente inviato da Shakermaker81
    e inoltre vengono cancellati tutti i campi, anche quelli compilati correttamente. Io invece vorrei che i campi compilati senza errori non si cancellassero.
    Quando ricrei la form, valorizza gli attributi value dei vari campi con i valori presenti in $_POST.

  3. #3
    grazie per aver risposto...

    ho provato a fare così...

    Codice PHP:
    header("Location: index.php#modulo?er1=".$er1."&er2=".$er2."&er3=".$er3."&er4=".$er4); 
    ma lo script non funziona +!!

  4. #4
    Ti suggerisco di studiare le basi dell'HTML e dell'HTTP prima di tentare di programmare in PHP:

    http://www.w3schools.com/HTML/html_url.asp

  5. #5
    Ti suggerisco di studiare le basi dell'HTML e dell'HTTP prima di tentare di programmare in PHP:
    Qualcosa già la so...
    però un'occhiata al tuo link la darò volentieri...

  6. #6
    Originariamente inviato da Shakermaker81
    Qualcosa già la so...
    Dall'errore che hai fatto sembra tu abbia delle lacune fondamentali...

  7. #7
    Dall'errore che hai fatto sembra tu abbia delle lacune fondamentali...
    ovvero?

  8. #8
    Originariamente inviato da Shakermaker81
    ovvero?
    Trovi la risposta nella pagina indicata in precedenza.

  9. #9
    Trovi la risposta nella pagina indicata in precedenza.
    Ok.
    Dopo, appena ho un po' di tempo, vado a vedere e provo a risolvere.
    Grazie.

  10. #10
    Ho risolto la prima parte..
    Alla fin fine era molto semplice...
    Codice PHP:
    header("Location: index.php?er1=$er1&er2=$er2&er3=$er3&er4=$er4#modulo"); 
    Ora passo al secondo problema...

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 © 2024 vBulletin Solutions, Inc. All rights reserved.