Ciao a tutti,
premetto di essere molto profana nel settore php e mysql, ma ho provato a capirci qualcosa leggendo le vostre guide, fin ora ha funzionato tutto perfettamente, anzi alla grande, poi ho inserito questo script, copiato dalla guida (con tanto di commenti, come potrete notare):
<?php if($_POST) { inserisci_record(); } else { mostra_form(); } function inserisci_record() { // richiamo il file di configurazione require 'config.php'; // richiamo lo script responsabile della connessione a MySQL require 'connect.php'; // recupero i campi di tipo "stringa" $nome = trim($_POST['nome']); $email = trim($_POST['email']); $messaggio = trim($_POST['messaggio']); // verifico se devo eliminare gli slash inseriti automaticamente da PHP if(get_magic_quotes_gpc()) { $nome = stripslashes($nome); $email = stripslashes($email); $messaggio = stripslashes($messaggio); } $nome = mysql_real_escape_string($nome); $email = mysql_real_escape_string($email); $messaggio = mysql_real_escape_string($messaggio); // recupero gli altri campi del form $sesso = isset($_POST['sesso']) ? intval($_POST['sesso']) : 0; $newsletter = isset($_POST['newsletter']) ? 1 : 0; $attivita = intval($_POST['attivita']); // verifico la presenza dei campi obbligatori if(!$nome) { $messaggio = urlencode("Non hai inserito il nome"); header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio); exit; } // preparo la query $query = "INSERT INTO utenti (nome,email,sesso,newsletter,attivita,messaggio) VALUES ('$nome','$email',$sesso,$newsletter,$attivita,'$messaggio')"; // invio la query $result = mysql_query($query); // controllo l'esito if (!$result) { die("Errore nella query $query: " . mysql_error()); } // recupero l'id autoincrement generato da MySQL per il nuovorecord inserito $id_inserito = mysql_insert_id(); $messaggio = urlencode("Inserimento effettuato con successo (ID=$id_inserito)"); header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio); } function mostra_form() { // mostro un eventuale messaggio if(isset($_GET['msg'])) echo '<b>'.htmlentities($_GET['msg']).'</b><br /><br />'; ?> <form name="form_registrazione" method="post" action=""> <label>nome: <input name="nome" type="text" /> </label> (obbligatorio) <p> <label>email: <input name="email" type="text" /> </label> </p> <p> Sesso: <label> <input type="radio" name="sesso" value="1" /> M</label> <label> <input type="radio" name="sesso" value="2" /> F</label> </p> <p> <label>inviami newletter: <input name="newsletter" type="checkbox" value="1" /> </label> </p> <p> <label>attività: <select name="attivita"> <option value="0">:: seleziona ::</option> <option value="1">studente</option> <option value="2">lavoratore</option> <option value="3">disoccupato</option> </select> </label> </p> <p> <label>messaggio:<br /> <textarea name="messaggio" cols="40" rows="5"></textarea> </label> </p> <p> <input name="invia" type="submit" value="Invia" /> </p> </form> <?php } ?>
carico il tutto sul mio localhost e mi da' questo errore:
connesso con successo Warning: Cannot modify header information - headers already sent by (output started at C:\Programmi\Apache Software Foundation\Apache2.2\htdocs\connect.php:12) in C:\Programmi\Apache Software Foundation\Apache2.2\htdocs\insert.php on line 43
non capisco, eppure con l'inserimento diretto funzionava tutto.... avevo installato easyphp, ma poi ho disinstallato il tutto e ripristinato il sistema ad una data precedente all'installazione, può essere questo il problema?
Grazie,
evviva