Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP+SQL] CMS by marcio
Forum PHP.pl > Forum > Przedszkole
marcio
Witam postanowilem napisac cms'a i chcialbym w tym temacie zamieszczac moje problemy zamiast robic 5 tematow pod rzad tak jak to czasami sie zdarza a wiec jak narazie mam gotowa rejestracje oczywiscie nie smiejcie sie z kodu dzialac dziala lecz nie wiem czy jest bezpieczna ale mam pytanie na local'u nie dziala mi funkcja mail bo nie mam serv'a smtp i pop3(o ile sie nie myle to to jest wlasnie przyczyna) i nie mam jak sprawdzic i nie wiem czy dobrze aktywuje konto mam takie cos:
  1. <?php
  2. $query1 = ('select * from users where code = "'.$active.'" AND login = "'.$login.'"');
  3.  $wynik1 = mysql_query($query1, $db);
  4. $tab = mysql_fetch_assoc($wynik1);
  5.  
  6. if($tab['code'] == $hash) $aktywuj = mysql_query('update users set active = 1 where code = "'.$active.'"');
  7.  
  8. if(mysql_affected_rows($aktywuj) == 1) echo('<script>alert("Konto zostalo aktywowane");');
  9. ?>

Tabela nazywa sie users a kolumny to
id
login
haslo
lvl
email
gg
code
active
ip
I mam jeszcze jedno pytanie zanim zaczne robic logowanie jak proponujecie je zrobic bo nie spotkalem sie z takim pytanie z odpowiedzia na nie(oczywiscie uzylem funckji szukaj mozliwe ze cos przeoczylem)
Ogolnie dylemat polega na tym zeby przy logowaniu sprawdzac jakie user ma prawa gdy lvl == 1 to przekierowywuje na strne user.php a jak lvl == 2 to admin.php
LUB
Przy logowaniu do sesji przypisuje prawa i przed wejscie na tajna strone czy na strone dla admina albo przed wykonaniem jakiejs czynnosci ktorej zwygly user nie moze wykonwac patrze czy zmienna sesyjna jest rowna 2 a jak nie to komunikat

Jaki pomysl wedlug was lepszy ogolnie to chyba w wiekszosci przypadkow uzywa sie 2 metoda ale mysle ze 1 jest latwiejsza

Ok juz zrobile jednak teraz mam nowe pytanie jak wsywietlic user'ow online jako ze cms'a chce napisac sam to wole nie szukac gotowych rozwiazan na forum chodz szukalem ale bez rezultatow i mysle zeby to tak zrobic:
Do tabeli users dodac pole online z domysla wartoscia no i przy logowaniu robie update na ta kolumne i daje yes i a przy wylogowywaniu ustawic znowu na no

P.S czy moze tak byc??
Grzyw
Książkę napisałeś na forum:)

Tak, na localhost nie masz serwera pocztowego, dlatego nie sprawdzisz mail().

Co do listy online - a jak zmusisz usera do wylogowania się? Odpada taki manewr. Rób update pola lastSeen czy ostatnioAktywny wpisując tam datę i godzinę /timestamp/ ostatniego przeklikania strony przez usera, przy każdym jego kliknięciu. A wyświetlaj tych userów, których data ostatniego kliknięcia jest np. 3 minuty "starsza" od daty obecnej.

Co do przekierowania admina - w sumie to wszystko jedno, przecież i tak po przekierowaniu musisz sprawdzić, czy user jest adminem. Wrzuć to sobie w sesję, będziesz mniej razy musiał grzebać w bazie.
cytrysek
Cytat(Grzyw @ 26.02.2008, 15:53:44 ) *
Książkę napisałeś na forum:)

Tak, na localhost nie masz serwera pocztowego, dlatego nie sprawdzisz mail().


Nie do końca się z tym zgodzę.
Wystarczy zainstalować kobyłę pt. XAMPP i włączyć oprócz Apacha serwer poczty "Mercury"
Ja osobiście testuję i wsio gra.

Pozdrawiam.
PW
marcio
Ogolnie to napisalem czemu mail() nie dziala

@Grzyw juz rejestracja jest logowanie tez na sesjach nawet mi dobrze idzie tongue.gif

Witam mam takie cos
  1. <?php
  2. function online($user) {
  3.  
  4. if($db = mysql_connect("localhost", "root", "******")) {
  5.  
  6. $remote = $_SERVER['REMOTE_ADDR'];
  7.  $aktualny_czas = time();
  8. $limit = 300; 
  9.  $zostalo = $aktualny_czas - $limit;
  10. $dodaj = ("INSERT INTO online(login,czas,ip) VALUES('$aktualny_czas','$user','$remote')");
  11.  $rezultat = mysql_query($dodaj, $db) or die(mysql_error());
  12. $usun = mysql_query('DELETE FROM online WHERE czas < '.$zostalo.''); 
  13.  $usunieto = mysql_query($usun, $db);
  14. $ile_online = ('select * from online where login = "'.$user.'"');
  15.  $osob = mysql_query($ile_online, $db) or die(mysql_error());
  16. $licz = mysql_num_rows($osob);
  17. echo('User'ow online: '.$licz.' ');
  18.  }
  19. }
  20. ?>

Wywoluje:
  1. <?php
  2. online($_SESSION['name']);
  3. ?>

Dlaczego pokazuje mi zawsze ze jest 0 user'ow jak narazie funckje odpalam tylko na index 2o user'ami na localu ale jest zawsze 0

P.S w bazie do kolumn mi sie nic nie zapisuje tylko pisze ze nadmiar 20kb
Struktura tabeli online
login varchar(15)
czas int(15)
ip varchar(16)
I index primary na login

Co robie zle??

To jak pomoze ktos??

Ok dziala
dawik
<?php
include ('config.php');

$ilosc = count(glob("$folderaccount*.*"));
?>

<?

print '<div style="font-size: 11;"><b>';
print 'Ilość kont';
print ':</b> <br>';
print $ilosc;
?>

Tutaj masz coś co pokazuje ile masz plików w folderze. Czyli będzie ile kont;)
marcio
Witam mam jeszcze jedno pytanko bo narazie nie mam jak sprawdzic aktywacji mail'a moje pytanie brzmi: Jesli wysylam email'a to mam podac sciezke(url) do rejestracji czyli tam gdzie sprawdzam czy zostal wyslany kod i czy sie zgadza??
Sabistik
Tytuł tematu nie spełnia wymagań regulaminu działu przedszkole. Zamykam. Na PW czekam na poprawna formę - po tym temat zostanie otwarty.

To twoje kolejne upomnienie.
marcio
@Sabistik dzieki za otwarcie tematu



Czesc mam nadzieje ze ktos bedzie umial mi pomoc mam takie pytanie powiedzmy robie sobie system art'ow jest on juz gotowy wszystko sie dodaje potem mam strone ktora sie nazywa art.php na ktorej wyswietlam tytul|opis arta|data dodania|autora i po kliknieciu na dany art chcialbym zeby przeszlo tak jakby do nastepnej podsrony czyli po jego kliknieciu strona z artami znika i pojawia sie tresc arta czy ktos wie jak takie cos zrobi moze to jest latwe ale moj mozg o tej godz. nie funkcjonuje

P.S tak wyglada link do art:
  1. <?php
  2. echo('<a href="?strona='.$strona.'&action=pokaz&id='.$dane['id'].'&autor='.$dane['autor'].'"><h2>'.$dane['tytul'].'</h2></a>');
  3. ?>
bl4ck_b0x
po co w linku pobierasz autora?winksmiley.jpg Wydaje mi sie ze wystarczyloby zebys pobieral tresc po ID a nastepnie sprawdzal cos takiego:

  1. <?
  2. //jakis kod
  3. $id=intval($_GET['id']);
  4. if($_GET['id'])
  5. {
  6.  //zapytanie do pobrania rekordow z bazy, WHERE id=$id
  7. }
  8. else
  9. {
  10.  //pobierz liste artykulow ;)
  11. }
  12. ?>
marcio
EDIT:No problem juz zrobionie tongue.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.