iall Posted March 31, 2008 Report Share Posted March 31, 2008 Labdien , tātad ,lūk skripts - http://paste.php.lv/7086 ! Nespēju saķinķerēt to skriptu tā ,lai viņš pārbaudītu pēc lietotāja pakāpes. Datubāzē ir lauks - user_level enum("1","2","3") (vai varēja arī kā savādāk glabāt?). Kad ielogojos vienalga ar kādu lietotāju ,tad viņš izvada visas pakāpes kas ir lietotājiem ,piem. - ir divi lietotaji ar - moderators statusu ,divi ar administratora u.t.t. Lūk ,bilde: P.S. - Lietotājam test ir pakāpe 2 - moderators! Pārējās rindiņas vajadzētu aizvākt. Par koda līkumu lūdzu nerunājat. Paldies! Link to comment Share on other sites More sharing options...
Aleksejs Posted March 31, 2008 Report Share Posted March 31, 2008 (edited) Kāpēc Tu atlasi visus lietotājus? Atlasi tikai to vienu rindiņu, kura attiecas uz konkrēto lietotāju! Šobrīd skripts iziet cauri visiem lietotājiem. Edited March 31, 2008 by Aleksejs Link to comment Share on other sites More sharing options...
iall Posted March 31, 2008 Author Report Share Posted March 31, 2008 Kā es varētu atlasīt to vienu rindiņu? SELECT * FROM users WHERE login='test' AND user_level='2' ? Varbūt var kā savādāk? Link to comment Share on other sites More sharing options...
Aleksejs Posted March 31, 2008 Report Share Posted March 31, 2008 Nu padomā loģiski: Tu gribi nolasīt no tabulas visu par konkrēto lietotāju test. Zinot lietotāja vārdu, var viennozīmīgi atrast lietotāju. Lietotāja tiesību līmenis ir viens no nezināmajiem lielumiem, kuru tad arī gribam noskaidrot. Tātad vaicājums ir: SELECT user_level FROM users WHERE login='test'; Ja vien lietotājs var būt vienlaicīgi administrators, bet nebūt lietotājs, citādi es neizmantotu enum, bet gan vienkāršu cipara lauku. Link to comment Share on other sites More sharing options...
iall Posted March 31, 2008 Author Report Share Posted March 31, 2008 (edited) Lielum ,lielum lielais paldies ,viss sanāca! :) Uzrakstīju šādi SELECT user_level FROM users WHERE login='$_POST[login]' ,bet kad nospiežu logout ,tad nerādās vairs login forma! Velns parāvis ,aiz vienas problēmas seko otra! Šis kods man stāv iekš radit.php ,bet formas apstrāde notiek iekš login.php ,tapēc droši ,ka $POST['login'] nu nekādīgi nevarētu sanākt! Varbūt tikai $SESSION['login'] ? Kādi ieteikumi? Edited March 31, 2008 by iall Link to comment Share on other sites More sharing options...
kasisppr Posted March 31, 2008 Report Share Posted March 31, 2008 (edited) Nezinu gan ko tev dara logout.php, bet ja tu pēc tam atkal nonāc uz postēto kodu, tad vai pirms tam sessijas mainīgais $_SESSION['login'] tiek nomests nost? Respektīvi logout.php kaut kur ir unset($_SESSION['login'] );? Edited March 31, 2008 by kasisppr Link to comment Share on other sites More sharing options...
iall Posted March 31, 2008 Author Report Share Posted March 31, 2008 (edited) logout man ir šāds - http://paste.php.lv/7087 :/ Vaina tomēr laikam ir kverijā ,jo ja es atstāju SELECT user_level FROM users - tad viss pamatīgi gļuko ,bet rādas! Nestrādā kverijā ,ne $_POST['login'] ne $_SESSION['login']! Labi ,gan izfunktierēšu. Paldies par palīdzību. :) Edited March 31, 2008 by iall Link to comment Share on other sites More sharing options...
kasisppr Posted March 31, 2008 Report Share Posted March 31, 2008 (edited) Pag, nu ja tu esi nomainījis kveriju uz SELECT user_level FROM users WHERE login='$_POST['login']' , tad spiežot uz to tavu linku, kas aizved uz logout.php, aplikācija atgriežas index.php ar tukšu $_POST['login'] vērtību. un ja vien tev datubāzē nav kāds lietotājs ar login lauka vērtību '' (tukšums) , SQL kverijs tev atgriezis 0 rindas un nekas no tava while(){} ciklā esošā koda neizpildīsies. Drīzāk raksti kaut ko līdzīgu $user_login = !empty($_POST['login']) ? $_POST['login'] : $_SESSION['login']; $result = mysql_query("SELECT * FROM users WHERE login='$user_login'"); $row = mysql_fetch_array($result) if($row) { while($row) { if($row['user_level'] == 2) { // ja pakaape2 - tad ir moderators} else if($row['user_level'] == 3) { // ja pakaape 3 - tad ir administrators} else { // ja pakaape 1 - tad ir lietotaajs} //kaut kadu pakapi varbut tomer vajag iedot by default } } else { // te nak tava login forma } P.S. tu $_POST['login'] rakstīji "login" pēdiņās??? Jo parādītajā SQL kverija piemērā tādu nav. P.S.S. par koda sintaksi neesmu drošs, jo esu pieradis izmantot ADODB SQL pieprasijumiem. Edited March 31, 2008 by kasisppr Link to comment Share on other sites More sharing options...
iall Posted March 31, 2008 Author Report Share Posted March 31, 2008 (edited) Paldies , tūliņ paskatīšos. Nerakstīju es login pēdiņās. Damn ,forma parādās ,bet nevar ielogoties! Kļūda iespējams pavisam vienkārša ,bet prasa smadzenes! :) Edited March 31, 2008 by iall Link to comment Share on other sites More sharing options...
kasisppr Posted March 31, 2008 Report Share Posted March 31, 2008 Nu tad labo! Bet ideju vismaz saprati, kāpēc nestrādāja un kā vajadzētu veidot? Link to comment Share on other sites More sharing options...
iall Posted March 31, 2008 Author Report Share Posted March 31, 2008 (edited) Ideju sapratu ,liels paldies Tev! Nevaru to velnu dabūt pie dzīvības ne par ko! :@ EDIT: Viss smuki un solīdi! Liels paldies visiem. :) Works like a charm. Edited April 1, 2008 by iall Link to comment Share on other sites More sharing options...
Recommended Posts