Avatar billede foxmulder58 Praktikant
26. oktober 2005 - 11:52 Der er 20 kommentarer og
1 løsning

Problemer med formular!

Hej eksperter,


jeg har lavet denne formular:


<-------------------------------------------------------->

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<head>
<title> Tilmelding Ledelseslinien </title>
<style type="text/css">

body{
  font-family:verdana;
  font-size:9px;
 

}
</style>
</head>
<body>
<small>Felter med * skal udfyldes.</small>
<table border="1" cellspacing="0">
<tr>
<td>

<form method="post" action="tilmelding_ledelse.php">

CPR nr. :</td><td><input type="text" name="cpr" size="15" maxlength="11"> *(xxxxxx-xxxx)</td>
</tr>
<tr>
<td>

Efteravn: </td><td><input type="text" name="efternavn" size="40">*<br/>
</td>
</tr>
<tr>
<td>
Fornavn:</td><td> <input type="text" name="navn" size="40">*<br/>
</td>
</tr>
<tr>
<td>

Adresse: </td><td><input type="text" name="adresse" size="40">*<br/>
</td>
</tr>

<tr>
<td>

Post nr:</td><td> <input type="text" name="postnr" size="15" maxlength="4">*<br/>
</td>
</tr>
<tr>
<td>
by: </td><td><input type"text" name="by" size="15">* <br/>
</td>
</tr>
<tr>
<td>
Firma:</td><td><input type="text" name="firma" size="40"> <br/>
</td>
</tr>
<tr>
<td>Telefon:</td>

<td>
Privat:

<input type="text" name="tlfPrivat" size="20">
</td>
</tr>

<tr>
<td>Firma:</td><td><input type="text" name="tlfFirma" size="20"></td></tr>

<tr>
<td>
E-mail:</td>
<td><input type="text" name="email" size="20"></td>
</tr>

</table>
<input type="submit" value="send"><input name="reset" type="reset" value="Nulstil tilmelding" >
</form>

<-------------------------------------------------------->




Problemet er at formularen sender ikke de indtastede data fra CPR nr feltet videre til den angivede e-mail.


Er der nogen der har en idé om hvorfor?
Avatar billede foxmulder58 Praktikant
26. oktober 2005 - 11:54 #1
Avatar billede trekkies Juniormester
26. oktober 2005 - 12:14 #2
Når at jeg skriver noget og klikker på "Send" knappen, så kommer det med.

Du mangler en html start og en html slut i din kode.
Avatar billede trekkies Juniormester
26. oktober 2005 - 12:22 #3
Hvordan ser din mail formular ud?
Avatar billede foxmulder58 Praktikant
26. oktober 2005 - 13:41 #4
Trekkies >> sådan ser min php formular ud:

<----------------------------------------------->
<html>
<head>
<title> Tilmelding Ledelseslinien </title>
</head>
<style type="text/css">

body{
  font-family:verdana;
  background-color="grey";
}

</style>

<body>
<?
$error = array();
if(!preg_match("/^\\d{6}-\\d{4}$/", $_POST['cpr'])) {
  $error[] = "Du har fejl i cpr-nr.";
  }
 




elseif(empty($_POST['efternavn'])) {
  $error[] = "Du har fejl i efternavn-feltet";
}
elseif(empty($_POST['navn'])) {
  $error[] = "Du har fejl i navn-feltet";
  }
elseif(empty($_POST['adresse'])) {
  $error[] = "Du har fejl i adresse feltet";
}
elseif(empty($_POST['postnr'])) {
  $error[] = "Du har fejl i postnr feltet";
}
elseif(empty($_POST['by'])) {
  $error[] = "Du har fejl i by feltet";
  }
if(count($error) > 0) {
  foreach($error as $v) {
    echo $v . "<br />";
  }
} else {
  //OK!
}


$besked = "cpr: ".$_POST['cpr']."\n\n";
echo "cpr nr: ".$_POST['cpr']."<br />";

$besked = "Efternavn: ".$_POST['efternavn']."\n\n";
echo "Efternavn: ".$_POST['efternavn']."<br />";

$besked .= "Navn: ".$_POST['navn']."\n\n ";
echo "Navn: ".$_POST['navn']."<br />";

$besked .= "Adresse: ".$_POST['adresse']."\n\n ";
echo "Adresse: ".$_POST['adresse']."<br />";

$besked .= "Postnr: ".$_POST['postnr']."\n\n ";
echo "postnr: ".$_POST['postnr']."<br />";


$besked .= "by: ".$_POST['by']."\n\n ";
echo "postnr: ".$_POST['by']."<br />";

$besked .= "firma: ".$_POST['firma']."\n\n ";
echo "Firma: ".$_POST['firma']."<br />";

$besked .= "Telefon privat: ".$_POST['tlfPrivat']."\n\n ";
echo "Firma: ".$_POST['tlfPrivat']."<br />";


$besked .= "Telefon Firma: ".$_POST['tlfFirma']."\n\n ";
echo "telefon Firma: ".$_POST['tlfFirma']."<br />";

$besked .= "E-mail: ".$_POST['email']."\n\n ";
echo "E-mail: ".$_POST['email']."<br />";

mail("madsns@gmail.com", "Tilmelding_Ledelse", $besked, "From: mail@domain.dk");
?>


</body>
</html>
Avatar billede net-base.dk Nybegynder
26. oktober 2005 - 14:49 #5
hvis manvælger "Vis kildekode" så mangler den <html> i toppen og </html> i bunden
Avatar billede johan.o Nybegynder
26. oktober 2005 - 15:03 #6
Jeg tror det vil hjælpe hvis du flytter din <form> tag ud af tabellen.

<form>
<table>
<tr>osv....

I din input linje for 'By' står der typetext.... type="text" var nok det du mente.

Hvis du retter de ting (og naturligvis html tags som andre påpeger) virker det så ?

Mvh. Johan
Avatar billede foxmulder58 Praktikant
26. oktober 2005 - 15:56 #7
nej det virker ikke CPR nummer bliver ikke sendt med i den mail.
Avatar billede johan.o Nybegynder
26. oktober 2005 - 16:41 #8
Du mangler, så vidt jeg kan se, stadig et <html> tag efter din <DOCTYPE>.

Mvh. Johan
Avatar billede johan.o Nybegynder
26. oktober 2005 - 16:43 #9
Ouw forresten når du siger den ikke sender det med, er det så fordi du får en 'fejl i cpr' eller er det fordi du har checket at $_POST['cpr'] er tom ?

Mvh. Johan
Avatar billede foxmulder58 Praktikant
26. oktober 2005 - 18:13 #10
hvad mener du med om den er tom?, selvom jeg indtaster data i dette felt bliver de ikke sendt, desværre.

mvh
Mads
Avatar billede foxmulder58 Praktikant
26. oktober 2005 - 18:24 #11
Er der slet ingen der ved hvorfor at CPR nr kommer med i emailen?
Avatar billede foxmulder58 Praktikant
26. oktober 2005 - 18:27 #12
Er der en jeg mon kan sende formularen.html samt php filen til pr. email, måske kan de gennemskue fejlen?
Avatar billede johan.o Nybegynder
26. oktober 2005 - 18:32 #13
I det php script du sender formen til checker du $_POST['cpr'] mod et reg_exp. Hvis der er uoverensstemmelse mellem de to får du beskeden 'Du har fejl i dit cpr.'. Så tænkte jeg blot at hvis du tog det som et udtryk for at formen ikke sendte noget så kunne der jo egentlig godt stå noget i $_POST['cpr'] alligevel, f.eks hvis dit reg_exp ikke virkede......men men men det virker jo fint og du har sikkert checket indholdet af $_POST['cpr'] allerede så det er nok ikke der problemet ligger. Fik du sat en <html> ind i dokumentet ?

Mvh. Johan
Avatar billede foxmulder58 Praktikant
26. oktober 2005 - 18:34 #14
må jeg ikke maile min PHP fil til dig Johan, får jeg kan ikke gennemskue fejlen !?
Avatar billede johan.o Nybegynder
26. oktober 2005 - 18:36 #15
Arhhh for h...... det er da fordi du mangler et . efter $besked i den linje hvor du ligger efternavn ind.

Sådan her :

$besked. = "Efternavn: ".$_POST['efternavn']."\n\n";
echo "Efternavn: ".$_POST['efternavn']."<br />";

Din form sender cpr nummeret det er dit php script der har fejlen. Det var præcis derfor jeg spurgte om $_POST['cpr'] var tom. Hvis du havde checket indholdet af den i starten af scriptet ville du kunne se at formen gjorde det rigtige.

Mvh. Johan
Avatar billede foxmulder58 Praktikant
26. oktober 2005 - 18:41 #16
Du er kanon Johan!!!!!!!!!!

Den havde jeg ikke set

Smid et svar!  ultra god karma til dig!!!!!!!
Avatar billede foxmulder58 Praktikant
26. oktober 2005 - 18:41 #17
Jeg har stirret på den formualar uden held hele dagen i dag he he he !
Avatar billede johan.o Nybegynder
26. oktober 2005 - 18:46 #18
:), en anden god gang så kan det hjælpe, i forbindelse med form afsendelse, at bruge nogle test linjer i det php script du sender formen til. Hvis du f.eks havde sat flg. ind :

echo "cpr: ".$_POST['cpr'];

så ville du kunne se med det samme at formen fungerede og problemet derfor måtte være i dit php script. Trekkies sagde det faktisk også men det var jeg ikke lige obs på, så jeg så mig blind på de manglende tags.

Mvh. Johan
Avatar billede foxmulder58 Praktikant
26. oktober 2005 - 18:49 #19
ja man ser sig hurtigt blin især når man er helt ny i det PHP, men du blev dagen helt!

PS! findes der et script funktion der kan gøre det at formularen ikke bliver sendt til mail hvis felter med * ikke bliver indtastet?
Avatar billede johan.o Nybegynder
26. oktober 2005 - 19:18 #20
'ikke sendt til mail' ? hvad mener du. Hvis du er ny i php så tillad mig lige at ridse nogle basics op. HTML siden med din form bliver 'kørt' af den computer som viser siden (din egen) mens php scriptet som du sender formen til bliver 'kørt' på den server hvor dine sider er uploaded til, denne server sender så sit output fra php siderne til den browser der viser siderne.

Man siger at PHP er server-side og HTML er client-side disse to begreber kan hjælpe meget i forståelsen af samarbejdet mellem de to.

Så der er derfor to måder at checke sine form's på.

1. Før afsendelsen til php scriptet.
2. Efter afsendelsen til php scriptet.

Mulighed 1 skal køres på din computer og skal derfor skrives i jscript. Er det det script du leder efter ? eller.....

Mulighed 2 køres på serveren og skal derfor skrives i php.

Hvis der er jscript du leder efter så kunne en løsning være noget i stil med at du før du sender form indholdet til serveren istedet aktivere et script som så checker de forskellige felter og hvis de kan godkendes så sendes indholdet til serveren.

Min hustru sidder og hiver i den ene side af computeren hun skal vist på hestenettet så jeg vil nøjes med at give dig nogle pointeres.

Istedet for at bruge en submit knap så brug en button som aktivere dit script.

I scriptet kan du så bruge document.getElemenById('dit_id').value til at checke de værdier brugeren har indtastet.

Hvis scriptet kan godkende de informationer brugeren har skrevet så sender du formen til sidst i scriptet med form_navn.submit();

Men husk at hvis du vil checke for skadeligt indhold f.eks. i forbindelse med mySQL (Bare rolig det skal nok komme) så bliver du nød til at checke i dit php script fordi brugeren kan jo ændre i dit jscript og derved fjerne din sikkerhed.

Mvh. Johan
Avatar billede foxmulder58 Praktikant
26. oktober 2005 - 19:22 #21
jeg vil gern e bevare hele formularen i PHP/HTML hvis det er muligt.

Jeg vil jo gerne have at indtastningerne valideres som ok inden afsending til e-mail.



mvh
Mads


NB! tak forhjælpen!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester