Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  3 712
Jeg har leget et kontakt skjema, der en av feltene er for telefon nummer. Men der kan di nå skrive hva som helst. Jeg ønsker at det bare skulle gå an å skrive nummer. Hvordan gjør jeg det?

Jeg trenger også hjelp til å få en "text field" til å kunn godkjenne epost adresse og at selve e-posten som blir send til min e-postkasse, skall vise bokstavene æ, ø og å.

index.php

Kode

<tr>
<td>
<span style="font-size:8pt"> Telefon nummer: </span>
</td>
<td align="right">
<input type="numberfield" name="telefon_nummer" value="">
</td>
</tr>

Kode

<tr>
<td>
<span style="font-size:8pt"> E-post adresse: </span>
</td>
<td align="right">
<input type="text" name="epost_adresse" value="">
</td>
</tr>

sendmail.php

Kode

<meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
<?php
            if($submit) { 
			

                    if($sted AND $antall_deltager AND $barnehagens_navn AND $post_adresse AND $post_nummer AND $post_sted AND $telefon_nummer AND $epost_adresse AND $epost_adresse_gjenta AND $faktura_adresse) { 
						
						$sted;
						$antall_deltager;
						$deltagers_navn;
						$barnehagens_navn;
						$post_adresse;
						$post_nummer;
						$post_sted;
						$telefon_nummer;
						$epost_adresse;
					        $epost_adresse_gjenta;
						$faktura_adresse;

						//Sendes på E-post
						$mottaker = "navn@googlemail.com"; 
						$emne = "PÅMELDING TIL KURSET SANG & MINDFULNESS"; 
						$fra ="
Sted:	$sted
Antall deltagere:	$antall_deltager
Deltagernes navn:
$deltagers_navn

Barnehagens navn:	$barnehagens_navn

Adresse:
Post adresse:	$post_adresse
Post nummer:	$post_nummer
Post sted:	$post_sted

Kontakt info!
Telefon nummer:	$telefon_nummer
E-post adresse:	$epost_adresse
Gjenta epost:	$epost_adresse_gjenta

Faktura adresse:
$faktura_adresse
";
// Slutt på E-Post melding
             
                        if(mail($mottaker,$emne,$fra,$sted)){ 
                            echo "<strong>Skjemaet ble sendt!</strong>
									<br/>
									<br/>
									Takk for din påmelding til kursrekken Den Indre Sanger. 
									Du mottar bekreftelse på om du har fått plass underveis, og senest 15. juni 2012.
									<br />
									<br />
									Du fylte ut følgene informarsjon:
									<br/>
									<br/>
									<br/>
									Sted:	$sted
									<br/>
									Antall deltagere:	$antall_deltager
									<br/>
									Deltagernes navn:
									<br/>
									$deltagers_navn
									<br/>
									<br/>
									Barnehagens navn:	$barnehagens_navn
									<br/>
									<br/>
									Adresse:
									<br/>
									Post adresse:	$post_adresse
									<br/>
									Post nummer:	$post_nummer
									<br/>
									Post sted:	$post_sted
									<br/>
									<br/>
									Kontakt info!
									<br/>
									Telefon nummer:	$telefon_nummer
									<br/>
									E-post adresse:	$epost_adresse
									<br/>
									Gjenta epost:	$epost_adresse_gjenta
									<br/>
									<br/>
									Faktura adresse:
									<br/>
									$faktura_adresse
									<br/>
									<br/>
									<br/>
									Gå <a href=\"index.php\">tilbake</a>"; 
                                } 
                        } else { 
                        echo "Mailen kan ikke sendes fordi du lot noen felter stå tomme. Nedenfor ser du hva du har skrevet!
								<br />
								Alle felter må fylles ut, untatt faktura adresse!
								<br />
									<br />
									Du fylte ut følgene informarsjon:
									<br/>
									<br/>
									<br/>
									(Du må velge et alternativ)
									<br/>
									Sted:	$sted
									<br/>
									<br/>
									(Du må velge et alternativ)
									<br/>
									Antall deltagere:	$antall_deltager
									<br/>
									<br/>
									(Du må adskille navnene med komma. ,)
									<br/>
									Deltagernes navn:
									<br/>
									$deltagers_navn
									<br/>
									<br/>
									Barnehagens navn:	$barnehagens_navn
									<br/>
									<br/>
									Adresse:
									<br/>
									Post adresse:	$post_adresse
									<br/>
									<br/>
									(Må være et nummer)
									<br/>
									Post nummer:	$post_nummer
									<br/>
									<br/>
									Post sted:	$post_sted
									<br/>
									<br/>
									Kontakt info!
									<br/>
									<br/>
									(Må være et nummer)
									<br/>
									Telefon nummer:	$telefon_nummer
									<br/>
									<br/>
									(Må være en gyldig e-post adresse)
									<br/>
									E-post adresse:	$epost_adresse
									<br/>
									<br/>
									(Må være den samme gyldige e-post adressen, som ovenfor)
									<br/>
									Gjenta epost:	$epost_adresse_gjenta
									<br/>
									<br/>
									Faktura adresse:
									<br/>
									$faktura_adresse
									<br/>
									<br/>
									<br/>
								Gå <a href=\"javascript:history.back(1)\">tilbake</a>. for å rette opp"; 
                            } 
                        } else { 
                        echo "Denne siden inneholder et mail-script. Du har kommet hit uten å fylle ut dette scriptet. Gå til <a href=\"index.php\">skjemaet</a> for å fylle ut.";
                    } 
?>
Kopierte hele "sendmail.php" fordi jeg er usikker hvor di diverse kodene må/bør plasseres.
Du kan sikkert bruke dette prinsippet i PHP (Skrevet i C#)

Kode

char[] input = Console.ReadLine().ToCharArray();
foreach (char c in input)
            {
                if ((int)c <= 57 && (int)c >= 48)
                    // Legg til verdien i en array som tilslutt blir matet inn i en db feks
                else
                    // avbryt løkken eller sett en trigger for feil
                  
            }
Kort sagt gjør det om hver enkel inputta character til ascii-verdi og verifiserer om det er mellom 48 eller 57 (som er 0-9)

For å verifisere at epost-input inneholder @ og . (som kjennetegner en gyldig epost-adresse) kan du sjekke etter ascii-verdi 64 og 46. Finnes sikkert en noe mer elegant måte å gjøre det på men men.
For å sjekke om en variabel kun innholder tall: is_numeric()
For å validere e-post: filter_var(). Sjekk eksemplene på siden.

Videre kan jeg si at koden din kun fungerer på servere med REGISTRER_GLOBALS påslått. Dette er en sikkerhetsrisiko og er som standard slått av på de fleste servere. Du må definere variablene du bruker først.

Kode

$sted = $_POST['sted']
- f. eks.
Ville revurdert bruken av filter_var, hvorfor ser du her:

http://development.giaever.org/paste...idateEmail.php (hvor filter_var slipper gjennom domener uten tld).