Sliter mitt hår.. har fått i uppdrag av friidrottsklubben har hemma att göra en tävlingsanmälan - ett formulär som ska läggas ut på hemsidan. Formuläret fungerar bra förutom när det gäller de multipla checkboxarna (man ska kunna välja flera grenar på en gång).
Hur får man med flera "values" från checkboxar med samma namn "gren"?? Uppgifterna ska skickas via e-post och på "echo-sidan".
Så här ser del av formuläret ut:
<form name="kontakt" method="post" action="formmail.php">
Välj gren/grenar:
<input type="checkbox" name="gren[]" value="60m">60 m
<input type="checkbox" name="gren[]" value="80m"80 m
<input type="checkbox" name="gren[]" value="100m">100 m
PHP kod:
<?php
// startar sessioner
session_start();
// ämnesrubrik som visas när mailet tas emot
$subject = "Ämne";
// e-postadress som formulärinnhållet ska skicka till
$to = "min@adress.se";
// meddelande
$body = '
Namn: '.$_POST['name'].'
E-post: '.$_POST['email'].'
Tävling: '.$_POST['tavling'].'
Gren/grenar: '.$_POST['gren'].'
Meddelande: '.$_POST['meddelande'].'
';
// om submitknappen använts i formuläret bearbetas informationen i formulärfälten
if(isset($_POST['submit'])){
// kontrollerar om magic_quotes_gpc är aktiverat
// och lagrar information från formuläret
// som används i meddelandet och validering av fältinnehåll
if(get_magic_quotes_gpc()){
$name = stripslashes(trim($_POST["name"]));
$email = stripslashes(trim($_POST["email"]));
$tavling = stripslashes(trim($_POST["tavling"]));
$gren = stripslashes(trim($_POST["gren"]));
$meddelande = stripslashes(trim($_POST["meddelande"]));
}
else{
$name = $_POST["name"];
$email = $_POST["email"];
$tavling = $_POST["tavling"];
$gren = $_POST["gren"];
$meddelande = $_POST["meddelande"];
}
// startar sessioner
$_SESSION['name'] = $name;
$_SESSION['email'] = $email;
$_SESSION['tavling'] = $tavling;
$_SESSION['gren'] = $gren;
$_SESSION['meddelande'] = $meddelande;
// anger en variabel som kan lagra de eventuella felaktigheterna
$errors = array();
// kontrollera om tävling angivits
if (!$_POST["tavling"])
$errors[] = "- välj tävling";
// kontrollera om gren valts
if (!$_POST["gren"])
$errors[] = "- välj gren";
// kontrollera om namn angivits
if (!$_POST["name"])
$errors[] = "- ditt namn saknas";
// kontrollerar om epostadressen är korrekt angiven
if(!preg_match("/^[a-z0-9\å\ä\ö\ü\%._-]+@[a-z0-9\å\ä\ö\ü\%.-]+\.[a-z]{2,6}$/i", $email))
$errors[] = "- din e-postadress saknas eller är felaktig";
//kontrollera om scriptet anropas från ditt formulär
if ($_SERVER['HTTP_REFERER']!= "http://www.balstaik.se/kontaktform.php")
$errors[] = "- Du försöker använda vårt Formmail vilket bara är tillåtet från vår webplats!";
}
//CSS-formatering av felmeddelande
echo '<style type="text/css">
<!--
.text {font-family: Verdana, Arial, Helvetica, sans-serif;font-size: 11px;}
h2 {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; color: #336633; letter-spacing: 2px; font-weight: normal;}
.textbakgrund {background-color: #ccff66;}
-->
</style>';
// visning av felmeddelande
if (count($errors)>0){
echo "<span class='text'>";
echo "<h2>Följande information måste anges innan du kan skicka din anmälan:</h2><br /><br />";
foreach($errors as $fel)
echo "<span class='textbakgrund'> $fel <br /><br /></span>";
echo "<br />Ange den information som saknas och skicka anmälan igen. Tack! <br /><br />";
echo "<a href='javascript:history.go(-1)'>« klicka här för att komma tillbaka till anmälan</a></span>";
}
else {
// om formuläret är korrekt ifyllt skickas informationen
if (mail($to, $subject, $body ,"From: $email"))
// visar bekräftelsesidan
echo nl2br("<h2>Bekräftelse - Tack för din anmälan!</h2>
<b>Mottagare:</b> $to
<b>Ämne:</b> $subject
<b>Tävling:</b> $tavling
<b>Gren/grenar:</b> $gren
<b>Meddelande:</b> $meddelande
");
else
echo "Det gick inte att ta emot din anmälan";
}
?>
Hur får man med flera "values" från checkboxar med samma namn "gren"?? Uppgifterna ska skickas via e-post och på "echo-sidan".
Så här ser del av formuläret ut:
<form name="kontakt" method="post" action="formmail.php">
Välj gren/grenar:
<input type="checkbox" name="gren[]" value="60m">60 m
<input type="checkbox" name="gren[]" value="80m"80 m
<input type="checkbox" name="gren[]" value="100m">100 m
PHP kod:
<?php
// startar sessioner
session_start();
// ämnesrubrik som visas när mailet tas emot
$subject = "Ämne";
// e-postadress som formulärinnhållet ska skicka till
$to = "min@adress.se";
// meddelande
$body = '
Namn: '.$_POST['name'].'
E-post: '.$_POST['email'].'
Tävling: '.$_POST['tavling'].'
Gren/grenar: '.$_POST['gren'].'
Meddelande: '.$_POST['meddelande'].'
';
// om submitknappen använts i formuläret bearbetas informationen i formulärfälten
if(isset($_POST['submit'])){
// kontrollerar om magic_quotes_gpc är aktiverat
// och lagrar information från formuläret
// som används i meddelandet och validering av fältinnehåll
if(get_magic_quotes_gpc()){
$name = stripslashes(trim($_POST["name"]));
$email = stripslashes(trim($_POST["email"]));
$tavling = stripslashes(trim($_POST["tavling"]));
$gren = stripslashes(trim($_POST["gren"]));
$meddelande = stripslashes(trim($_POST["meddelande"]));
}
else{
$name = $_POST["name"];
$email = $_POST["email"];
$tavling = $_POST["tavling"];
$gren = $_POST["gren"];
$meddelande = $_POST["meddelande"];
}
// startar sessioner
$_SESSION['name'] = $name;
$_SESSION['email'] = $email;
$_SESSION['tavling'] = $tavling;
$_SESSION['gren'] = $gren;
$_SESSION['meddelande'] = $meddelande;
// anger en variabel som kan lagra de eventuella felaktigheterna
$errors = array();
// kontrollera om tävling angivits
if (!$_POST["tavling"])
$errors[] = "- välj tävling";
// kontrollera om gren valts
if (!$_POST["gren"])
$errors[] = "- välj gren";
// kontrollera om namn angivits
if (!$_POST["name"])
$errors[] = "- ditt namn saknas";
// kontrollerar om epostadressen är korrekt angiven
if(!preg_match("/^[a-z0-9\å\ä\ö\ü\%._-]+@[a-z0-9\å\ä\ö\ü\%.-]+\.[a-z]{2,6}$/i", $email))
$errors[] = "- din e-postadress saknas eller är felaktig";
//kontrollera om scriptet anropas från ditt formulär
if ($_SERVER['HTTP_REFERER']!= "http://www.balstaik.se/kontaktform.php")
$errors[] = "- Du försöker använda vårt Formmail vilket bara är tillåtet från vår webplats!";
}
//CSS-formatering av felmeddelande
echo '<style type="text/css">
<!--
.text {font-family: Verdana, Arial, Helvetica, sans-serif;font-size: 11px;}
h2 {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; color: #336633; letter-spacing: 2px; font-weight: normal;}
.textbakgrund {background-color: #ccff66;}
-->
</style>';
// visning av felmeddelande
if (count($errors)>0){
echo "<span class='text'>";
echo "<h2>Följande information måste anges innan du kan skicka din anmälan:</h2><br /><br />";
foreach($errors as $fel)
echo "<span class='textbakgrund'> $fel <br /><br /></span>";
echo "<br />Ange den information som saknas och skicka anmälan igen. Tack! <br /><br />";
echo "<a href='javascript:history.go(-1)'>« klicka här för att komma tillbaka till anmälan</a></span>";
}
else {
// om formuläret är korrekt ifyllt skickas informationen
if (mail($to, $subject, $body ,"From: $email"))
// visar bekräftelsesidan
echo nl2br("<h2>Bekräftelse - Tack för din anmälan!</h2>
<b>Mottagare:</b> $to
<b>Ämne:</b> $subject
<b>Tävling:</b> $tavling
<b>Gren/grenar:</b> $gren
<b>Meddelande:</b> $meddelande
");
else
echo "Det gick inte att ta emot din anmälan";
}
?>