Gå til innhold

E-postsjekk i gjestebok


Anbefalte innlegg

Prøver å få til en e-post-sjekk i gjesteboka mi men får det fanken ikke til!

 

Her er koden uten de funksjonene jeg har prøvd:

 

<form method="post" action="?gjest" name="gjest">

Namn:<br><input maxlength="30" size="25" name="namn"><br><br>
	E-post:<br><input maxlength="30" size="25" name="epost"><br><br>	
Kommentar:<br><textarea cols="30" rows="3" name="kommentar">	</textarea>
<br> <br>

 <input name="store" value="Lagre" type="submit"></form>

<?php

include 'db.php';

retrieve();

$kommentar = $_POST['kommentar'];
$namn = $_POST['namn'];
$epost = $_POST['epost'];
$store = $_POST['store'];



if ($store) 
store($namn,$epost,$kommentar);

function store($namn,$epost,$kommentar)
{ date_default_timezone_set("Europe/Oslo");		   
$dato = date("Y-m-d H:i:s");				   
 $resultat = mysql_query("INSERT INTO gjestdb VALUES	  
 ('$dato', '$namn', '$epost', '$kommentar')");					 
if (!$resultat)									   
			echo "<br><b>Dataene er ikke godkjent!</b>";
else			

$store = false;	

}	


function retrieve()
{	 $query = "SELECT * FROM gjestdb ORDER BY dato DESC";
$result = mysql_query($query);
$number = mysql_numrows($result);

$runner = 0;
while ($runner < $number)
{	$dato = mysql_result($resulta, $runner,"dato");
	$namn = mysql_result($result, $runner,"namn");
	$epost = mysql_result($result, $runner,"epost");
	$kommentar = mysql_result($result, $runner,"kommentar");
	echo "<br><br><b>$namn skreiv: </b><br> $kommentar <br>";
	$runner++; 
}
}

?>

Lenke til kommentar
Videoannonse
Annonse

Er nettopp derfor jeg spør. Jeg vet ikke hvor henn i det jeg allerede har det skal være.

 

Det jeg har prøvd meg på er dette scriptet:

if (isset($_POST['epost']))
$epost = $_POST['epost'];
$sok1 = "@";
$sok2 = ".";

function sjekk_streng($streng,$sok)
{
 $sjekk = strpos($streng,$sok);
 if ($sjekk == FALSE)
	return FALSE;
 else
	 return TRUE;


if ((sjekk_streng($epost,$sok1)== TRUE) AND (sjekk_streng($epost,$sok2)== FALSE) )
{   echo "<br><b>$epost er ei gyldig e-postadresse<b>";
}

else

{   echo "<br><b>$epost er ikkje ei gyldig e-postadresse</b>";
}
}

Lenke til kommentar

Du bør kanskje følge en og annen tutorial slik at du lettere skjønner sammenhengen i den koden du har.

 

Men ja enten sjekker du før du kaller store funksjonen, eller så sjekker du i den.

 

Det hele er egentlig veldig logisk. Du må jo sjekke eposten før du setter den inn i eposten, MySQL lagrer bare det den får beskjed om. Og du kan ikke sjekke e-posten før du har mottatt den fra brukeren. altså må $_POST['epost'] være satt før du kan sjekke den

 

# her sjekker du før du kjører store
if ($store) {
if(($fepost = filter_var($epost, FILTER_VALIDATE_EMAIL)))
  store($namn,$fepost,$kommentar);
else
  echo "Ugyldig e-post: $epost";
}

 

#her sjekker vi i store. Store kan da returnere false dersom det ikke blir lagret
function store($namn,$epost,$kommentar)
{ 
date_default_timezone_set("Europe/Oslo");		   
$dato = date("Y-m-d H:i:s");

# sjekk e-post før du prøver å lagre den i mysql

if (($fepost = filter_var($epost, FILTER_VALIDATE_EMAIL))) { 

  $resultat = mysql_query("INSERT INTO gjestdb VALUES	  
		 ('$dato', '$namn', '$fepost', '$kommentar')");					 

  if (!$resultat) {									   
 echo "<br><b>Dataene er ikke godkjent!</b>";
 return False;
  } else {			
 $store = false; // hva mente du med denne?
 echo "Kommentar lagret i gjestebok";
  }
} else {
  echo "Ugyldig e-postadresse: $epost";
  return False;
}
return True;

}

 

sånn ca.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...