• Consiglio Direttivo

    Ciao Fantasmetto 🙂

    Quell'errore indica che prima del pezzo di codice da te postato esistono altri output, anche un banalissimo <DOCTYPE...> per capirci. 😉
    Ricontrolla lo script per intero e vedi dove sta il problema, solitamente conviene inserire questi script in una pagina a se stante o metterli in cima a tutta la pagina.
    Facci sapere se risolvi. :ciauz:


  • User

    [...]
    Ciao, lo script sta proprio all'inzio della pagina e non capisco quali possano essere gli altri output :-(. Mi è venuta in mente una cosa proprio ora, ditemi se potrebbe funzionare: se sostituisco sull action del form "<?php $_SERVER['PHP_SELF'] ?>" con il nome di un file esterno che contiene lo script che ho postato sopra si potrebbe risolvere il problema?
    Oppure quali altre soluzioni sono prospettabili?
    Grazie


  • Consiglio Direttivo

    Certo, come detto prima se vuoi puoi metterlo in un file a se stante ed eseguirlo per conto suo. 😉


  • User

    Perfetto, grazie.


  • User

    Ho cantato vittoria troppo presto. Infatti ho appena verificato se il funzionamento è corretto e ancora risconto il solito messaggio di errore:

    "Warning: Cannot modify header information - headers already sent by (output started at /home/user2608/public_html/connessione.php:3) in /home/user2608/public_html/Controllo_registrazione.php on line **34"

    **Faccio velocemente il sunto della situazione:

    Il form invia i dati al file esterno "Controllo_registrazione.php" il cui contenuto è:
    [php]

    <?php
    require('connessione.php');

    $nomeregistrato=$_POST['nome'];
    $cognome=$_POST['cognome'];
    $via=$_POST['via'];
    $civico=$_POST['civico'];
    $citta=$_POST['citta'];
    $provincia=$_POST['provincia'];
    $cap=$_POST['cap'];
    $telefono=$_POST['telefono'];
    $indregistrato=$_POST['email'];
    $mit=$_POST['username'];
    $pass=$_POST['password'];
    $inserisci=mysql_query("INSERT INTO registrati VALUES('','$nomeregistrato','$cognome','$via','$civico','$citta','$provincia','$cap','$telefono','$indregistrato','$mit','$pass','1')");

    $tempo=getdate();
    $anno=$tempo['year'];
    $mese=$tempo['mon'];
    $giorno=$tempo['mday'];
    $ora=$tempo['hours'];
    $minuti=$tempo['minutes'];
    $secondi=$tempo['seconds'];

    $indirizzomail="info@xxxxx";
    $oggettomail="Si è registrato un nuovo utente: $username";
    $messaggio="Utente $username si è registrato $anno/$mese/$giorno alle $ora:$minuti:$secondi";
    mail($indirizzomail, $oggettomail, $messaggio);

    $oggettoregistrato="Registrazione sul portale xxxxxxx avvenuta con successo";
    $mailregistrato="Grazie $nomeregistrato, la tua registrazione sul portale xxxxxx è avvenuta con successo. Ecco i tuoi dati. Nome=$nomeregistrato, Username=$mit, Password=$pass. Per accedere direttamente alla tua area riservata esegui il login: xxxxxxx/Login.php";
    mail($indregistrato, $oggettoregistrato, $mailregistrato);

    header("Location: Controllo_registrazione.php");

    ?>

    [/php]

    A questo punto non so veramente come poter risolvere il problema. Chi mi da un suggerimento?


  • Consiglio Direttivo

    Due domande:

    • Cosa contiene il connessione.php oltre i dati di connessione?
    • Dato che vuoi refreshare la stessa pagina, hai provato con header ("Refresh: 0;")??

  • User

    Il contenuto di connessione.php è il seguente:
    [php]

    <?php
    $server="xxxxxxx";
    $user="xxxxxxxx";
    $pass="xxxxxxxxxxx";
    $database="xxxxxxx";

    $connessione=mysql_connect("$server", "$user", "$pass") or die("impossibile la connessione con il server remoto". mysql_error());
    mysql_select_db("xxxxxxxx");
    ?>

    [/php]Non voglio refreshare la stessa pagina ed ho commesso un errore con Ctrl-C ctrl-V :(. Header mi serve per reindirizzare l'utente appena registrato alla pagina di avvenuta registrazione.
    Scusa per l'inesattezza nel riportare il codice nella precedenta mia risposta


  • User Attivo

    Prova così e dicci se da errore:
    [php]
    <?php
    ob_start();
    require('connessione.php');

    $nomeregistrato=$_POST['nome'];
    $cognome=$_POST['cognome'];
    $via=$_POST['via'];
    $civico=$_POST['civico'];
    $citta=$_POST['citta'];
    $provincia=$_POST['provincia'];
    $cap=$_POST['cap'];
    $telefono=$_POST['telefono'];
    $indregistrato=$_POST['email'];
    $mit=$_POST['username'];
    $pass=$_POST['password'];
    $inserisci=mysql_query("INSERT INTO registrati VALUES('','$nomeregistrato','$cognome','$via','$civico','$citta','$provincia','$cap','$telefono','$indregistrato','$mit','$pass','1')");

    $tempo=getdate();
    $anno=$tempo['year'];
    $mese=$tempo['mon'];
    $giorno=$tempo['mday'];
    $ora=$tempo['hours'];
    $minuti=$tempo['minutes'];
    $secondi=$tempo['seconds'];

    $indirizzomail="info@xxxxx";
    $oggettomail="Si è registrato un nuovo utente: $username";
    $messaggio="Utente $username si è registrato $anno/$mese/$giorno alle $ora:$minuti:$secondi";
    mail($indirizzomail, $oggettomail, $messaggio);

    $oggettoregistrato="Registrazione sul portale xxxxxxx avvenuta con successo";
    $mailregistrato="Grazie $nomeregistrato, la tua registrazione sul portale xxxxxx è avvenuta con successo. Ecco i tuoi dati. Nome=$nomeregistrato, Username=$mit, Password=$pass. Per accedere direttamente alla tua area riservata esegui il login: xxxxxxx/Login.php";
    mail($indregistrato, $oggettoregistrato, $mailregistrato);

    header("Location: Controllo_registrazione.php");
    ob_end_flush();
    ?>[/php]


  • User

    Grazie ilnetsurfer, adesso funziona tutto correttamente. Di fatto, cosa cambia inserendo sul codice le due righe che mi hai suggerito? E' proprio vero: non si finisce mai di imparare...
    Grazie ancora
    :gthi:


  • User Attivo

    Leggi questo mini-tutorial ...Guarda che si potrebbe anche usare javascript