Galima šitaip: $fn = isset($_POST['first_name']) ? $_POST['first_name'] : ''; if($fn != ''){ // Check if value is correct if( eregi('^[[:alpha:]\.\' \-]{2,15}$', stripslashes(trim($fn))) ){ $fn = escape_data($fn); }else{ $fn = FALSE; echo 'Please enter correct first name!'; } } Darius wrote: > fliks, dar karteli prasau tavo pagalbos, kaip reikia pakoreaguoti sitoki > koda, kad jei lankytojas blogai uzpilde lauka jam islenda pranesimas > apie tai, jei lauko neuzpilde sistema nereaguoja i tai. > > // Check for a first name. > if (eregi ('^[[:alpha:]\.\' \-]{2,15}$', > stripslashes(trim($_POST['first_name'])))) { > $fn = escape_data($_POST['first_name']); > } else { > $fn = FALSE; > echo '<p><font color="red" size="+1">Please enter your first > name!</font></p>'; > } > > Dekoju is anksto. > > > "fliks" <pasto@nera.dd> wrote in message > news:h1gnm8$rqv$1@trimpas.omnitel.net... >> Formos post code reikšmė nenuskaitoma iš $_POST masyvo, kai >> isset($_POST['submitted']) yra TRUE. >> 82 eilutėj (f-joj str_replace()) pradedamas naudoti variablas >> $postcode, kuriam nepriskirta jokia reikšmė. >> >> >> Darius wrote: >>> Prisegu register.php failą. >>> >>> >>> "Darius" <darzi@takas.lt> wrote in message >>> news:h1cvop$de7$1@trimpas.omnitel.net... >>>> fliks, gal gali padėt išspręst šitą bėdą? >>>> >>>> Šiaip man ir reikia, kad tikrintu UK post code formatą. Dėl >>>> saugojimą post code DB, tai kopinant padariau klaidą, nenukopinau >>>> gerai. Yra va taip, bet neįrašo duomenų: >>>> $query = "INSERT INTO users (email, pass, first_name, last_name, >>>> city, town, post_code, mob_number, active, registration_date) VALUES >>>> ('$e', SHA('$p'), '$fn', '$ln', '$ct', '$tw', '$postcode', >>>> '$mob_number', '$a', NOW() )"; >>>> >>>> Darant registraciją išmeta "Undefined variable: postcode ". Kur čia >>>> klaida? Kodėl meta,kad neapibrėžtas kintamasis? >>>> Iš anksto dėkoju. >>>> >>>> >>>> "fliks" <pasto@nera.dd> wrote in message >>>> news:h1ag7o$f0s$1@trimpas.omnitel.net... >>>>> Šitas checkPostCode() tikrina tik UK post code formatą. >>>>> Ar ne geriau padaryti kokį nors generic formato tikrinimą, kad >>>>> leistų tik raides ir skaičius? >>>>> Dar priklauso, kiek kritiška yra turėti tikslų post code. Jei tai >>>>> yra labai svarbu, teks ieškoti visų reikiamų šalių formatus ir >>>>> pagal juos rašytis tikrinimą. Jei post code surinkimas yra tik kaip >>>>> formalumas, kaip ir minėjau, galima daryti tik generic tikrinimą. >>>>> >>>>> Kas liečia post code saugojimą į db, žemiau pateiktoj INSERT >>>>> užklausoj trūksta reikšmės post_code stulpeliui (tarp '$tw' ir '$a'). >>>>> >>>>> >>>>> Darius wrote: >>>>>> Gal galit patarti kaip padaryti. Radau scriptą, kuris tikrina >>>>>> pašto kodą: >>>>>> >>>>>> function checkPostcode (&$toCheck) { >>>>>> $alpha1 = "[abcdefghijklmnoprstuwyz]"; >>>>>> $alpha2 = "[abcdefghklmnopqrstuvwxy]"; >>>>>> $alpha3 = "[abcdefghjkstuw]"; >>>>>> $alpha4 = "[abehmnprvwxy]"; >>>>>> $alpha5 = "[abdefghjlnpqrstuwxyz]"; >>>>>> >>>>>> $pcexp[0] = >>>>>> '^('.$alpha1.'{1}'.$alpha2.'{0,1}[0-9]{1,2})([0-9]{1}'.$alpha5.'{2})$'; >>>>>> >>>>>> $pcexp[1] = >>>>>> '^('.$alpha1.'{1}[0-9]{1}'.$alpha3.'{1})([0-9]{1}'.$alpha5.'{2})$'; >>>>>> $pcexp[2] = >>>>>> '^('.$alpha1.'{1}'.$alpha2.'[0-9]{1}'.$alpha4.')([0-9]{1}'.$alpha5.'{2})$'; >>>>>> >>>>>> $pcexp[3] = '^(gir)(0aa)$'; >>>>>> $pcexp[4] = '^(bfpo)([0-9]{1,4})$'; >>>>>> $pcexp[5] = '^(bfpo)(c\/o[0-9]{1,3})$'; >>>>>> >>>>>> $postcode = strtolower($toCheck); >>>>>> $postcode = str_replace (' ', '', $postcode); >>>>>> >>>>>> $valid = false; >>>>>> foreach ($pcexp as $regexp) { >>>>>> if (ereg($regexp,$postcode, $matches)) { >>>>>> $toCheck = strtoupper ($matches[1] . ' ' . $matches [2]); >>>>>> $toCheck = ereg_replace ('C\/O', 'c/o ', $toCheck); >>>>>> $valid = true; break; } } >>>>>> >>>>>> $postcode = strtoupper(str_replace(' ','',$postcode));if >>>>>> (!checkPostcode($postcode) ) { $error['postcode'] = "Invalid Post >>>>>> Code, please try again";} >>>>>> >>>>>> if ($valid){return true;} else {return false;};} >>>>>> >>>>>> Neišeina padaryti, kad įvestą pašto kodą įrašytu į DB. DB yra >>>>>> sukurta lentelė „users“ su laukais „email, pass, first_name, >>>>>> last_name, city, town, post_code, active, registration_date“. >>>>>> Pildant forma kitų formos laukų duomenis įrašo į DB nes pvz. >>>>>> formos lauką „Town“ tikrinu tokiu būdu: >>>>>> >>>>>> if (eregi ('[[:alpha:]]{2,30}$', >>>>>> stripslashes(trim($_POST['town'])))) { >>>>>> $tw = escape_data($_POST['town']); >>>>>> } else { >>>>>> $tw = FALSE; >>>>>> echo '<p><font color="red" size="+1">Please enter your >>>>>> town!</font></p>'; >>>>>> } >>>>>> Kintamąjį „$tw“ įrašau į užklausą: >>>>>> >>>>>> $query = "INSERT INTO users (email, pass, first_name, last_name, >>>>>> city, town, post_code, active, registration_date) VALUES ('$e', >>>>>> SHA('$p'), '$fn', '$ln', '$ct', '$tw', '$a', NOW() )"; >>>>>> >>>>>> Ir viskas ok. Patarkit, kaip padaryti taip pat, kad įrašytų ir >>>>>> „postcode“ lauko duomenis tokiu pat būdu? >>>>>> Dėkoju iš anksto. >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> "fliks" <pasto@nera.dd> wrote in message >>>>>> news:h158mr$983$1@trimpas.omnitel.net... >>>>>>> Tame kodo gabaliuke tik parašiau, kaip galima būtų daryti formoj >>>>>>> įvestos post code reikšmės pradžios tikrinimą su db esančiomis >>>>>>> leidžiamomis post code pradžiomis, nes, kaip supratau, to ir >>>>>>> klausei. >>>>>>> >>>>>>> Be abejo, dar prieš tikrinant su db, reiktų padaryti formoj >>>>>>> įvesto post code formato tikrinimą, pvz, su regexp paterna, nes >>>>>>> gali būti, kad į formą bus suvesta post code su teisinga pradžia >>>>>>> (kuri yra db), o po jos gali sekti bilekokios raidės ar skaičiai >>>>>>> ir pan (pvz, 'PO123abcs00'). >>>>>>> >>>>>>> O dėl to Array, tai lentoje į tą post_code buvo saugomas masyvas, >>>>>>> ne stringas. Greičiasiai php kode yra klaida. >>>>>>> >>>>>>> >>>>>>> Darius wrote: >>>>>>>> fliks: Bandau tavo koda, registracija atlieka, tik DB kur laukas >>>>>>>> "post_code" vietoj pasto kodo iraso "Array". Ir pildant forma >>>>>>>> gali rasyti bet ka, netikrina? Kame gali buti beda? >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> "fliks" <pasto@nera.dd> wrote in message >>>>>>>> news:h0pad9$hq$1@trimpas.omnitel.net... >>>>>>>>> P.S. Čia jei naudojama MySQL. Analogiškai galima tą patį >>>>>>>>> parašyti ir kitokiai dbms. >>>>>>>>> >>>>>>>>> >>>>>>>>> fliks wrote: >>>>>>>>>> Kalbant apie DB, jei lenta yra post_code_tbl, o post code >>>>>>>>>> pradžios yra stulpelyje post_code_beg (VARCHAR tipo), galima >>>>>>>>>> būtų rašyti taip: >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> $form_post_code = isset($_POST['post_code']) ? >>>>>>>>>> ltrim(rtrim($_POST['post_code'])) : ''; >>>>>>>>>> >>>>>>>>>> if($form_post_code != '') { >>>>>>>>>> >>>>>>>>>> $db_query = 'SELECT COUNT(post_code_beg) FROM >>>>>>>>>> post_code_tbl WHERE post_code_beg = SUBSTRING(\'' . >>>>>>>>>> mysql_real_escape_string($form_post_code, $link) . '\', 1, >>>>>>>>>> LENGTH(post_code_beg))'; >>>>>>>>>> >>>>>>>>>> $result = mysql_query($db_query); >>>>>>>>>> >>>>>>>>>> $row = mysql_fetch_row($result); >>>>>>>>>> >>>>>>>>>> if($row[0] == 0){ >>>>>>>>>> // formoje post code reikšmė neatitiko nė vienos post >>>>>>>>>> code pradžios >>>>>>>>>> } >>>>>>>>>> >>>>>>>>>> } else { >>>>>>>>>> >>>>>>>>>> echo 'Please enter post code!'; >>>>>>>>>> } >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Reikia tikrinti, ar mysql_query() kažką (teisingai) grąžino ir >>>>>>>>>> pan. Surašiau tik bendrai, kaip galima būtų daryti tą code >>>>>>>>>> tikrinimą. >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Darius wrote: >>>>>>>>>>> Cia idejau kokiu principu tikrinu litus formos laukus. Gal >>>>>>>>>>> galetum konkreciau paaiskint kaip reiketu padaryti, kad >>>>>>>>>>> tikrintu Post code lauka?Sakykim duomenys jau yra suvesti i DB. >>>>>>>>>>> Buciau begalo dekingas. >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> "RobeNebijaka" <nebijau@spamo.lt> wrote in message >>>>>>>>>>> news:h0nfec$epq$1@trimpas.omnitel.net... >>>>>>>>>>>> Last name galima sutikrinti ir su regexpais, bet jei nori >>>>>>>>>>>> tikrinti su kažkokiais duomenimis tai regexp tau nepadės su >>>>>>>>>>>> regexp gali patikrinti nebent kad butu iš kelių raidžių ir >>>>>>>>>>>> kažkiek skaičių. >>>>>>>>>>>> >>>>>>>>>>>> "RobeNebijaka" <nebijau@spamo.lt> wrote in message >>>>>>>>>>>> news:h0nf6v$ej6$1@trimpas.omnitel.net... >>>>>>>>>>>>> Tai kaip ten yra ką nori tikrinti? Post Code ar Last Name? >>>>>>>>>>>>> >>>>>>>>>>>>> "Darius" <darzi@takas.lt> wrote in message >>>>>>>>>>>>> news:h0lnkk$9t$1@trimpas.omnitel.net... >>>>>>>>>>>>>> Laukui "Last name" naudoju toki tikrinima: >>>>>>>>>>>>>> >>>>>>>>>>>>>> // Check for a last name. >>>>>>>>>>>>>> if (eregi ('^[[:alpha:]\.\' \-]{2,30}$', >>>>>>>>>>>>>> stripslashes(trim($_POST['last_name'])))) { >>>>>>>>>>>>>> $ln = escape_data($_POST['last_name']); >>>>>>>>>>>>>> } else { >>>>>>>>>>>>>> $ln = FALSE; >>>>>>>>>>>>>> echo '<p><font color="red" size="+1">Please enter your >>>>>>>>>>>>>> last name!</font></p>'; >>>>>>>>>>>>>> } >>>>>>>>>>>>>> >>>>>>>>>>>>>> Sakykim sudejau kodus i DB, kokiu pavidalu reiketu uzduoti >>>>>>>>>>>>>> salyga? >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> "RobeNebijaka" <nebijau@spamo.lt> wrote in message >>>>>>>>>>>>>> news:h0ln7j$v92$1@trimpas.omnitel.net... >>>>>>>>>>>>>>> Nepapraščiau sudėt į db ir paskui vieno select'o >>>>>>>>>>>>>>> klausimas lieka? >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> "Darius" <darzi@takas.lt> wrote in message >>>>>>>>>>>>>>> news:h0lmqq$ugj$1@trimpas.omnitel.net... >>>>>>>>>>>>>>>> Sveiki, >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Reikia Jusu pagalbos. Padariau registracijos forma, visi >>>>>>>>>>>>>>>> laukai tikrinami, kad butu uzpildyti. Patarkit kaip >>>>>>>>>>>>>>>> padaryti, kad tikrintu "Post code" lauka, kai "Post >>>>>>>>>>>>>>>> code" prasideda is keliu didziuju raidziu ir skaiciu, >>>>>>>>>>>>>>>> jie yra pastovus, nesikeicia. Visi sie kodai yra >>>>>>>>>>>>>>>> atskirame faile, txt pavidale. Kaip reiketu padaryti,kad >>>>>>>>>>>>>>>> zmogus iveda pasto coda, o sistema patikrina ar atitinka >>>>>>>>>>>>>>>> kodo pradzia esanti sarase? >>>>>>>>>>>>>>>> Dekoju is anksto. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>> >>>> >