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. >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>> >>>>> >>> >