Aciu fliks uz pagalba. :) "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. >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>> >>>>>>> >>>>> >>>