Trädvy Permalänk
Medlem
Registrerad
Jun 2005

Lite php frågor.

Tjabba !

Sitter här med ett formulär där jag skulle vilja ha lite hjälp med om ni har tid.

1. Skall ha två st radiobutton i mitt formulär där jag skulle med phps hjälp att man måste välja en av dessa hur ser php kodningen ut för detta ?

2. Sedan har jag några text fält där jag skulle vilja att man endast kan fylla i siffror och inget annat någon har har en php kod för detta ?

Skulle ni vilja se mitt php formuläret som jag fixat lite i så kan jag slänga upp det här.

/Force

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Feb 2003

1. Gruppera radioknapparna i en grupp och välj en av dessa som standard så behöver du inte göra någon koll. Dock skadar det inte att vara säker. Har för mig man anger namnet på knapparna som "namn[]" (utan citattecken).

<input type="radiobutton" id="first" name="group[]" selected="selected" /> <label for="first">First</label> <input type="radiobutton" id="second" name="group[]" /> <label for="second">Second</label>

2.

$input = $_POST['digits']; if(!preg_match('/^\d+$/', $input)) { echo 'FEL!'; }

Trädvy Permalänk
Medlem
Plats
Falun
Registrerad
Dec 2003
Citat:

Ursprungligen inskrivet av forcevision
Tjabba !

Sitter här med ett formulär där jag skulle vilja ha lite hjälp med om ni har tid.

1. Skall ha två st radiobutton i mitt formulär där jag skulle med phps hjälp att man måste välja en av dessa hur ser php kodningen ut för detta ?

2. Sedan har jag några text fält där jag skulle vilja att man endast kan fylla i siffror och inget annat någon har har en php kod för detta ?

Skulle ni vilja se mitt php formuläret som jag fixat lite i så kan jag slänga upp det här.

/Force

Det du vill göra ska du göra i XHTML (1:an) och Javascript (2:an) men även PHP för dubbelkoll av 2:an.
Javascript behövs om du ska tvinga användaren så att endast siffror går att mata in. Tänk på att det går att gå runt detta då det är ett klient-script. PHP behövs för att bekräfta input.

ηλί, ηλί, λαμά σαβαχθανί!?

Trädvy Permalänk
Medlem
Plats
Lund
Registrerad
Mar 2002

2. http://se.php.net/manual/en/function.is-numeric.php + skönhetskontroll i JavaScript som Leedow säger. Lite aldrig på indata

"Knowledge amplification. What he learns, we all learn. What he knows, we all benefit from."

Trädvy Permalänk
Medlem
Registrerad
Jun 2005

[QUOTE]Ursprungligen inskrivet av Garret
[B]1. Gruppera radioknapparna i en grupp och välj en av dessa som standard så behöver du inte göra någon koll. Dock skadar det inte att vara säker. Har för mig man anger namnet på knapparna som "namn[]" (utan citattecken).

<input type="radiobutton" id="first" name="group[]" selected="selected" /> <label for="first">First</label> <input type="radiobutton" id="second" name="group[]" /> <label for="second">Second</label>

Kollade lite på denna kodningen men förstår den inte riktigt.

Önskvärt skulle vara då att man väljer antingen eller av dessa radiobuttons och att det man valde står med i mail scriptet som dessa skall vara med i då.

Så kollade jag på php länken jag fick hära.

Har jag rätt om jag kodar som följande:

<?php
$antal2 = ''; //

if(isset($_POST['send']))
{
$antal2 = $_POST['antal2'];

if(trim($antal2) == '')
{
$error = '<div class="errormsg">Du maste fylla i antal!</div>';
}

<input type="text" name="antal2" class="box" id="name2" size="5" value="<?=$antal2;?>" /></span>
<p><span class="label">

<?php
$antal2 = preg_match
('/^[+-]?'. // start marker and sign prefix
'(((([0-9]+)|([0-9]{1,4}(,[0-9]{3,4})+)))?(\\.[0-9])?([0-9]*)|'. // american
'((([0-9]+)|([0-9]{1,4}(\\.[0-9]{3,4})+)))?(,[0-9])?([0-9]*))'. // world
'(e[0-9]+)?'. // exponent
'$/', // end marker
$str) == 1;
?>

Är detta rätt då att om man fyller i annat än siffror i textfältet så får man fel medelandet ?

Trädvy Permalänk
Medlem
Plats
Linköping
Registrerad
Mar 2008

Regexet du angivit verkar även acceptera grupperade tal med decimaldel (och även en exponent?) i både amerikansk och "svensk" stil, med eventuellt tecken framför. Typ +123,456.78 eller -123.456,78 och 3e8 och dylikt. Är det det du vill ha, eller vill du helt enkelt ha bara siffror, och i så fall minst en, eller går det bra med tom ruta?

Trädvy Permalänk
Medlem
Registrerad
Jun 2005

Okej nej skall bara vara siffror och det får inte vara något tomt tal. Det skulle vara önskvärt med mobil telefon nummer endast så man måste skriva i 10 siffror varken mer eller mindre.

Trädvy Permalänk
Medlem
Plats
i din garderob
Registrerad
Sep 2007

preg_match('/^[0-9]{10}$/')

den tillåter inte mellanslag.

edit: badbolls förslag nedan är snyggare. jag känner inte hur många 07x-versioner det finns dock.
edit2: 076 vet jag finns

Bilanaloger är som Volvo — varenda svenne kör med dem

Trädvy Permalänk
Medlem
Plats
Linköping
Registrerad
Mar 2008

Vill man vara mer specifik så börjar väl ett mobilnummer i Sverige på antingen 010 (om någon nu har en gammal NMT fortfarande), 070 eller 073. Då skulle man kunna ha regexet:

^(010|070|073)[0-9]{7}$

istället.

(Det kan dock vara väldigt frustrerande för användaren ifall nu regexet inte tillåter något som faktiskt är giltigt IRL, så man får ha bra koll på de begränsningar man inför. Och det hindrar ju inte heller användaren från att fejka mobilnummer. )

Trädvy Permalänk
Medlem
Plats
Västerås
Registrerad
Jun 2005

Och som sagt förut. Sluta använda SHORT CODES.... i PHP.

Fractal Design Arc Svart | MSI Z68A-GD55 G3 REV B3 | Intel® Core i7 2600K, 3.4GHz, 8MB | Corsair 16GB (4x4096MB) CL9 1600Mhz VENGEANCE LP | MSI GeForce GTX 670 | Phanteks PH-TC14PE CPU Cooler (vit) | Corsair Power Supply 650W TX M, Modular, ATX, PS/2 | SSD (okänd tillverkare) + 2 äldre SATA2 diskar på 750 Gb, 350 gb. | OS: Microsoft Windows 10 home.

Trädvy Permalänk
Medlem
Plats
i din garderob
Registrerad
Sep 2007
Citat:

Ursprungligen inskrivet av BlueEyes
Och som sagt förut. Sluta använda SHORT CODES.... i PHP.

Du kan inte specifiera vad 17 du menar? Mig veterligen är "short codes" något du själv kommit på. Om du menar bruket av <?= ?> för direkt variabelåtkomst så är det fullt acceptabelt.

Bilanaloger är som Volvo — varenda svenne kör med dem

Trädvy Permalänk
Medlem
Registrerad
Jun 2005

Okej så textfältet för mobiltelefoner blir som följande:

<?php
$antal2 = ''; //

if(isset($_POST['send']))
{
$antal2 = $_POST['antal2'];

if(trim($antal2) == '')
{
$error = '<div class="errormsg">Du maste fylla i antal!</div>';
}

<input type="text" name="antal2" class="box" id="name2" size="5" value="<?=$antal2;?>" /></span>
<p><span class="label">

<?php
$antal2 = preg_match ('/^(010|070|073)[0-9]{7}$/') == 1;
?>

Detta skulle fungera eller ?

Trädvy Permalänk
Medlem
Plats
i din garderob
Registrerad
Sep 2007

Testa

(lägg till 076 i preg_match-anropet)

Bilanaloger är som Volvo — varenda svenne kör med dem

Trädvy Permalänk
Medlem
Registrerad
Jun 2005

Nope det verkar inte fungera på hemsidan får jag nu detta fel medelandet:

Warning: preg_match() expects at least 2 parameters, 1 given in /var/www/bestall.php on line 286

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Feb 2003

Prova det här:

if( preg_match( '/^(010|070|073|076)[0-9]{7}$/', $antal2 ) ) { // Gör det du vill om det är ett nummer. }

Trädvy Permalänk
Medlem
Registrerad
Jun 2005
Citat:

Ursprungligen inskrivet av Garret
Prova det här:

if( preg_match( '/^(010|070|073|076)[0-9]{7}$/', $antal2 ) ) { // Gör det du vill om det är ett nummer. }

Jag fick bort felmedelandet som jag hade innan men jag kan skriva i vad somhelst spelar ingen roll om det är siffror eller bokstäver så något annat är fel ?

Ni kanske vill se hela sidan hur den ser ut ?

Trädvy Permalänk
Medlem
Plats
i din garderob
Registrerad
Sep 2007

När det kommer till webben kan man säga att det finns två sidor: serversidan och klientsidan.

Text som du fyller i ett formulär, t ex sökfältet högst upp på sweclockers.com, ifylles på klientsidan. Det vill säga, du har gått in på sweclockers.com, HTTP-servern har registrerat din förfrågan och skickat tillbaka den webbsida du nu ser. Formuläret är en del av den data som har skickats till dig som användare av sidan.

PHP arbetar på serversidan. Vad har detta för innebörd? Jo, du kan inte använda PHP för att direkt (det vill säga innan informationen har skickats tillbaka till servern) påverka eller begränsa det en användare matar in i ett HTML-formulär, klickar på, för muspilen över etc. För den funktionaliteten behövs JavaScript.

Med andra ord, PHPs uppgift i det sammanhang du beskrivit ovan är inte att aktivt begränsa det en användare skriver in i textfältet; PHPs uppgift (utifrån den kod som står skriven ovan) är att fungera som kontrollant för de värden som har skickats till servern, och vidarebehandla denna information om den uppfyller de kriterier som satts.

Bättre än så kan jag inte förklara det. Om du inte har en aning om vad jag menar så är detta projekt antagligen för stort för dig.

Bilanaloger är som Volvo — varenda svenne kör med dem

Trädvy Permalänk
Medlem
Registrerad
Jun 2005
Citat:

Ursprungligen inskrivet av Teknocide
När det kommer till webben kan man säga att det finns två sidor: serversidan och klientsidan.

Text som du fyller i ett formulär, t ex sökfältet högst upp på sweclockers.com, ifylles på klientsidan. Det vill säga, du har gått in på sweclockers.com, HTTP-servern har registrerat din förfrågan och skickat tillbaka den webbsida du nu ser. Formuläret är en del av den data som har skickats till dig som användare av sidan.

PHP arbetar på serversidan. Vad har detta för innebörd? Jo, du kan inte använda PHP för att direkt (det vill säga innan informationen har skickats tillbaka till servern) påverka eller begränsa det en användare matar in i ett HTML-formulär, klickar på, för muspilen över etc. För den funktionaliteten behövs JavaScript.

Med andra ord, PHPs uppgift i det sammanhang du beskrivit ovan är inte att aktivt begränsa det en användare skriver in i textfältet; PHPs uppgift (utifrån den kod som står skriven ovan) är att fungera som kontrollant för de värden som har skickats till servern, och vidarebehandla denna information om den uppfyller de kriterier som satts.

Bättre än så kan jag inte förklara det. Om du inte har en aning om vad jag menar så är detta projekt antagligen för stort för dig.

Jag är med delvis hur du menar men denna koden:

if( preg_match( '/^(010|070|073|076)[0-9]{7}$/', $antal2 ) ) {
// Gör det du vill om det är ett nummer.
}

Jag fixar in hela formuläret bättre över sikt då.

Så här ser formuläret ut:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link href="style.css" rel="stylesheet" type="text/css" />

<script type="text/JavaScript">
<!--
var browserName=navigator.appName;

if (browserName=="Microsoft Internet Explorer") {
document.write('<link rel="stylesheet" type="text/css" href="ie.css" media="screen">');
}
else {
document.write('<link rel="stylesheet" type="text/css" href="ff.css" media="screen">');
}
//-->
</script>
<title>beställning</title>
</head>

<body>
<div id="contentForm">

<!-- The contact form starts from here-->
<?php
$error = ''; // error message
$name = ''; // sender's name
$adress = '';
$post = '';
$tel = '';
$mobil = '';
$email = ''; // sender's email address
$spamcheck = ''; // Spam check
$nr1 = '';
$art1 = '';
$antal1 = '';

if(isset($_POST['send']))
{
$name = $_POST['name'];
$adress = $_POST['adress'];
$post = $_POST['post'];
$tel = $_POST['tel'];
$mobil = $_POST['mobil'];
$email = $_POST['email'];
$spamcheck = $_POST['spamcheck'];
$nr1 = $_POST['nr1'];
$art1 = $_POST['art1'];
$antal1 = $_POST['antal1'];
$nr2 = $_POST['nr2'];
$art2 = $_POST['art2'];
$antal2 = $_POST['antal2'];
$nr3 = $_POST['nr3'];
$art3 = $_POST['art3'];
$antal3 = $_POST['antal3'];
$nr4 = $_POST['nr4'];
$art4 = $_POST['art4'];
$antal4 = $_POST['antal4'];
$nr5 = $_POST['nr5'];
$art5 = $_POST['art5'];
$antal5 = $_POST['antal5'];
$nr6 = $_POST['nr6'];
$art6 = $_POST['art6'];
$antal6 = $_POST['antal6'];
$nr7 = $_POST['nr7'];
$art7 = $_POST['art7'];
$antal7 = $_POST['antal7'];
$nr8 = $_POST['nr8'];
$art8 = $_POST['art8'];
$antal8 = $_POST['antal8'];
$nr9 = $_POST['nr9'];
$art9 = $_POST['art9'];
$antal9 = $_POST['antal9'];

if(trim($name) == '')
{
$error = '<div class="errormsg">Du maste fylla i ditt namn!</div>';
}
if(trim($adress) == '')
{
$error = '<div class="errormsg">Du maste fylla i en adress</div>';
}
if(trim($post) == '')
{
$error = '<div class="errormsg">Du maste fylla din postadress!</div>';
}
if(trim($tel) == '')
{
$error = '<div class="errormsg">Du maste fylla i ditt telefon nummer!</div>';
}
if(trim($mobil) == '')
{
$error = '<div class="errormsg">Du har inte fylt i korrekt mobil nummer!</div>';
}
else if(trim($email) == '')
{
$error = '<div class="errormsg">Du maste fylla i din E-mail adress!</div>';
}
else if(!isEmail($email))
{
$error = '<div class="errormsg">Du har skrivit in en felaktig E-mail adress. Försök igen!</div>';
}
else if(trim($spamcheck) == '')
{
$error = '<div class="errormsg">Du maste fylla i resultatet av Spam kontroll!</div>';
}
else if(trim($spamcheck) != '5')
{
$error = '<div class="errormsg">Spam kontroll: Resultatet är inte rätt! 2 + 3 = ???</div>';
}
if(trim($nr1) == '')
{
$error = '<div class="errormsg">Du maste fylla i artikel nummer!</div>';
}
if(trim($art1) == '')
{
$error = '<div class="errormsg">Du maste fylla i artikel!</div>';
}
if(trim($antal1) == '')
{
$error = '<div class="errormsg">Du maste fylla i antal!</div>';
}
if($error == '')
{
if(get_magic_quotes_gpc())
{
$message = stripslashes($message);
}

// the email will be sent here
// make sure to change this to be your e-mail
$to = "min@email.nu";

// the email subject
// '[Contact Form] :' will appear automatically in the subject.
// You can change it as you want

$subject = '[Beställning]' . $subject;

// the mail message ( add any additional information if you want )
$msg = "Fran: $name\r\n\n" . "Adress: $adress\r\n\n" . "Postadress: $post\r\n\n" . "Telefon nummer: $tel\r\n\n" . "Mobil nummer: $mobil\r\n\n" . "E-mail: $email\r\n\n" . "Produkt1: Artikel nummer: $nr1 Artikel: $art1 Antal: $antal1\r\n\n" . "Produkt2: Artikel nummer: $nr2 Artikel: $art2 Antal: $antal2\r\n\n" . "Produkt3: Artikel nummer: $nr3 Artikel: $art3 Antal: $antal3\r\n\n" . "Produkt4: Artikel nummer: $nr4 Artikel: $art4 Antal: $antal4\r\n\n" . "Produkt5: Artikel nummer: $nr5 Artikel: $art5 Antal: $antal5\r\n\n" . "Produkt6: Artikel nummer: $nr6 Artikel: $art6 Antal: $antal6\r\n\n" . "Produkt7: Artikel nummer: $nr7 Artikel: $art7 Antal: $antal7\r\n\n" . "Produkt8: Artikel nummer: $nr8 Artikel: $art8 Antal: $antal8\r\n\n" . "Produkt9: Artikel nummer: $nr9 Artikel: $art9 Antal: $antal9\r\n\n" . "Produkt10: Artikel nummer: $nr10 Artikel: $art10 Antal: $antal10\r\n\n" . "Produkt11: Artikel nummer: $nr11 Artikel: $art11 Antal: $antal11\r\n\n";

mail($to, $subject, $msg, "From: $email\r\nReply-To: $email\r\nReturn-Path: $email\r\n");
?>

<!-- Message sent! (change the text below as you wish)-->
<div style="text-align:center;">
<h3>formulär</h3>
<p>Tack för din beställning <b><?=$name;?></b>, Din beställning är nu skickat och vi aterkommer inom kort!</p>
</div>
<!--End Message Sent-->

<?php
}
}

if(!isset($_POST['send']) || $error != '')
{
?>

<h3 align="center">formulär:</h3>
<!--Error Message-->
<form method="post" name="contFrm" id="contFrm" action="" onsubmit='return validate(this)'>

<label><span class="required">*</span> Ditt namn:</label>
<span class="input1"><input name="name" type="text" class="box" id="name" size="30" value="<?=$name;?>" /></span>
<p>
<label><span class="required">*</span> Adress: </label>
<span class="input2"><input name="adress" type="text" class="box" id="name" size="30" value="<?=$adress;?>" /></span>
<p>
<label><span class="required">*</span> Post adress: </label>
<span class="input3"><input name="post" type="text" class="box" id="name" size="30" value="<?=$post;?>" /></span>
<p>
<label><span class="required">*</span> Telefon nr: </label>
<span class="input4"><input name="tel" type="text" class="box" id="name" size="30" value="<?=$tel;?>" /></span>
<p>
<label><span class="required">*</span> Mobil nr: </label><br />
<span class="input5"><input name="mobil" type="text" class="box" id="name" size="30" value="<?=$mobil;?>" /></span>
<p>
<label><span class="required">*</span> E-mail: </label><br />
<span class="input6"><input name="email" type="text" class="box" id="email" size="30" value="<?=$email;?>" /></span>
<div id="text1">Artikel nr</div>
<div id="text2">Artikel</div>
<div id="text3">Antal</div>
<p> </p>
<p> </p>
<label><span class="required">*</span><span class="input8"> Produkt 1</label>
<input name="nr1" type="text" class="box" id="name" size="10" value="<?=$nr1;?>" />
<label></label>
<input type="text" name="art1" class="box" id="name" size="40" value="<?=$art1;?>" />
<label></label>
<input type="text" name="antal1" class="box" id="name" size="5" value="<?=$antal1;?>" /></span>
<p><span class="input9"><label>Produkt 2</label>
<input name="nr2" type="text" class="box" id="name2" size="10" value="<?=$nr2;?>" />
<label></label>
<input type="text" name="art2" class="box" id="name2" size="40" value="<?=$art2;?>" />
<label></label>
<input type="text" name="antal2" class="box" id="name2" size="5" value="<?=$antal2;?>" /></span>
<p><span class="input10"><label>Produkt 3</label>
<input name="nr3" type="text" class="box" id="name2" size="10" value="<?=$nr3;?>" />
<label></label>
<input type="text" name="art3" class="box" id="name2" size="40" value="<?=$art3;?>" />
<label></label>
<input type="text" name="antal3" class="box" id="name2" size="5" value="<?=$antal3;?>" /></span>
<p><span class="input11"><label>Produkt 4</label>
<input name="nr4" type="text" class="box" id="name2" size="10" value="<?=$nr4;?>" />
<label></label>
<input type="text" name="art4" class="box" id="name2" size="40" value="<?=$art4;?>" />
<label></label>
<input type="text" name="antal4" class="box" id="name2" size="5" value="<?=$antal4;?>" /></span>
<p><span class="input12"><label>Produkt 5</label>
<input name="nr5" type="text" class="box" id="name2" size="10" value="<?=$nr5;?>" />
<label></label>
<input type="text" name="art5" class="box" id="name2" size="40" value="<?=$art5;?>" />
<label></label>
<input type="text" name="antal5" class="box" id="name2" size="5" value="<?=$antal5;?>" /></span>
<p><span class="input13"><label>Produkt 6</label>
<input name="nr6" type="text" class="box" id="name2" size="10" value="<?=$nr6;?>" />
<label></label>
<input type="text" name="art6" class="box" id="name2" size="40" value="<?=$art6;?>" />
<label></label>
<input type="text" name="antal6" class="box" id="name2" size="5" value="<?=$antal6;?>" /></span>
<p><span class="input14"><label>Produkt 7</label>
<input name="nr7" type="text" class="box" id="name2" size="10" value="<?=$nr7;?>" />
<label></label>
<input type="text" name="art7" class="box" id="name2" size="40" value="<?=$art7;?>" />
<label></label>
<input type="text" name="antal7" class="box" id="name2" size="5" value="<?=$antal7;?>" /></span>
<p><span class="input15"><label>Produkt 8</label>
<input name="nr8" type="text" class="box" id="name2" size="10" value="<?=$nr8;?>" />
<label></label>
<input type="text" name="art8" class="box" id="name2" size="40" value="<?=$art8;?>" />
<label></label>
<input type="text" name="antal8" class="box" id="name2" size="5" value="<?=$antal8;?>" /></span>
<p><span class="input16"><label>Produkt 9</label>
<input name="nr9" type="text" class="box" id="name2" size="10" value="<?=$nr9;?>" />
<label></label>
<input type="text" name="art9" class="box" id="name2" size="40" value="<?=$art9;?>" />
<label></label>
<input type="text" name="antal9" class="box" id="name2" size="5" value="<?=$antal9;?>" /></span>
<p> </p>
<p> </p>
<p> </p>
<label><span class="required">*</span> Spam skydd: <b>2 + 3 =</b></label>
<span class="input7"><input name="spamcheck" type="text" class="box" id="spamcheck" size="4" value="<?=$spamcheck;?>" /></span>
<p> </p>
<div align="center"><input name="send" type="submit" id="send" value="Skicka" /></div>
<p>
<span class="required">*</span> Innebär att du maste fylla i dessa fält för att kunna skicka formuläret.

</form>

<!-- E-mail verification. Do not edit -->
<?php
}

function isEmail($email)
{
return(preg_match("/^[-_.[:alnum:]]+@((([[:alnum:]]|[[:alnum:]][[:alnum:]-]*[[:alnum:]])\.)+(ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|at|au|aw|az|ba|
bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|
cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cs|cu|cv|cx|cy|cz|de|dj|
dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|
gd|ge|gf|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|
hr|ht|hu|id|ie|il|in|info|int|io|iq|ir|is|it|jm|jo|jp|ke|kg|kh|ki|km|kn|
kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mil|mk|
ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|museum|mv|mw|mx|my|mz|
na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|org|pa|pe|
pf|pg|ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|
sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|
th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|
ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)$|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$/i"
,$email));
}
?>
<?php
}

function ($mobil)
{
return(preg_match ('/^(010|070|073|076)[0-9]{7}$/' ,$mobil));
}
?>
<!-- END CONTACT FORM -->
<?=$error;?>
</div> <!-- /contentForm -->

</body>
</html>

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Feb 2003

Detta är fel.

function ($mobil) { return(preg_match ('/^(010|070|073|076)[0-9]{7}$/' ,$mobil)); }

Funktionen måste ha ett namn.

function isMobileNumber($mobil) { return preg_match('/^(010|070|073|076)[0-9]{7}$/' ,$mobil); }

Trädvy Permalänk
Medlem
Registrerad
Jun 2005

Yes provade den nya koden som du gav mig garret. Men den klagar inte på att man skrivit i fel nummer tex skriver jag i 85475 så godtar den det och skickar formuläret. Skriver jag inget på mobilfältet så kommer då fel fram att jag måste skriva i mobil nummer. jag la in koden med den andra funktionen så det ser ut som följande:

<?php } function isMobileNumber($mobil) { return preg_match('/^(010|070|073|076)[0-9]{7}$/' ,$mobil); } function isEmail($email) { return(preg_match("/^[-_.[:alnum:]]+@((([[:alnum:]]|[[:alnum:]][[:alnum:]-]*[[:alnum:]])\.)+(ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|at|au|aw|az|ba|bb| bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd| cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cs|cu|cv|cx|cy|cz|de|dj|dk| dm|do|dz|ec|edu|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd| ge|gf|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr| ht|hu|id|ie|il|in|info|int|io|iq|ir|is|it|jm|jo|jp|ke|kg|kh|ki|km|kn|kp| kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mil|mk|ml| mm|mn|mo|mp|mq|mr|ms|mt|mu|museum|mv|mw|mx|my|mz|na| name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|org|pa|pe|pf|pg| ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se| sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm| tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu| wf|ws|ye|yt|yu|za|zm|zw)$|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$/i" ,$email)); } ?>

Så det går fortfarande inte. Problemmet är nu att jag kan skriva i vilka siffror jag vill.

Trädvy Permalänk
Medlem
Registrerad
Jun 2005

Ingen som har en idé om vad problemmet med koden kan vara ?

Trädvy Permalänk
Medlem
Plats
Lycksele
Registrerad
Feb 2009

Hej.
Jag ska titta på den sista coden.
Men preg_match och sånt är inte lätt

Vill du vara säker på att få ett snabbt och korrekt svar
prova världens bästa PHP forum!
Jag har själv fått hjälp och givit hjälp här (mer än 1.000 poster av mej)

http://phpbuilder.com/board/index.php

Hälsning
halojoy - php programmerare och sscript creator

ASUS P8Z77-V DELUXE, Core i7 3770K@4.2GHz, Noctua NH-U12P SE2, Corsair 8GB 1600MHz, Gigabyte GTX 650Ti 2GB,
Samsung Pro 840 256GB, 1TB WD Green, be Quiet! E9 680W Modulär, Fractal Define R4

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Feb 2003

Om din kod är som den ovan fungerar det inte.
T.ex:

if(trim($mobil) == '') { $error = '<div class="errormsg">Du har inte fylt i korrekt mobil nummer!</div>'; } else if(trim($email) == '') { $error = '<div class="errormsg">Du maste fylla i din E-mail adress!</div>'; } else if(!isEmail($email)) { $error = '<div class="errormsg">Du har skrivit in en felaktig E-mail adress. Försök igen!</div>'; }

Måste bytas ut mot något i stil med följande:

if(trim($mobil) == '') { $error = '<div class="errormsg">Du måste fylla i ett mobiltelefonnummer!</div>'; } else if(!isMobileNumber(trim($mobil))) { $error = '<div class="errormsg">Du har skrivit in ett felaktigt mobiltelefonnummer. Försök igen!</div>'; } if(trim($email) == '') { $error = '<div class="errormsg">Du maste fylla i din E-mail adress!</div>'; } else if(!isEmail(trim($email))) { $error = '<div class="errormsg">Du har skrivit in en felaktig E-mail adress. Försök igen!</div>'; }

Lycka till!

Trädvy Permalänk
Legendarisk
Hedersmedlem
Plats
::1
Registrerad
Dec 2002

En bättre lösning för att kontrollera formatet på emailadresser är att använda sig av filter_var(). De flesta färdiga reguljära uttryck för det är inte enligt specifikationerna (en adress behöver t.ex. inte avslutas med en toppdomän), och man kan bespara sig arbetet med att skriva en egen.

if(filter_var('bob@example.com', FILTER_VALIDATE_EMAIL)!==false) echo 'ok';

Abstractions all the way down.

Trädvy Permalänk
Medlem
Plats
Lycksele
Registrerad
Feb 2009

Tack, Biberu
Det där ser väldigt enkel ut.
Färdiga lösninga som 'filter' i PHP
gör det lätt göra script.

Här är php Filter Manualen, med fler filtermöjligheter:
http://se.php.net/filter

http://se.php.net/manual/en/filter.examples.validation.php

Vi kan öka säkerheten och kontrollen genom dessa viktiga functioner.

/halo

ASUS P8Z77-V DELUXE, Core i7 3770K@4.2GHz, Noctua NH-U12P SE2, Corsair 8GB 1600MHz, Gigabyte GTX 650Ti 2GB,
Samsung Pro 840 256GB, 1TB WD Green, be Quiet! E9 680W Modulär, Fractal Define R4

Trädvy Permalänk
Medlem
Registrerad
Jun 2005
Citat:

Ursprungligen inskrivet av Garret
Om din kod är som den ovan fungerar det inte.
T.ex:

if(trim($mobil) == '') { $error = '<div class="errormsg">Du har inte fylt i korrekt mobil nummer!</div>'; } else if(trim($email) == '') { $error = '<div class="errormsg">Du maste fylla i din E-mail adress!</div>'; } else if(!isEmail($email)) { $error = '<div class="errormsg">Du har skrivit in en felaktig E-mail adress. Försök igen!</div>'; }

Måste bytas ut mot något i stil med följande:

if(trim($mobil) == '') { $error = '<div class="errormsg">Du måste fylla i ett mobiltelefonnummer!</div>'; } else if(!isMobileNumber(trim($mobil))) { $error = '<div class="errormsg">Du har skrivit in ett felaktigt mobiltelefonnummer. Försök igen!</div>'; } if(trim($email) == '') { $error = '<div class="errormsg">Du maste fylla i din E-mail adress!</div>'; } else if(!isEmail(trim($email))) { $error = '<div class="errormsg">Du har skrivit in en felaktig E-mail adress. Försök igen!</div>'; }

Lycka till!

Tackar detta fungerade klockrent.

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Jan 2007
Citat:

Ursprungligen inskrivet av Teknocide
Du kan inte specifiera vad 17 du menar? Mig veterligen är "short codes" något du själv kommit på. Om du menar bruket av <?= ?> för direkt variabelåtkomst så är det fullt acceptabelt.

Nej. Shorttags går att stänga av och vill man ha trevlig portabel PHP-kod ska man använda korrekta PHP-taggar.

Trädvy Permalänk
Medlem
Plats
i din garderob
Registrerad
Sep 2007

Beror på hur man ser det, diskussionen svänger åt bägge håll. Jag tycker det är bra mycket snyggare med <div id="foo"> <?= $myVar ?> </div> om man jämför med <div id="foo"> <?php echo $myVar ?> </div> om man nu ska använda inline-kod.

Short-tags har varit aktiverat på de webhotell jag kommit i kontakt med.

Bilanaloger är som Volvo — varenda svenne kör med dem

Trädvy Permalänk
Medlem
Registrerad
Jun 2005

En riktigt konstig grej hände nu. Allt fungerar bra men när jag kollar i internet explorer 7 så blir textfälten helt fel på sidan medans om jag kollar i internet explorer 8 ser det perfekt ut och det ser perfekt ut i firefox. Varför är det fel i internet explorer 7 ?

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Feb 2003

Det är webbutvecklarnas eviga mardröm...Internet Explorer
Välkommen till verkligheten, detta problem som alla måste handskas med. Problemet är att webbläsarna tolkar (X)HTML och CSS olika vilket ger olika resultat. W3C's "standarder" är bara rekommendationer vilket medför att man får olika tolkningar och olika resultat i olika webbläsare.