Jump to content
php.lv forumi

Recommended Posts

Posted

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);
}

Posted (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 by mounkuls
Posted

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
}

Posted

ī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);

Posted

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.

Posted

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

  • 4 months later...
Posted

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.

×
×
  • Create New...