webForumDet fria alternativet

Problem med kontaktformulär!

7 svar · 639 visningar · startad av mathias5

mathias5Medlem sedan apr. 200735 inlägg
#1

Har gjort detta kontaktformulär nu ikväll men den man väljer i rullgardinen får inget mail tyvärr.. Någon som kan se vad det beror på? I min array har jag nu endast emailadresser, det vore såklart snyggare med namn som i sin tur är kopplade till en egen emailadress.. Hjälp med dessa två problem önskas!

KOD

<form action="<?php echo $PHP_SELF ?>" method="post">
            	Till<br />
            	<select name="valjmail" class="form">
				<?php
 					 $adress = array ("mailadress1","mailadress2","mailadress3"); 
					 sort ($adress);
                     for ($i = 0; $i < 3; $i = $i + 1) { // 3 = antalet personer
					 	if ($_REQUEST['valj']==$adress[$i]){
							$selected = "selected='selected'";
						}else{
							$selected = "";
						}
						
                        echo "<option ".$selected.">";
                        echo $adress[$i];
                        echo "</option>";
                    }			
                ?>
                </select><br />
            	Namn<br />
           	   <input name="namn" class="form" id="namn" size="30"/><br />
                E-postadress<br />
               <input name="epost" class="form" id="epost" size="30"/><br />
                Meddelande<br />
                <textarea name="meddelande" class="form" cols="34" rows="7" id="meddelande"></textarea><br /><br />
                <input name="send" class="form" id="send" type="submit" value="Skicka" />
                <input name="reset" class="form" id="reset" type="reset" value="Ångra" />               
            </form>
           	<?php
				if (@$_REQUEST['send']!=""){
				$namn = $_POST['namn'];
				$email = $_POST['epost'];
				$meddelande = $_POST['meddelande'];
				$tackformail = "Tack för ditt mail! Jag svarar så fort jag kan.";
				$amne = "Mantorp xdream";
				$ok = "ja";
				
				if($namn == ""){
					echo "Du måste ange ditt namn!<br />";
					$ok = "nej";
				}
				if($email == ""){
					echo "Du måste ange din e-postadress!<br />";
					$ok = "nej";
				}
				if($meddelande == ""){
					echo "Du måste skriva ett meddelande!";
					$ok = "nej";
				}
				if ($ok == "ja"){
					$msg = ereg_replace("\\\'", "'", $meddelande);
					mail($adress[$i], $amne, $meddelande, "From: $email\r\nReply-to: $email\r\n");
					echo $tackformail;		
					}
				}			
			?>
PeddaMedlem sedan juni 20006 032 inlägg
#2

Du måste sätta mailadressen som value också.

red.
alltså

echo "<option ".$selected." value=\"".$adress[$i]."\">";
mathias5Medlem sedan apr. 200735 inlägg
#3

Tack!

mathias5Medlem sedan apr. 200735 inlägg
#4

Men fortfarande kommer inga mail fram.. : /

PeddaMedlem sedan juni 20006 032 inlägg
#5

Din select heter ju valjmail men i mail() funktionen har du adress[$i]
ändra till $_POST['valjmail']

Om det ändå inte funkar testa att skriva ut värdena i variablerna för att se vad dom innehåller.

mathias5Medlem sedan apr. 200735 inlägg
#6

Sådär ja! Tack ska du ha! :)

mathias5Medlem sedan apr. 200735 inlägg
#7

Nästa problem är nu att få ut namn istället för epostadresser och när man väljer ett specifikt namn t.ex martin så ska mailet skickas till hans emailadress. Hur görs detta bäst? Jag har provat lite med tvådimensionella arrayer men inte fått det resultat jag vill..:)

aasahMedlem sedan mars 20034 471 inlägg
#8
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post">
Till<br />
<select name="valjmail" class="form">
<?php
$adress = array ("namn1" => "mailadress1",
                       "namn2" => "mailadress2",
                       "namn3" => "mailadress3")
sort ($adress);
foreach ($adress as $namn => $mail) { 
   if ($_POST['valj']==$namn) {  //Utnyttja: Vet att formuläret skickas med POST
      $selected = "selected='selected'";
   }
   else {
      $selected = "";
   }
   echo "<option value ="$name" ".$selected.">$name</option>";
}			
?>
</select><br />
<!--- mera forminfo --->           	
<?php
if (@$_POST['send']!="") {    //Um... Vad har @ här att göra?
// En massa kod
$toNamn = $_POST['valjmail'];
$toEpost = $adress[$toNamn]
mail($toEpost, $amne, $meddelande, "From: $email\r\nReply-to: $email\r\n");
// mera kod
129 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)