webForumDet fria alternativet

Tomma input-fält sparas i mysql

PHP

3 svar · 357 visningar · startad av Guldstrand

Medlem sedan juli 20041 271 inlägg
Frågan#1

Jag försöker att skapa en "tipsa-funktion", men det går inte så bra.
Även fält som är tomma, sparas till mysql. :x

Har jag missat något?

<?php 

if(isset($_POST['submit'])){ 

include("mysql.php");

$epost = $_POST['epost']; 
$tipsare = $_POST['tipsare']; 

if (!empty($epost))
   {
      foreach ($epost as $value)
      {
      $sql = "INSERT INTO epostadresser (epost, datum, tipsare) VALUES ('$value', NOW(), '$tipsare')";
            mysql_query($sql) or die (mysql_error());
      }
   }  

} 
?>
</p>

<br />
<form method="post" action="tipsa.php">
	E-postadress 1: <input type="text" name="epost[]" /><br />
	E-postadress 2: <input type="text" name="epost[]" /><br />
	E-postadress 3: <input type="text" name="epost[]" /><br />
	E-postadress 4: <input type="text" name="epost[]" /><br />
	E-postadress 5: <input type="text" name="epost[]" />
	<br /><br />

	Din e-postadress: <input type="text" name="tipsare" title=" ** Din e-postadress ** " /><br />
	<span>Du måste ange <u>din egen e-postadress</u>, så vi har möjlighet att kontrollera hur många personer Du har tipsat.</span>
	<br /><br />

	<input type="submit" name="submit" value=" tipsa " />
</form>
Medlem sedan juli 20033 147 inlägg
#2

Byt plats på if och foreach-loopen. :)

foreach ($epost as $value)
   {
      if (!empty($value))
      {
      $sql = "INSERT INTO epostadresser (epost, datum, tipsare) VALUES ('$value', NOW(), '$tipsare')";
            mysql_query($sql) or die (mysql_error());
      }
   }
Medlem sedan juli 20041 271 inlägg
#3

Melea skrev:

Byt plats på if och foreach-loopen. :)

foreach ($epost as $value)
   {
      if (!empty($value))
      {
      $sql = "INSERT INTO epostadresser (epost, datum, tipsare) VALUES ('$value', NOW(), '$tipsare')";
            mysql_query($sql) or die (mysql_error());
      }
   }

Ooops.. var det enkelt. :r

En sak till, hur gör jag om jag vill validera så att NÅGON e-postadress är angiven? *lite svårt att förklara*

Medlem sedan juli 20033 147 inlägg
#4
foreach ($epost as $value)
   {
      if (preg_match('/^([a-z0-9][-a-z0-9_\.]+|\*)@([a-z0-9][-a-z0-9_\.]+|\*)\.[a-z]{2,6}/i', $value)) 
      {
      $sql = "INSERT INTO epostadresser (epost, datum, tipsare) VALUES ('$value', NOW(), '$tipsare')";
            mysql_query($sql) or die (mysql_error());
      }
   }
267 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)