Jump to content
php.lv forumi

Savādāks noformējums kodam


yeahz

Recommended Posts

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

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
Link to comment
Share on other sites

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

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

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

  • 4 months later...

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

×
×
  • Create New...