webForumDet fria alternativet

Flera fält i php formmail

PHP

14 svar · 1 219 visningar · startad av Ann-Sofie

Medlem sedan mars 2003136 inlägg
Frågan#1

Jag får inte till ett anmälnings-formulär som ska skickas med e-post och undrar om ni ser vad jag ska ändra?

anmal.php:

<form name="anmalan" method="post" action="formmail.php">
Namn:<input name="name" type="text" size="15">
Lagets Namn:<input name="lagetsnamn"  type="text" size="15" />
E-mail:<input name="email" type="text" size="15" />
Företag:<input name="company"  type="text" size="15" />
Medspelare 1:<input name="medspelare1"  type="text" size="15" />
Medspelare 2:<input name="medspelare2" type="text"  size="15" />
<input name="heja" type="checkbox" >Jag vill inte tävla, bara heja.
<input name="submit" type="submit"
value="Skicka anm&auml;lan" />
</form>

formmail.php:

<?php 
// anger en variabel som kan lagra de eventuella felaktigheterna 
$errors = array(); 
// kontrollera om ett Namn angivits 
if (!$_POST["name"]) 
$errors[] = "- ditt namn"; 

// kontrollera om en Epostadress angivits 
if (!$_POST["email"]) 
$errors[] = "- din epostadress"; 

// om felaktig information finns visas detta meddelande 
if (count($errors)>0){ 
echo "<strong>Följande information måste anges innan du kan skicka formuläret:</strong><br />"; 
foreach($errors as $fel) 
echo "$fel <br />"; 
echo "<br />Ange den information som saknas och skicka formuläret igen. Tack! <br />"; 
echo "<a href='javascript:history.go(-1)'>klicka här för att komma tillbaka till formuläret</a>"; 
} 
else { 
// formuläret är korrekt ifyllt och informationen bearbetas 
$to = "minmail@domän.se"; 
$from = $_POST["email"]; 
$lagetsnamn = $_POST["lagetsnamn"];
$company = $_POST["company"]; 
$name = $_POST["name"]; 
$message = $_POST["medspelare1"];  
$message = $_POST["medspelare2"];
$message = $_POST["heja"];  

if (mail($to, $lagetsnamn, $message ,"From: $name <$from>")) 
echo nl2br("<h2>Tack $name för din anmälan!</h2>"); 
     
    else 
    echo "Det gick inte att skicka ditt meddelande"; 
} 
?>

Nu fungerar Vem det är ifrån samt e-post adressen. Jag får också in ”lagets namn” i ärenderaden och så får jag in medspelare 2 i meddelande ytan i mejlet.

I meddelandeytan i mejlet vill jag få in både Lagets Namn, Medspelare 1, Medspelare 2, Företag och om checkboxen är ifylld.

Dessutom - formuläret ligger i ett popup-fönster och jag undrar också hur jag får bort den översta raden som visar http://www.mindomän.se/anmalan.php.
Ska jag ändra i php-filerna eller i HTML-dokumentet där det står:
<script language="JavaScript">
<!-- Begin
function popUp() {
props=window.open('http://www.mindomän.se/anmalan.php', 'poppage', 'toolbars=0, scrollbars=0, location=0, statusbars=0, menubars=0, resizable=0, width=720, height=1000 left = 100, top = 100');
}
// End -->
</script>

Suckar, hoppas ni ser var felet ligger och att det inte är alltför krångligt, jag känner mig helt blind och snurrig. Har suttit och testat och testat i timmar nu...

Medlem sedan mars 20021 152 inlägg
#2

Jag är inget bra på php, men har du inte bara missat ett par paranteser, if{..}?

Medlem sedan juni 200032 967 inlägg
#3

Nja, inte bara. Variabeln $message skrivs bara över, vi vill ju lägga in flera saker (konkatenera). Konkatenering görs i php med punkt.

Dessutom - formuläret ligger i ett popup-fönster och jag undrar också hur jag får bort den översta raden som visar http://www.mindomän.se/anmalan.php.

Den raden kan du inte ta bort.

edit: det saknas ett kommatecken mellan height och left i javascriptet som öppnar fönstret också. Inte för att det påverkar så mycket om detta, men ändå.

Medlem sedan mars 2003136 inlägg
#4

Det var just detta jag var ute och det funkar bra! Men! Hur 17 fixar man radbrytningen, jag har testat med \n men det funkade inte...

Medlem sedan juni 20034 013 inlägg
#5

Radbrytning: \r\n

Medlem sedan maj 20071 061 inlägg
#6

Snabb överblick (på en stressad arbetsplats). hinner jag så kollar jag nogranner när jag kommer hem.
Men tills dess prova med detta

$message = $_POST["medspelare1"];
$message .= $_POST["medspelare2"];
$message .= $_POST["heja"];

Den lilla punkten gör att variabeln $message lägger till varablerna istället för att få den senastes värde.

Medlem sedan maj 20071 061 inlägg
#7

Nu när jag sitter i min lugna vrå här hemma ser jag att du redan fått svar på dina frågor :l

Men det var ju bra att vi var gav liktydaktiga svar, då måste det ju vara rätt :)

Medlem sedan juni 20075 inlägg
#8

Jag har samma problem, men kan inte lösa det med tipsen jag fått här..

Jag har ett formulär som ska skickas till en e-postadress.. I formuläret finns en massa fält som ska fyllas i, och när jag sen får mailet kommer allt i en lång rad.

Så jag skulle behöva hälp med att fixa radbrytningar..

koden ser ut såhär:
$message = $_POST["meddelande1"];
$message .= $_POST["meddelande2"];
$message .= $_POST["meddelande3"];
$message .= $_POST["meddelande4"];
$message .= $_POST["meddelande5"];
$message .= $_POST["meddelande6"];

if (mail($to, $subject, $message ,"From: $name <$from>"))

echo nl2br("<h2>Ditt meddelande har skickats!</h2>
<b>Mottagare:</b> $to
<b>Ämne:</b> $subject
<b>Meddelande:</b>
$message
");

Hoppas någon kan hjälpa mig med detta!

Medlem sedan mars 20041 505 inlägg
#9
$message = $_POST["meddelande1"] . "\r\n";
$message .= $_POST["meddelande2"] . "\r\n";
$message .= $_POST["meddelande3"] . "\r\n";
$message .= $_POST["meddelande4"] . "\r\n";
$message .= $_POST["meddelande5"] . "\r\n";
$message .= $_POST["meddelande6"] . "\r\n";
Medlem sedan juni 20075 inlägg
#10

hauganzon skrev:

Jag har samma problem, men kan inte lösa det med tipsen jag fått här..

Jag har ett formulär som ska skickas till en e-postadress.. I formuläret finns en massa fält som ska fyllas i, och när jag sen får mailet kommer allt i en lång rad.

Så jag skulle behöva hälp med att fixa radbrytningar..

koden ser ut såhär:
$message = $_POST["meddelande1"];
$message .= $_POST["meddelande2"];
$message .= $_POST["meddelande3"];
$message .= $_POST["meddelande4"];
$message .= $_POST["meddelande5"];
$message .= $_POST["meddelande6"];

if (mail($to, $subject, $message ,"From: $name <$from>"))

echo nl2br("<h2>Ditt meddelande har skickats!</h2>
<b>Mottagare:</b> $to
<b>Ämne:</b> $subject
<b>Meddelande:</b>
$message
");

Hoppas någon kan hjälpa mig med detta!

Det löste sig.. Tack för hjälpen!

Medlem sedan mars 20041 505 inlägg
#11

hauganzon, varför ta bort? Posta lösningen istället! :)

Medlem sedan juni 20075 inlägg
#12

Troxy skrev:

hauganzon, varför ta bort? Posta lösningen istället! :)

Det hade du redan gjort! =)

Medlem sedan juni 20075 inlägg
#13

Hmm.. Nu stötte jag på ett annat problem.. Istället för radbrytning, har gör man ett (,) kommatecken?

Medlem sedan juni 20014 421 inlägg
#14

byt ut: "\r\n"; mot ",";

Medlem sedan juni 20075 inlägg
#15

colione skrev:

byt ut: "\r\n"; mot ",";

Tack för den... Tänk att det var så pass enkelt.. Provade en massa olika, men fick det inte att stämma!

268 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
141 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)