[PHP] Inserire email in un database

  • Creatore Discussione Creatore Discussione polsanewore
  • Data di inizio Data di inizio
P

polsanewore

Guest
Vorrei creare un database dove archiviare gli indirizzi email che invio.
Vi posto il sorgente dello script.
Questa è la pagina index.php
Codice:
<?php
$host="localhost"; 
$username="soldiapalate";
$password=""; 
$db_name="mysoldiapalate"; 
$tbl_name="database_email"; 

mysql_connect("$host", "$username", "$password")or die("Impossibile connettersi");
mysql_select_db("$db_name")or die("Impossibile selezionare il DB");

$email=$_POST['email'];

if($username==NULL) {

echo "Indirizzo email non inserito";

}
else{
$checkemail = mysql_query("SELECT email FROM database_email WHERE email='$email'");
$email_exist = mysql_num_rows($checkemail);}

if ($email_exist>0) {
echo "Email già inserita nel Database";
}
else{
$sql="INSERT INTO database_email VALUES ('$email')";
}
?>

<table width="300" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<form action="index.php" method="POST">
<td>
<table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
<tr>
<td colspan="3"><strong>Email Database</strong></td>
</tr>
<tr>
<td width="78">Email</td>
<td width="6">:</td>
<td width="294"><input name="email" type="text" id="email"></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td><input type="submit" name="Invia" value="Invia"></td>
</tr>
</table>
</td>
</form>
</tr>
</table>

Con questo codice ho un po' di problemi.
1) Appena vado su quella pagina mi dice subito che non ho inserito l'email
2) Le email che scrivo non vengono inserite nel database

Questo è il codice del database:
Codice:
CREATE TABLE `database_email` (

  `email` varchar(150) collate latin1_general_ci NOT NULL
  ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=20 ;

Grazie per il vostro futuro aiuto
 
Abbi un po' di pazienza, hai uppato dopo meno di un'ora! Comunque ho ottimizzato il tuo script, ora dovrebbe funzionare. Tieni conto delle modifiche che ho fatto anche nelle applicazioni che scriverai in futuro. Ecco qui:
PHP:
<?php
if(isset($_POST['Invia']))
{
	$host = 'localhost'; 
	$username = 'soldiapalate';
	$password = ''; 
	$db_name = 'mysoldiapalate'; 
	$tbl_name = 'database_email'; 
	
	mysql_connect($host, $username, $password)or die('Impossibile connettersi al server MySQL.');
	mysql_select_db($db_name)or die('Impossibile selezionare il database MySQL.');
	
	
	$email = isset($_POST['email']) ? trim($_POST['email']) : '';
	
	if(!filter_var($email, FILTER_VALIDATE_EMAIL))
	{
		echo 'Non hai inserito un indirizzo e-mail valido.';
	}
	else
	{
		$checkemail = mysql_query("SELECT email FROM database_email WHERE email='{$email}'");
		$email_exist = mysql_num_rows($checkemail);
		
		if(!$email_exist)
		{
			$sql = "INSERT INTO database_email VALUES ('{$email}')";
			mysql_query($sql) or die('Impossibile eseguire la query SQL.');
			
			echo 'E-mail inserita correttamente nel database!';
		}
		else
			echo 'E-mail gi&agrave; inserita nel database.';
	}
}
else
{
?>
<table width="300" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
	<tr>
		<form action="index.php" method="POST">
			<td>
				<table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
					<tr>
						<td colspan="3"><strong>E-mail Database</strong></td>
					</tr>
					<tr>
						<td width="78">E-mail</td>
						<td width="6">:</td>
						<td width="294"><input name="email" type="text" id="email" /></td>
					</tr>
					<tr>
						<td>&nbsp;</td>
						<td>&nbsp;</td>
						<td><input type="submit" name="Invia" value="Invia" /></td>
					</tr>
				</table>
			</td>
		</form>
	</tr>
</table>
<?php 
}
?>
 

Discussioni simili