Jump to content
php.lv forumi

mēģinu pāriet uz funkcijāam


eregi

Recommended Posts

function is_logged()
{
if($member_id>=1)
{
	$SQL=mysql_query("SELECT * FROM db.tabula WHERE membera_id='$member_id'");
	while($sesija=mysql_fetch_array($SQL))

	if($sesija['id']==$session_id)
		{
			TRUE;
		}
		else
		{
			echo 'Lai pilditu sho funkciju Tev ir jabut ielogotam';
		}
}
}

 

un vēlāk es mēģinu izsaukt šo funkciju, piem

if(isset($id) && !empty($id) && $id == add && is_logged()==TRUE)
{
  echo 'Viss bumbaas';
}

 

Bet cik noprotuma tas if's nav pareiz sastādīts, tātad jautājums tāds, kā es varu uzzināt, vai is_logged() ir TRUE.

Link to comment
Share on other sites

$member_id arī jāpadod ir.

 

Un funkcijai ir jāatgriež true vai false.

 

return true;

 

Un vispār - tev diezgan līki tiek veikta pārbaude.

 

Es darītu apt. šādi:

 

function is_logged($member_id)
{
 if(is_numeric($member_id) && $member_id>=1)
 {
	$member_id = (int) $member_id;
$SQL=mysql_query("SELECT COUNT(*) FROM db.tabula WHERE membera_id='$member_id'");
$sesija=mysql_fetch_row($SQL);
return $sesija[0] > 0 ? true : false;
 }
 return false;
}

 

Kā arī vajag ieslēgt error_reportingu.

Edited by andrisp
Link to comment
Share on other sites

am, vai man piem $member_id ir arī funkcijai ir jāpadod, ja man tas kaut kur konfig failos ir jau norādīts?

 

Un kā tad, lai displejo to informāciju? (iekļauj if'āa)

 

un ko Tu dari ar šīm rindām -

$member_id = (int) $member_id;


//un ar 

return $sesija[0] > 0 ? true : false;

 

Un vispār andrisp, nepamanīj, bet es nosākuma atrodu tabulā pēc Id noteikto row'u un tad tās saturu salīdzinu ar $session_id, takā tas tavs gabals neies :)

Edited by eregi
Link to comment
Share on other sites

Ā, nu nepamanīju, bet arī tad var iztikt ar manu piemēru, bet tikai norādot iekš kverija:

 

SELECT COUNT(*) FROM db.tabula WHERE membera_id='$member_id' AND id = '{$session_id}'

 

Tikko pamanīju, ka tev tas $session_id arī ir jāpadod funkcijai vispār.

 

Iesaku tev izlasīt pirms jautā ko vēl: http://www.php.net/manual/en/language.functions.php

Link to comment
Share on other sites

ok, pievienojot to return mans variants aizgāja :) bet tomēr interesē, lūdzu atbildi, ko Tu dari ar šīm rindām -

$member_id = (int) $member_id;


//un ar

return $sesija[0] > 0 ? true : false;

 

kādēļ [0] un kādēļ >0 un nafigam '?' :)

Link to comment
Share on other sites

function is_logged($member_id,$session_id)
{
 if(is_numeric($member_id) && $member_id>=1)
 {
$member_id = (int) $member_id;
echo '$SQL=mysql_query("SELECT COUNT(*) FROM db.tabula WHERE member_id='.$member_id.' AND id='.$session_id.'");';
$sesija=mysql_fetch_row($SQL);
return $sesija['id'];
return $sesija['id']  == $session_id ? logged : not;
 }
 return not;
}

 

Atgriež visu laiku not.. šķiet, ka ar mysql daļu kaut kas nav pareizi.

 

Toties tas mans 'variants' aizgāja -

function is_logged($member_id,$session_id)
{
if($member_id>=1)
{
	$SQL=mysql_query("SELECT * FROM db.tabula WHERE member_id='$member_id'");
	while($sesija=mysql_fetch_array($SQL))

	if($sesija['id']==$session_id)
		{
			return logged;
		}
		else
		{
			return not;
		}
}
else
{
	return not;
}
}

Tātad nav kādas idejas, kas neļauj andrisp variantam aiziet normālI?

Edited by eregi
Link to comment
Share on other sites

Tev tas member_id vispār ir skaitlisks ? Ja ne, tad to is_numeric paņem nost.

 

Un no diviem return pēc kārtas nav jēgas. Līdz otrajam kods nemaz netiks. Padomā taču loģiski.

 

Un ja tu izmanto stringus kā rezultātus, tad ieliec vismaz viņus pēdiņās.

Link to comment
Share on other sites

'Un no diviem return pēc kārtas nav jēgas. Līdz otrajam kods nemaz netiks. Padomā taču loģiski.'

 

jā, sor :)

 

member_id ir skaitlisks, tavā dotajā piemērā es izechoju viņu pirms qvērija, takā ar to nav problēmas..

Link to comment
Share on other sites

×
×
  • Create New...