yeahz Posted February 9, 2009 Report Share Posted February 9, 2009 Vai ir iespējams citādāks noformējums šim kodam, lai var izvadīt visas kļūdas kuras formā ir, nevis tiek līdz pirmajai un izvada to vienu kļūdu. Kods: http://paste.php.lv/5fa2054e6387f6745b4587...3de080?lang=php Link to comment Share on other sites More sharing options...
bubu Posted February 9, 2009 Report Share Posted February 9, 2009 Strukturē to kodu šādi: $errors = array(); if (pārbaude nr.1) { $errors[] = "Kļūda nr.1"; } if (pārbaude nr.2) { $errors[] = "Kļūda nr.2"; } ... if (count($errors) > 0) { echo "Ir kļūda(-s)" . implode("<br/>", $errors); } Link to comment Share on other sites More sharing options...
mounkuls Posted February 9, 2009 Report Share Posted February 9, 2009 (edited) Vai arī bez masīva $errors = ''; if (pārbaude nr.1) { $errors = $errors.'Kļūda nr.1<br/>'; } if (pārbaude nr.2) { $errors = $errors .'Kļūda nr.2<br/>'; } ... if (!empty($errors)) { echo 'Ir kļūda(-s):' .$errors; } Faktiski tas pats, bet, kad man bija grūtības ar masīviem, dariju tā:) EDIT: Mazliet laikam aplam bija pirmīt:) Edited February 9, 2009 by mounkuls Link to comment Share on other sites More sharing options...
yeahz Posted February 9, 2009 Author Report Share Posted February 9, 2009 Es kaut ko daru nepareizi, man nekas neizvadās, pat ja arī visi lauki ir tukši. http://paste.php.lv/139eb9986705f95d38462c...b15018?lang=php Link to comment Share on other sites More sharing options...
anonīms Posted February 9, 2009 Report Share Posted February 9, 2009 25 rinda. if (count($error) > 0) gadījumā nevajag? Link to comment Share on other sites More sharing options...
yeahz Posted February 9, 2009 Author Report Share Posted February 9, 2009 Nākošā kļūda, kas tad te ir nepareizi? if (count($error) > 1) { echo "Notika sekojošas kļūdas:" . implode("<br />", $error); } elseif (count($error) = 1) { echo "Notika sekojoša kļūda:" . implode("<br />", $error); } else { //insert in da db } Link to comment Share on other sites More sharing options...
bubu Posted February 9, 2009 Report Share Posted February 9, 2009 Salīdzināšana uz vienādību notiek ar == operatoru, nevis ar piešķiršanas = operatoru. Link to comment Share on other sites More sharing options...
Delfins Posted February 10, 2009 Report Share Posted February 10, 2009 īsti jēgu dalīt uz kļūda/kļūdas neredzu :) PS: $p = count($error)>1?'s':''; echo "Notika sekojoša{$p} kļūda{$p}:" . implode("<br />", $error); Link to comment Share on other sites More sharing options...
yeahz Posted February 10, 2009 Author Report Share Posted February 10, 2009 Paldies Delfīn, kaut tādu mēģināju uzlikt bet nezināju kā, tāpēc izdarīju tā, tagad paņēmu kodu no tevis. Vēl problēma (laikam nu jau iet offtopic tēmas skatījumā). Tātad ja lietotājs neeksistē, tad epasta pārbaudes daļa netiek ņemta vērā, ja lietotājs jau eksistē tad izvelkas abi šie kodi: $query = mysql_query("SELECT username FROM users WHERE username='$_POST[lietotajvards]'"); if ( mysql_num_rows($query) >= 1 ) { $error[] = "Šāds lietotājvārds jau pastāv!"; } $query2 = mysql_query("SELECT email FROM users WHERE email='$_POST[epasts]'"); if (mysql_num_rows($query2) >= 1) { $error[] = "Jau pastāv lietotājs ar šādu e-pasta adresi!"; } Vienvārdsakot epasta daļa iedarbojas tikai tad kad lietotājvārds jau aizņemts. Link to comment Share on other sites More sharing options...
Delfins Posted February 10, 2009 Report Share Posted February 10, 2009 jāredz viss kods Link to comment Share on other sites More sharing options...
yeahz Posted February 10, 2009 Author Report Share Posted February 10, 2009 http://paste.php.lv/91834a685d3bd513c8fc4d...e5f276?lang=php Link to comment Share on other sites More sharing options...
Val Posted February 10, 2009 Report Share Posted February 10, 2009 if (count($error) > 1) nozīmē kļūdu skaitu: vismaz divas un uz augšu. Kur šādā gadījumā jēga dalīt kļūdu skaita izvadīšanu vienskaitlī, daudzskaitlī. lietotājvārda garuma pārbaude arī kautkā jocīgi. vakarā vairs nevaru saprast vai pareizi vai nav :D if (strlen($_POST["lietotajvards"]) < $lietotajvarda_min_garums || strlen($_POST["lietotajvards"]) > $lietotajvarda_max_garums) { $error[] = "Lietotājvārdam jābūt vismaz $lietotajvarda_min_garums simbolu garam, vai ne garākam kā $lietotajvarda_max_garums simboli."; } $ok nav defaultās vērtības. koda augšā ieliec error_reporting(E_ALL); un skaties pats. lietotājvārda un epasts mainīgie pārbaudes querijos nav eskeipoti. utt. :) Link to comment Share on other sites More sharing options...
Turecky Posted June 16, 2009 Report Share Posted June 16, 2009 Ja pareizi sapratu, pēc koda izskatās, ja gadījumā $_GET["s"] nav vispār, tad pa taisno aizlido uz ELSE, jo tiek garām abiem IF un tad var iebarot jebkuru lietotāju un paroli. Nedomāju, ka to S parametru vispār vaig. Šobrīd slinkums rakstīt pašu kodu, bet es būtu darījis nedaudz savādāk. Ja nu jautājums joprojām aktuāls uzraksti, tad piedāvāšu savu variantu, ja ir interese. Link to comment Share on other sites More sharing options...
Recommended Posts