Errore method POST

AntonioB94

Nuovo Utente
12 Giu 2013
18
0
0
Ciao a tutti scusatemi sono nuovo ho creato una rubrica telefonica per il mio esame di maturità soltanto che nella ricerca ed inserimento mi da errore al method post
Ecco l'inserimento:

PHP:
<?php
include "admin/connessione.php";
include "index.php";

// esegue la connessione al database
$conn = mysql_connect("$hostname", "$username", "$password");
mysql_select_db($nome_db, $conn);

// recupera tutte le informazioni inserite dall'utente nella form quando clicca su tasto inserisci
$nome = $_POST['nome'];
$cognome = $_POST['cognome'];
$indirizzo = $_POST['indirizzo'];
$citta = $_POST['citta'];
$provincia = $_POST['provincia'];

$casa = $_POST['casa'];
$cellulare = $_POST['cellulare'];
$ufficio = $_POST['ufficio'];
$mail = $_POST['mail'];

if($nome=="") {
	echo "<font color=\"red\"><tr><td>Il nome è un campo obbligatorio</td>
	</tr></font><br>";
} else {
	
	// vengono ineriti i dati nella tabella persona
	$inserimento = "insert into persona (nome, cognome, indirizzo, citta, provincia) 
						values 
					('$nome', '$cognome', '$indirizzo', '$citta', '$provincia');";
	$ri = mysql_query($inserimento, $conn);

	//poiché la tabella persona è collegata mediante chiave esterna alla tabella contatto, allo
	//dobbiamo recuperare l'id dell'ultimo contatto inserito per poi inserirlo correttamente
	//nella tabella contatto al campo  id_persona che è chiave esterna
	// recupera ultimo id inserito
	$user_id = mysql_insert_id($conn);
	$inserimento = "insert into contatto (casa, cellulare, ufficio, e_mail, id_persona) 
						values 
					('$casa', '$cellulare', '$ufficio', '$mail', $user_id);";
	
	$ri= mysql_query($inserimento, $conn);
	if (!$ri) { 
		echo ('<h3>INSERIMENTO contatto FALLITO</h3>');
	} else {  
		echo ('<h3>INSERIMENTO contatto RIUSCITO</h3>'); 
	}
}
?>
 
Ultima modifica di un moderatore:
potete aiutarmi please sto in alto mare è già domani dovrei consegnarla,
Questi sono gli errori:
Notice: Undefined index: nome in C:\xampp\htdocs\applicazioni\applicazione\insert.php on line 18

Notice: Undefined index: cognome in C:\xampp\htdocs\applicazioni\applicazione\insert.php on line 19

Notice: Undefined index: indirizzo in C:\xampp\htdocs\applicazioni\applicazione\insert.php on line 20

Notice: Undefined index: citta in C:\xampp\htdocs\applicazioni\applicazione\insert.php on line 21

Notice: Undefined index: provincia in C:\xampp\htdocs\applicazioni\applicazione\insert.php on line 22

Notice: Undefined index: casa in C:\xampp\htdocs\applicazioni\applicazione\insert.php on line 24

Notice: Undefined index: cellulare in C:\xampp\htdocs\applicazioni\applicazione\insert.php on line 25

Notice: Undefined index: ufficio in C:\xampp\htdocs\applicazioni\applicazione\insert.php on line 26

Notice: Undefined index: mail in C:\xampp\htdocs\applicazioni\applicazione\insert.php on line 27

corrispondo ad ogni $nome = $_POST['nome']; fino ad $mail = $_POST['mail']
 
Ultima modifica:
ciao
cosa intendi per errore del metod post?
visto così (salvo la bocciatura che ti darei perche non si inseriscono così brutalmente i dati in un db) non vedo errori di sintassi
verifica l'html del form, eventualmente postalo

p.s.
quando posti del codice racchiudilo tra gli appositi tag, seconda riga formattazione del post, ultime tre iconcine nell'ordine CODE, HTML, PHP
 
Ho inserito gli errori che mi da, purtroppo questa programmino mi è stato dato sotto banco dal prof di laboratorio se puoi aiutarmi te ne sarei grato anche in pvt
 
consiglio inoltre di stampare eventuali errori di mysql
PHP:
$ri = mysql_query($inserimento, $conn);
if (!$ri) {
    echo "Errore : $inserimento <br/>" . mysql_error();
}
l'estensione mysql è deprecata e verrà presto rimossa ti converrebbe utilizzare direttamente mysqli
 
Ecco il form

HTML:
<form action="" method="post" name="rubrica">

<table width="100%">
  <tr>
    <td width="12%">Nome:</td>
    <td><input type="text" name="nome">*</td>
  </tr>
  <tr>
    <td width="12%">Cognome:</td>
    <td><input type="text" name="cognome"></td>
  </tr>
  <tr>
    <td width="12%">Indirizzo:</td>
    <td><input type="text" name="indirizzo"></td>
  </tr>
  <tr>
    <td width="12%">Citta':</th>
    <td><input type="text" name="citta"></td>
  </tr>
  <tr>
    <td width="12%">Provincia:</td>
    <td><input type="text" name="provincia"></td>
  </tr>
  <tr>
    <td width="12%">Telefono Casa:</td>
    <td><input type="text" name="casa"></td>
  </tr>
  <tr>
    <td width="12%">Telefono Cellulare:</td>
    <td><input type="text" name="cellulare"></td>
  </tr>
  <tr>
     <td width="12%">Telefono Ufficio:</th>
    <td><input type="text" name="ufficio"></td>
 </tr>
  <tr>
    <td width="12%">eMail:</td>
    <td><input type="text" name="mail"></td>
  </tr>
  <tr>
    <td width="12%"></td>
    <td><input  value="Inserisci" type="submit" /></td>
  </tr>
</table>
</form>


Per criric dovrei modificare al posto di ogni mysql, mysqli? Ho capito bene?
 
si piu o meno
la mysqli_connect mi pare che accetti anche il database come parametro
prova a vedere sul manuale
per il tuo probelma, hai tutto in una pagina?
se si dovresti mettere un controllo per vedere quando viene premuto il submit

PHP:
if(isset($_POST)) {

// tutto il codice

}
 
ciao
criric ha ragione, ma ho un dubbio: sti professoroni poi conoscono mysqli o meglio ancora le pdo?
ora do un occhio, comunque una domanda form e ricezione sono nella stessa pagina?
cosa è quell'include "index.php"?
 
Si ho tutto in pagina ti faccio vedere ora la pagina completa perchè non riesco a capire dove inseire il controllo
HTML:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Inserisci</title>
</head>

<body>
<?php
include "admin/connessione.php";
include "index.php";

// esegue la connessione al database
$conn = mysql_connect("$hostname", "$username", "$password");
mysql_select_db($nome_db, $conn);

// recupera tutte le informazioni inserite dall'utente nella form quando clicca su tasto inserisci
$nome = $_POST['nome'];
$cognome = $_POST['cognome'];
$indirizzo = $_POST['indirizzo'];
$citta = $_POST['citta'];
$provincia = $_POST['provincia'];

$casa = $_POST['casa'];
$cellulare = $_POST['cellulare'];
$ufficio = $_POST['ufficio'];
$mail = $_POST['mail'];


if($nome=="") {
	echo "<font color=\"red\"><tr><td>Il nome è un campo obbligatorio</td>
	</tr></font><br>";
} else {
	
	// vengono ineriti i dati nella tabella persona
	$inserimento = "insert into persona (nome, cognome, indirizzo, citta, provincia) 
						values 
					('$nome', '$cognome', '$indirizzo', '$citta', '$provincia');";
	$ri = mysql_query($inserimento, $conn);

	//poiché la tabella persona è collegata mediante chiave esterna alla tabella contatto, allo
	//dobbiamo recuperare l'id dell'ultimo contatto inserito per poi inserirlo correttamente
	//nella tabella contatto al campo  id_persona che è chiave esterna
	// recupera ultimo id inserito
	$user_id = mysql_insert_id($conn);
	$inserimento = "insert into contatto (casa, cellulare, ufficio, e_mail, id_persona) 
						values 
					('$casa', '$cellulare', '$ufficio', '$mail', $user_id);";
	
	$ri= mysql_query($inserimento, $conn);
	if (!$ri) { 
		echo ('<h3>INSERIMENTO contatto FALLITO</h3>');
	} else {  
		echo ('<h3>INSERIMENTO contatto RIUSCITO</h3>'); 
	}
}
?>

<form action="" method="post" name="rubrica">

<table width="100%">
  <tr>
    <td width="12%">Nome:</td>
    <td><input type="text" name="nome">*</td>
  </tr>
  <tr>
    <td width="12%">Cognome:</td>
    <td><input type="text" name="cognome"></td>
  </tr>
  <tr>
    <td width="12%">Indirizzo:</td>
    <td><input type="text" name="indirizzo"></td>
  </tr>
  <tr>
    <td width="12%">Citta':</th>
    <td><input type="text" name="citta"></td>
  </tr>
  <tr>
    <td width="12%">Provincia:</td>
    <td><input type="text" name="provincia"></td>
  </tr>
  <tr>
    <td width="12%">Telefono Casa:</td>
    <td><input type="text" name="casa"></td>
  </tr>
  <tr>
    <td width="12%">Telefono Cellulare:</td>
    <td><input type="text" name="cellulare"></td>
  </tr>
  <tr>
     <td width="12%">Telefono Ufficio:</th>
    <td><input type="text" name="ufficio"></td>
 </tr>
  <tr>
    <td width="12%">eMail:</td>
    <td><input type="text" name="mail"></td>
  </tr>
  <tr>
    <td width="12%"></td>
    <td><input  value="Inserisci" type="submit" /></td>
  </tr>
</table>
</form>



</body>
</html>
 
dai un name al submit
HTML:
<input  value="Inserisci" name="submit" type="submit" />
e racchiudi tutt il codice php dentro la if di controllo
PHP:
<?php
// verifichiamo se è stato premuto il submit
        if (isset($_POST['submit'])) {
            include "admin/connessione.php";
            include "index.php";

// esegue la connessione al database
            $conn = mysql_connect("$hostname", "$username", "$password");
            mysql_select_db($nome_db, $conn);

// recupera tutte le informazioni inserite dall'utente nella form quando clicca su tasto inserisci
            $nome = $_POST['nome'];
            $cognome = $_POST['cognome'];
            $indirizzo = $_POST['indirizzo'];
            $citta = $_POST['citta'];
            $provincia = $_POST['provincia'];

            $casa = $_POST['casa'];
            $cellulare = $_POST['cellulare'];
            $ufficio = $_POST['ufficio'];
            $mail = $_POST['mail'];


            if ($nome == "") {
                echo "<font color=\"red\"><tr><td>Il nome è un campo obbligatorio</td>
	</tr></font><br>";
            } else {

                // vengono ineriti i dati nella tabella persona
                $inserimento = "insert into persona (nome, cognome, indirizzo, citta, provincia) 
						values 
					('$nome', '$cognome', '$indirizzo', '$citta', '$provincia');";
                $ri = mysql_query($inserimento, $conn);

                //poiché la tabella persona è collegata mediante chiave esterna alla tabella contatto, allo
                //dobbiamo recuperare l'id dell'ultimo contatto inserito per poi inserirlo correttamente
                //nella tabella contatto al campo  id_persona che è chiave esterna
                // recupera ultimo id inserito
                $user_id = mysql_insert_id($conn);
                $inserimento = "insert into contatto (casa, cellulare, ufficio, e_mail, id_persona) 
						values 
					('$casa', '$cellulare', '$ufficio', '$mail', $user_id);";

                $ri = mysql_query($inserimento, $conn);
                if (!$ri) {
                    echo ('<h3>INSERIMENTO contatto FALLITO</h3>');
                } else {
                    echo ('<h3>INSERIMENTO contatto RIUSCITO</h3>');
                }
            }
        }
        ?>
 
Sei un grande ora perfavore se hai tempo se puoi aiutarmi anche con il cerca che mi da errore:
HTML:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Cerca</title>
</head>

<body>
<?php
include "index.php";
include "admin/connessione.php";


// quando si clicca sul pulsante cerca nella form, recupera il valore dalla select
//  e lo memorizza nella variabile $dato.
$cerca = $_POST['cerca'];

// quando si clicca sul pulsante cerca nella form, recupera il valore dalla casella di testo e
// lo memorizza nella variabile $cerca.
$dato = $_POST['dato'];

// esegue la connessione e la selezione del db
$conn = mysql_connect("$hostname", "$username", "$password");
$selezione = mysql_select_db($nome_db, $conn);

//se l'utente non selezione niente allora cerca = zz
if($cerca == "zz") {
	echo "<font color=\"red\">Ricordati che devi selezionare dove cercare</font><br>";
}

?>

<form name="rubrica" action="" method="post">
<table width="110">
<tr>
	<td width="50"> <img src="img/cerca.GIF" width="50" height="50" /> </td>
    <td width="50"> <input type="text" name="dato" /></td>
    <td width="50"> in </td>
    <td><select size=1 name="cerca">
                                <option value="zz"> seleziona </option>
                                <option value="nome"> Nome </option>
                                <option value="cognome"> Cognome </option>
                                <option value="indirizzo">Indirizzo</option>
                                <option value="citta">Citta</option>
                                <option value="provincia">Provincia</option>
                                <option value="casa"> Telefono Casa</option>
                                <option value="cllulare">Telefono Cellulare</option>
                                <option value="ufficio">Telefono Ufficio</option> 
								<option value="mail">Email</option>
                                </select> 
   </td>
</tr>
<tr>
	<td> </td>
	<td> <input type="submit" value="cerca" name="rubrica" /> 
    <input type="reset" value="reset" name="rubrica" /> </td>
</tr>
</table>

</form>

<?

// cerca ￾ diverso da zz e dato ￾ diverso dal valore nulla allora esegue la query
if( $cerca != "zz" and $dato != "") {
	
	//esegue query
	$query = mysql_query("Select * from persona inner join contatto on persona.id_persona = contatto.id_persona where $cerca like '%$dato%'");
	
	//recuperiamo il numero dei risultati
	$num_righe = mysql_num_rows($query);
	
	//se il numero dei risultati ￾ uguale a zero
	if($num_righe == 0) {
		echo 'Nessun risultato trovato';
	} else {
	
		echo "<br>I risultati ottenuti:<br><br>";
		
		
		// finche ci sono risultati nella variabile $query allora la funzione mysql_fetch_object prende i risultati ottenuti
		while ($data = mysql_fetch_object($query)) {
			// recupera tutte informazioni
			$id = $data->id_persona;
			$nome = $data->nome;
			$cognome = $data->cognome;
			$indirizzo = $data->indirizzo;
			$citta = $data->citta;
			$provincia = $data->provincia;
			$casa = $data->casa;
			$cellulare = $data->cellulare;
			$ufficio = $data->ufficio;
			$mail = $data->e_mail;
			
			
			echo "<br>Nome: <b>$nome</b><br>";
			if($cognome != "") { echo"Cognome: <b>$cognome</b><br>"; }
			if($indirizzo != ""){ echo"Indirizzo: <b>$indirizzo</b><br>";}
			if($citta != ""){ echo"Citta': <b>$citta</b><br>";}
			if($provincia != ""){ echo"Provincia: <b>$provincia</b><br>";}
			if($casa != ""){ echo "Telefono casa: <b><font color=orange> $casa </font> </b> <img src=\"img/tel.jpg\" alt=\"Telefono fisso\"><br>";}
			if($cellulare!=""){ echo "Telefono cellulare: <b><font color=blue>$cellulare</font></b> <img src=\"img/cell.jpg\" alt=\"Telefono cellulare\"><br>";}
			if($ufficio!=""){ echo "Telefono ufficio: <b><font color=blue>$ufficio</font></b> <img src=\"img/cell.jpg\" alt=\"Telefono ufficio\"><br>";}
			if($mail!=""){ echo"Email: <b><font color=green>$mail</font></b> <img src=\"img/email.jpg\" alt=\"Indirizzo Email\"><br>";}
			
			// la form invoca cancella_contatto.php passando l'id da cancellare
			echo "<form action=\"cancella_contatto.php\" method=\"post\" name=\"cancella\">";
			    // il campo id ￾ di tipo nascoto, quindi viene riempito automaticamente in base al contatto da cancellare		
			    echo "<input name=\"id\" type=\"hidden\" value=\"$id\"  />";
			    echo "<input name=\"cancella\" type=\"submit\" value=\"cancella\"  />";
		    echo "</form>";
		    
			
			echo "<br><br>";
		}
	}
}

mysql_close($conn);
?>




</body>
</html>
 
se l'errore è uguale devi fare la stessa cosa
 
esatto e anche nel secondo blocco di codice
PHP:
if (isset($cerca)) {
            if ($cerca != "zz" and $dato != "") {
 
gli errori non mi appaiono ma se cerco all'interno del database non mi trova nulla anche se ci sono dei contatti inseriti
 

Discussioni simili