eregi Posted November 17, 2007 Report Share Posted November 17, 2007 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 More sharing options...
Delfins Posted November 17, 2007 Report Share Posted November 17, 2007 return Link to comment Share on other sites More sharing options...
eregi Posted November 17, 2007 Author Report Share Posted November 17, 2007 bik, vairāk, uz, ko man to return'u taisīt? :) Link to comment Share on other sites More sharing options...
andrisp Posted November 17, 2007 Report Share Posted November 17, 2007 (edited) $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 November 17, 2007 by andrisp Link to comment Share on other sites More sharing options...
eregi Posted November 17, 2007 Author Report Share Posted November 17, 2007 (edited) 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 November 17, 2007 by eregi Link to comment Share on other sites More sharing options...
andrisp Posted November 17, 2007 Report Share Posted November 17, 2007 Ā, 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 More sharing options...
eregi Posted November 17, 2007 Author Report Share Posted November 17, 2007 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 More sharing options...
andrisp Posted November 18, 2007 Report Share Posted November 18, 2007 ar (int) es pārvēršu $member_id par integer tipa mainīgo. http://www.google.lv/search?hl=lv&q=type+casting+php Par otro: http://www.google.lv/search?hl=lv&q=ternary+operator+php Link to comment Share on other sites More sharing options...
ViszinisA Posted November 18, 2007 Report Share Posted November 18, 2007 par "?" http://en.wikipedia.org/wiki/Ternary_operator Link to comment Share on other sites More sharing options...
eregi Posted November 18, 2007 Author Report Share Posted November 18, 2007 (edited) 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 November 18, 2007 by eregi Link to comment Share on other sites More sharing options...
andrisp Posted November 18, 2007 Report Share Posted November 18, 2007 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 More sharing options...
eregi Posted November 18, 2007 Author Report Share Posted November 18, 2007 '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 More sharing options...
Recommended Posts