webForumDet fria alternativet

Kolla om användaren har e-post adress, sedan skicka e-posten.

PHP

5 svar · 307 visningar · startad av soidog

Medlem sedan nov. 200519 inlägg
Frågan#1

Håller på med en funktion som gör att medlemmar kan skicka e-post till varandra. Denna kod håller jag på att pilla på, men får det inte att funka.

if(@$_GET['skicka'] == 'skicka')
{
//kollar om användarnamnet har en emailadress

$q = mysql_query("SELECT email,nick FROM member WHERE nick = '{$_POST['nick']}' ORDER BY datum DESC LIMIT 1")
or exit(mysql_error());
while ($res = mysql_fetch_array($q)) 

$to = $res['email'];
}

if($to == NULL){ 
echo ('<p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p><center>Användaren du försöker skicka e-post till har ingen registrerad e-post adress.<p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><a href="javascript:window.close()">Stäng detta fönster</a></div></center>');
}
// här kommer allt som har med mailet att göra.
else{
Här skickas mailet.
}
?>

Koden stannar hela tiden med att användaren inte har något adress. Har provat att ändra

$q = mysql_query("SELECT email,nick FROM member WHERE nick = '{$_POST['nick']}' ORDER BY datum DESC LIMIT 1")

till

$q = mysql_query("SELECT email,nick FROM member WHERE nick = 'Webmaster' ORDER BY datum DESC LIMIT 1")

Det hjälpte inte. Någon som har en aning om vad som är för fel?

Soidog

Medlem sedan mars 20034 471 inlägg
#2

Om du kör följande SQL-sats:

SELECT COUNT(*) FROM member;

Och skriver ut resultatet, hur många rader har du då?

Finns det någon medlem med det nick du använder? Är du säker på att vederbörande har email angiven?

Medlem sedan nov. 200519 inlägg
#3

Det finns en medlem med det nick, samt en emailadress som är knuten till den personen. Om jag kör SELECT COUNT(*) FROM member så får jag 2648 som resultat.

Om jag kör denna denna kod

(@$_GET['skicka'] == 'skicka') 

//kollar om användarnamnet har en emailadress 

$q = mysql_query("SELECT email,nick FROM member WHERE nick = '{$_POST['nick']}' ORDER BY datum DESC LIMIT 1") 
or exit(mysql_error()); 
while ($res = mysql_fetch_array($q)) 

$to = $res['email']; 
 
// här kommer allt som har med mailet att göra. 
 
Här skickas mailet. samt en kvittens på att mailet gått iväg,

?>

Tänkte att man skulle få ett meddelande om man försöker skicka ett e-post meddelande till någon som inte har en e-post adress registrerad. Om jag kör denna kod ovan så får man en kvittens på att mailet gått iväg oavsett om användaren har en e-post adress eller inte.

Soidog...

Medlem sedan mars 20034 471 inlägg
#4

Jag tror du har måsvingefel! Se nedan:

Inte för att det påverkar ditt fel men... kan ett visst nick förekomma mer än en gång i member?

Annars borde följande räcka:

if(@$_GET['skicka'] == 'skicka') { 
//kollar om användarnamnet har en emailadress 
$q = mysql_query("SELECT email,nick FROM member WHERE nick = '{$_POST['nick']}'") or exit(mysql_error()); 
if ($res = mysql_fetch_array($q)) { //Finns bara 0 eller 1
   $to = $res['email']; 

   if ($to == NULL) { 
 echo  '<p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p><center>Användaren du försöker skicka e-post till har ingen registrerad e-post adress.<p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><a href="javascript:window.close()">Stäng detta fönster</a></div></center>'); 
   } 
   // här kommer allt som har med mailet att göra. 
   else { 
      //Här skickas mailet. 
   } 
}
Medlem sedan nov. 200519 inlägg
#5

Får ut en e-post adress och den ser ut som den ska.

Medlem sedan mars 20034 471 inlägg
#6

Jag har ändrat min post, såg plötsligt något! Se ovan.

270 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
142 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)