ďťż
Lemur zaprasza
PHP Czy istnieje jakas zmienna srodowiskowamowiaca o tym ze strona jest odswierzanajesli nie to jak rozpoznac, odswierzenie strony,- chodzi o to by do statystyk odwiedzin nie zliczac odswierzenTakiej zmiennej raczej niema.Najlepiej zrobić to za pomocą cookies (zablokować gościa na 1h lub na inny czas).# 3600 - godzina# 1800 - pół godziny itp.<?php# funkcja musi być wywołana przed wysłaniem jakichkolwiek informacji doprzeglądarki# bo w przeciwnym razie error ;-)if( isSet(wizyta) ):// jeśli zmienna wizyta jest ustawiona, gość niedawno tu był nie zliczajstatystykielse:// gość jest tu jest pierwszy raz, zlicz statystyke i wyślij cookieSetCookie('wizyta', '1', time()+3600); # ustaw na godzine// reszta koduendif;?> Jak zrobić, aby zmienna wysylana metoda post zjednej strony (powiedzmy z pola input), po przejsciu na nastepna strona (donastepnego skryptu) pod nazwa $nazwapola przeszla z kolei do trzeciegoskryptu, wywoływanego z tego drugiego, itp. Czyli podsumowując, jakprzesyłać swobodnie zmienne między wieloma skryptami PHP.wyjscia sa dwa:-mozesz uzyc pol ukrytych np.:<input type=hidden name="nazwapola" value="<? echo($nazwapola) ?>">-mozna tez uzyc sesji, ale w tym ci nie pomoge... Jak sprawdzić czy rekord wprowadzony np 10-06-2001 jest starszy od tygodniaczy nie?? Tzn jak porównać datę 10-06-2001 z data dzisiejszą$time = strtotime("10-06-2001");if(time()-$time>7*86400)echo "ale staroć."; Czy ktoś mógłby mi powiedzieć jak zrobić coś takiego, że mam sobie jakiśplik textowy. W tym pliku zapisują się rozmowy na chat'cie. I właśnie jakzrobić żeby w tym pliku było tylko 30 ostatnich wypowiedzi, czyliskrypt PHP ma kasować 31. i wysze (jak będą) linijki licząc od dołu (boskrypt rozmowy zapisuje na dole).Wczytujesz plik$gaduszki=file('pliczek.txt');jak chcesz to cos dodajeszarray_push($gaduszki,$newline1);wyrzucasz liniewhile(count($gaduszki)>30){array_shift($gaduszki);}teraz zapisujesz tablice do pliku i masz problem z glowy :) Na stronie poczatkowej chce sprawdzic rozdzielczosc ekranu i zapisac ja w cookies.Pozniej przez php na kazdej nastepnej stronie chcialbym odczytacrozdzielczosc z cookie i w zaleznosci od parametrow wyswietlic odpowiedniastrone. Jesli zmienilaby sie rozdzielczosc, wykrylbym to ponownie poprzezjavascript i zapisal nowe cookie. Odczytac i zapisac cookie w js potrafie,nie wiem tylko jak sprawe zalatwic pod php.Pytanie:Jak odczytac w php dane parametry z cookie?// zapis:$parametry="w:1024,h:768,c:65536";SetCookie("rozdzielczosc",$parametry);// odczyt:$wartosc_cookie= ???Ja bym to zrobile tak:// zapis$parametry="[szerokosc]:[wysokosc]:[kolory]";$parametry=base64_encode($parametry);setCookie("rozdzielczosc", $parametry);// odczyt$parametry=base64_decode($rozdzielczosc);$parametry=explode(":", $parametry);// otrzymujesz tablice gdzie:// $parametry[0] = [szerokosc]// $parametry[1] = [wysokosc]// $parametry[2] = [kolory] Mam drobny problem z przeszukiwaniem bazy danych.Zrobiem kolumne "stanowisko", która przeszukuja przy uzyciu .......WHEREstanowisko LIKE '%$stanowisko%'Jedna z wartosci tej kolumny tyo np: HR Manager.Kiedy wpisze do okienka wyszukiwarki "HR Manager" wszystko jest OK, alekiedy wpisze "Manager HR " nie mam zadnych trafien.Jak zrobic aby w obu przypadkach uzyskiwac takie same rezultaty??Nic dziwnego, w bazie nie istnieje string który w środku(tak działa %string% w sql'u) zawiera podany przez Ciebie ciąg.możesz podzielić łańcuch na pojedyncze słowa (np split'em) iwyszykiwać ciągi zawierające każde z nich, np:<?php...$slowa = split(' ',$szukany_ciag);$where = "LIKE '%$slowa[0]%'";$cnt = 0;while($cnt++<sizeof($where)) {$where = $where."AND stanowisko LIKE '%$word%'";}...$query - mysql_db_query($dbname, "SELECT * FROM table WHEREstanowisko $where", $conn);?> Mam skrypt ktory ma wyswietlic na stronie wszystkie newsy oraz jak siekliknie w temat jakiegos newsa to ma pojawiac sie cala jego tresc. Mam taki kodfor ($newsy=0; $newsy<count($wszystkie_newsy) ; $newsy++){print("<TR>");$plikdo=fopen("baza_newsow//$wszystkie_newsy[$newsy]", "r");$temat=fgetss($plikdo ,255);print("<TD><AHREF=\baza_newsow//$wszystkie_newsy[$newsy]\">$temat\n</A></TD>");print("</TR>");}wszystko bylo by ladnie tylko ze jak klikne na link to pojawia mi sie plikrazem ze wszystkimi znacznikami HTML. Chcialbym zrobic tak ze jak klikne nalink to pojawi mi sie juz zinterpertowany plik (bez znacznikow HTML). Jakmam to zrobic ?Popelniles tu pewien blad, mianowicie utworzyles bezposrednie linki doplikow tekstowych. Skad wiec przegladarka moze wiedziec ze to html?proponuje nastepujace rozwiazanie:for ($newsy=0; $newsy<count($wszystkie_newsy) ; $newsy++){print("<TR>");$plikdo=fopen("baza_newsow//$wszystkie_newsy[$newsy]", "r");$temat=fgetss($plikdo ,255);print("<TD><A HREF=\"".$PHP_SELF."?id=".$wszystkie_newsy[$newsy]."\">".$temat."\n</A></TD>");print("</TR>");}i teraz:if(isset($id))include("baza_newsow/".$id);lub wczytujesz newsa do tablicy, co zapewnia ci wieksze pole manewru tablicemozesz posortowac, wyprintowac, etc..if(isset($id))$tablica = file("baza_newsow/".$id); Jeśli zrobię<select name=plik size=10 multiple>i w tym listę plików, to jak zaznaczę trzy to przeglądarka idzie dourl?plik=plik1&plik=plik2&plik=plik3i jak mam potem tą listę wyciągnąć w PHP? Zmienna $plik zawiera tylko"plik3" czyli ostatnie przypisanie....Zmien na:<select name=plik[] size=10 multiple>To dostaniesz tablice.Przerób zmienne na elemetny tablicy:url?plik[]=plik1&plik[]=plik2&plik[]=plik3potem odczytaj tablicę,<?php$size_of_array = sizeof($plik);for($i=0; $i<$$size_of_array; $i++){print("$i. plik[$i] <br>\n");}?> Napisalem sobie w PHP licznik odwiedzin:Najpierw w naglowku sprawdza przy pomocy ciasteczek, czy odwolanie niewystapilo w ciagu ostatniej godziny ($visited=0)<?phpif(file_exists("count/MainCounter.n")){$file=fopen("count/MainCounter.n", "r");flock($file, 1);$ile=fgets($file, 100);flock($file, 3);fclose($file);if($visited!="1"){ $ile++;}}else{$ile=1;}$file=fopen("count/MainCounter.n", "w");flock($file, 2);fwrite($file, $ile);flock($file, 3);fclose($file);echo($ile);?>Jest wydajniejszy sposób.Za każdym razem dopisujesz do pliku spację lub jakis inny znak$xx=fopen("plik","a"); fwrite($xx,"x"); jest pewnosc, ze go nie skasuje ani nie wyczysciprzy odczycie nie otwierasz go ale oczytujesz jego wielkoscfilesize("plik")Przyklad z ksiazki "PHP Aplikacje"Web Application Development with PHP<? $counter = 0;// increase counter$counter++;// write counter back to ourselves$file = fopen(basename($PHP_SELF), "r+");fputs($file, "<? \$counter = $counter;");// print counter (or do something else with it)print("$counter hits so far");?> Gdzie moge znalezc skryp do forum w PHP?Najpopularniejsze masz tutaj:http://phorum.org/ Moze najpopularniejsze, ale nienajlepsze :)Dorzuce jeszcze dwa:1) http://www.phpbb.com/ a'la UBB demo: http://www.behindfilm.com/pearlharbor/phpBB/index.php 2) http://www.leon.w-wa.pl/forum/ http://www.cgi.csd.pl/ => skrypty php => forumhttp://www.scrypty.nano.pl/ Chcialbym, aby przed wyslaniem pliku na serwer, rozstal rozpoznany jego typ.W przypadku gdy jest to kazdy inny rodzaj niz "jpg", skrypt konczydzialanie i nie wykonuje nic dalej.Niestety zastosowanie:if ($UploadFile_type != "image/jpeg"){echo "Zly typ!"; exit;}nie daje oczekiwanego rezultatu. Dodam, ze zmienna $UploadFile_type jestprawidlowa (zwraca np. image/gif). Co zrobilem zle?A nie masz tam np. dodatkowej spacji? echo "'$UplodaFile_type'"; ?Pamietaj jeszcze ze jest jeszcze naglowek "image/pjpeg" - to progressive jpg, Czy da sie w PHP odczytac rozdzielczosc obrazu w ktorej pracuje uzytkownikwchodzacy na strone?Samym php chyba nie można ale można pomóc sobie JavaScript-emkiedyś na php.zone.pl ktoś zaproponował tak.Na stronie umieszczasz następujący kawałek kodu:<script language="javascript"><!--document.write("<img width=1 height=1 border=1src=http://jakis_adres/get_res.php?width="+screen.width+"&height="+screen.height+"&depth="+screen.colorDepth+">");-->jakis_adres to adres kompa gdzi znajuduje się plik get_res.php który wygląda tak:<?echo 'Twoja rodzielczość to:';echo $width.'x'.$height.' liczba kolorów'.$depth;?>Dalej możesz robić z tymi danymi co tylko chceszprobowalem tak to zrobic - java nie laduje strony, natomiast wewlasciwosciach pojawia sie, ze plik php jest niedostepnyi gdzie jest blad? czy aby na pewno php moze byc zrodlem dla IMG?<script language="javascript"><!--window.location.href="nowe.php?width=screen.width";--></script>ale to juz zadzialalo Jak w PHP4 wyciagnac ze sciezki a'la windows nazwe pliku ? Pod Linux'em robie to funkcja basename() i wszystko jest w porzadku, jezeli natomiast mam sciezke typu c:\cos\jakis.plik to ni diabla ni chce. Jak zrobic by bylo dobrze. Prosze o konkretne przyklady.$arr = explode ('\', $full_filename);$filename = $arr[count ($arr) - 1];i masz nazwę pliku w zmiennej $filename Dlaczego po uzyciu instrikcji include ("http://www.dowolnastrona") dostaje komunikatFailed opening 'http://www.dowolnastrona' for inclusion (include_path='').Gdy przylanczam pliku z lokalnego dysku wszystko dziala dobrze. Czy cos jestnie tak z plikiem php.ini.Sprawdz czy masz w php.ini:allow_url_fopen = On W jaki sposob uniknac tworzenia olbrzymiej ilosci plikow html? Na mojejstronie mam kilkadziesiat schematow elektronicznych i opis kazdego z nichstanowi oddzielny plik html. Gdybym chcial zmienic np. kolor tla musialbymzmieniac we wszystkich plikach oddzielnie.Czy mozna tego w jakis sposob uniknac?Najprosciej przy uzyciu CSS, ale skoro jestesmy na grupie "server-side"to chyba w PHP zrobic szablon strony, a same dane dotyczace schematu(rysunek, opis) pobierac z jakiejs bazy danych (np. MySQL).Najprościej to zrobić tak:a) plik opisowy - schematy.dat - zawiera w poszczegolnych wierszachrozdzielone znakiem | pola:numer | nazwa_pliku | tytul_schemat \ podpis pod schematemb) plik schematy.php<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head></head><body><!-- głowka każdej strony --><?### pobranie schematu do wyświetlenia - jak nie podano - weź pierwszyif ($schemat == "" || !isset($schematy) $schematy=1;if (file_exists("schematy.dat")) {$F_IN=fopen("schematy.dat","r");$i=0;if ($F_IN != "") {while (!($bl=flock($F_IN,LOCK_EX)) && $i < 10)$i++;if ($bl) {while (!feof($F_IN)) {$wiersz=fgets($F_IN,1024);$wiersz=chop($wiersz);if ($wiersz != "" && ) {list($numer,$plik,$tytul,$opis)=split('\|',$wiersz);if ($nazwa == $schemat) {# wyświetlanie zawartości}}}flock($F_IN,LOCK_UN);}fclose($F_IN);}}?><!-- stopka każdej strony --></body></html>plik schematy.php -może być wywoływany z parametrem:http://localhost/schematy.php?numer=10Można też zrobić układ, że następuje odczyt do tablicym następnie z tablicytworzona jest lista wyboru... Rozwiązań jest masa.... Niekoniecznie nalezy budowaćbaze danych, często plik tekstowy jest prostszym i racjonalnym rozwiązaniem. Moze nie na temat "?? aleMoze ktos poslac przyklad licznika odwiedzin w php (z jakims uzaleznieniem od czasu czy ip)graficznego i tekstowego . Jak ktos mi moze pomoc to prosze :-)Wyskrobalem to w przyplywie ambicji. Licznik tekstowy, korzysta z bazymySQL. Pozwala na ustalanie czasu po jakim z tego samego adresu mozna znowunabic licznik, dodatkowo - rejestrowane w bazie ip pozwalaja okreslic, z ilufaktycznie ip sie do nas laczono.To w sumie material pogladowy wiec moze i wyslucham pozytywnej krytyki ;)Czasem z niektorych ip TIMESTAMP zapisuje mi jako same zera i wtedy moznalicznik nabijac bez ograniczen. Na razie nie wiem czemu sie tak dzieje.Kockiaip@aip.pl, http://aip.pl/ ===================== START ======================function licznik($args){/* $uid, $index="default", $akcja="pokaz", $start=0, $ctl_raddr=false,$expire=86400//* liczniki w mysql *//* $uid - identyfikator uzytkownika *//* $index - dodatkowy index, np. nazwa odwiedzanej strony *//* $akcja - wyswietl, zwieksz, ustaw, resetuj *//* $start - wartosc poczatkowa przy ustawianiu *//* $ctl_raddr - sprawdza adres odwiedzajacego (blokada *//* nabijania licznika) true/false *//* $expire - czas po jakim mo+na zwiekszyc licznik z tego *//* samego adresu (w sekundach) *//* we wszystkich przypadkach zwraca aktualny stan licznika *//* wg indexu UID+INDEX */extract($args);if(!isset($uid)){return "brak \$uid";}if(!isset($index)){$index="default";}if(!isset($akcja)){$akcja = "wyswietl";}if(!isset($ctl_raddr)){$ctl_raddr = false;}elseif(!isset($expire)){$expire=86400;}$COUNTER = 2; // nr kolumny COUNTER$ULTIME = 4;global $REMOTE_ADDR;/* print ("$uid - $index - $akcja - $ctl_raddr - $expire - "); */$polaczenie = @mysql_connect ("host", "nazwa_uzytkownika_bazy","haslo_uzytkownika_bazy");if(!$polaczenie){return "b|_d - brak dostŕpu do bazy";}mysql_select_db("serwisy");switch($akcja){case "zwieksz":$result = false;$licz = false;/* kontrola usera */if($ctl_raddr){$result = mysql_query("SELECT *,unix_timestamp(LTIME) as ULTIME FROMliczniki_raddr WHERE UID='$uid' && IDX='$index' && RADDR='$REMOTE_ADDR'");if(mysql_num_rows($result)){$row = mysql_fetch_row($result);if($row[$ULTIME] + $expire < time()){$licz = true;mysql_query("UPDATE liczniki_raddr SET LTIME=CURRENT_TIME WHEREUID='$uid' && IDX='$index' && RADDR='$REMOTE_ADDR'");}}else{$licz = true;mysql_query("INSERT INTO liczniki_raddr (UID,IDX,RADDR) VALUES('$uid','$index','$REMOTE_ADDR')");}}else{$licz = true;}if($licz){$result = mysql_query("SELECT * FROM liczniki_count WHERE UID='$uid' &&IDX='$index'");if(!mysql_num_rows($result)){mysql_query("INSERT INTO liczniki_count (UID,IDX,COUNTER) VALUES('$uid','$index',1)");}else{$result = @mysql_query("UPDATE liczniki_count SET COUNTER=COUNTER+1WHERE UID='$uid' && IDX='$index'");}}break;/* ponizsze jeszcze nie jest oprogramowane, ale jest proste do zrobienia*/case "ustaw":case "resetuj":}$result = mysql_query("SELECT * FROM liczniki_count WHERE UID='$uid' &&IDX='$index'", $polaczenie);$row = mysql_fetch_row($result);$count = $row[$COUNTER];mysql_close($polaczenie);return $count;} Wiadomo, ze przy uzyciu funkcji mysql_connect() nalezy podac haslo - jeslihaslo ma pozwalac na prawa modyfikacji bazy - robi sie coraz niebezpieczniej.Jak wiec najlepiej zabezpieczac to haslo ?1. nie dawac uzytkownikowi zbyt wielu praw2. trzymac haslo zapisane w oddzielnym pliku poza Document Root i includowacje do tego pliku, w ktorym laczysz sie z baza:plik init.inc:<?$db["host"]="nazwa_hosta";$db["user"]="nazwa_uzytkownika";$db["passwd"]="twoje_haslo";$db["db"]="baza_do_jakiej_sie_laczysz;koniec plikuPlik, w ktorym laczysz sie z baza:<?// plik init.inc miesci sie poza Document Rootinclude("sciezka/init.inc");function jakas_akcja(){global $db;$conn=mysql_connect($db["host"],$db["user"],$db["passwd"]);//itd...}3. jesli pkt 1 i 2 nie spelnia Twoich oczekiwan, to odlacz komputer od internetu Jak zrobic wywolanie cgi w php? wydaje mi sie ze chyba vitrual,ale jesli np. mam skrypt w cgi-bin/test.cgi i wpisze muvitrual("cgi-bin/test.cgi"); - otrzymuje mila (ghehe) informacje ze nie matakiej funkcji...include 'test.shtml', w ktorym jest np.: <!--#execcgi="/cgi-bin/test.cgi" --> nie dziala, bo jak sie domyslilem (heh...) nieprzechodzi to juz przez apache sub-requesta.Jakies pomysly? (na pewno sie da :)virtual() jesli juz...polecam tez poczytanie o popen(), system() etc W bazie mam pole klient jako char(10), w ktorym przechowywane sa numery ID klientowTaki klient aby sie zalogowac na stronie podaje tylko swoj numer i jeslitakowy jest w bazie to moze dalej smigac po stronie, a jak nie ma to pojawiasie odpowiedni komunikat.Problem w tym, ze nie bardzo wiem jak przeszukac baze i sprawdzic czy podanyw formularzu numer istnieje w bazie...Żadnych szczegółów, kurde. zakładam więc php/mysql:$id = "numer_klienta";<?php$dbh = mysql_pconnect($dbhost,$dbuser,$dbpass);$res = mysql_db_query($dbname,"SELECT * FROM table WHERE klient=$id");if (mysql_num_rows($res) > 0) {header("Location: przekierowanie.html");} else {print "Hackujemy, tak?\n";}?> Przy próbie połącznie z bazą serwer zwraca mi błąd:Warning: MySQL Connection Failed: Can't connect to local MySQL serverthrough socket '/var/lib/mysql/mysql.sock' (13) in/home/www/html/phpMyAdmin/lib.inc.php on line 255może ktoś wie o co mu chodzi.Chodzi mu o to ze nie moze sie polaczyc z baza MySQL przez podany socket...przeciez napisal chyba wyraznie?Sprawdz czy baza wogole jest odpalonasprawdz czy socket jest w tym katalogu co potrzeba Chciałbym się dowiedzieć w jaki sposób znaleźć koniec pliku tekstowego iprzejść do następnej lini w której będę wpisywał ciąg znaków.wystarczy że przy otwieraniu zastosujesz flagę "a" lub "a+", wowczaswskaznik automatycznie jest przesuwany na koniec pliku, każdorazowe uzyciefputs() lub innej podobnej funkcji spowoduje dopisanie linijki do końca pliku<?php$file = fopen("twoj_plik.txt","a");?>a jeżeli chcesz wykryc czy jesteś na końcu pliku, zainteresuj się funkcjąfeof(); Jak włączyć:php3_magic_quotes_gpc onmagic_quotes_runtime offz poziomu .htaccess dla zadanego katalogu?php_value magic_quotes_gpc offitp, itd... tyle, ze PHP musi chodzic jako modul a nie jako CGI :) Oto skrypt ( licznik downloadu );<?php$plik = strrchr($url,"/");$plik = str_replace("/","",$plik);$file = "$plik.txt";if (file_exists($file)=="1") {$bufer = file($file);$dane = $bufer[0]+1;$fp = fopen($file,"w");fputs($fp,"$dane");fclose($fp);}else {$fp = fopen($file,"w");fputs($fp,"1");fclose($fp);}header("location:$url");?>a wszystkie linki pisze się tak: http://gdziestam/tenplik.php3?url=www.playboy.komzmienna $url to zmienna domniemanego adresu ( po co ja to pisze, pewnie towiecie i teraz sie smiejecie :)Na pierwszy rzut oka :jezeli uzywasz pliku txt daj flock, jezeli dwoch gosci sprubuje sciagnac naraz, mozesz miec zaliczony jezeli chcialbys zrobic to idealnie okomentuj, tak nawet licznikreszta pewnie dobra ( nie lubie czyjegos kodu przegladac ), trudno by bylo zchrzanic costak prostego a i jeszcze jesli chcialbys zeby twoj skypt byl "lepszy" to zaimplementujjakos cookies, tak zeby gosciu ktory uzywa jakiegos reasume'a i sciaga kilkakawalkow na raz ( np. GetRight ) zaliczal jako jedenA i jeszcze sie zrob to w jakims sql'u oprocz tego ze odpada ci problem z flockiem, latwiejbedzie pozniej cos robic z tymi danymi, np. wykresy sciagalnosci tych plikow Jak wyciagnac zmienna w postaci www.url.pl/index3.php3?id=soc.txt?????<?php echo $HTTP_GET_VARS["id"]; ?>mnie nie dokladnie oto chodzilo:((mam strone z tabel i chce aby w jednej z nich byla wczytywana zmiennna...<?php$str = "soc.txt";$fp = fopen($str, "r");$fsize = filesize($str);$data = fread($fp, $fsize);fclose($fp);echo $data;?>To o to chodziło? Ma ktos skrypt w PHP lub CGI do zmiany hasla uzytkownika (Linux)jak sie cos takiego robi ??bo wywolaniw passwd niewiele da bo wymaga podawania hasla 2x a chyba nieda sie wywaolac passwd z paramaetrem hasla i potwierdznieaZainteresuj się chpasswd - pobiera parę username:password zestandardowego wejścia. Załóżmy że napisałem skrypt, który linia po linii (komenda fgets) odczytuje i wyświetla zawartość określonego pliku tekstowego.Pytanie: jak sprawdzić, kiedy osiągnięto koniec pliku? Chodzi mi o postawienie takiego warunku, który przerwie pętlę gdy komenda fgets odczyta ostatnią linię.Może za pomocą funkcji :feof(int uchwyt_pliku);sprawdza ona czy przekroczono koniec plikuTo oczywiscie sie sprawdzi, tylko uwaga na boku - jesli bedziesz kiedysobslugiwal w php np. dostep do ftp, to tez mozesz to robic przez uchwytpliku, co nie znaczy, ze wtedy wystarczy taki warunek.Otoz jesli mamy polaczenie z serwerem ftp dostepne przez uchwyt pliku, tofaktycznie az do rozlaczenia nie nastapi feof($uchwyt). trzeba sie przekopacprzez rfc i poszukac jakie charakterystyczne znaki puszcza dany serwer pokomunikacie (\n\n np) i na tej podstawie wnioskowac, ze teraz serwer czekana cos od nas.Hmalbo fseek()albo petla whilealbo jesli zawartosc pliku jest w tablicy to np. lastsposobow jest mnostwo wszystko zalezy od kontekstu w jakim to ma funkcjonowac.... Chcialbym zrobic na swojej stronie autoryzacje uzytkownika za pomoca php alew ten sposob by loginy i hasla byly pobierane ze zwyklego pliku txt (np. wformacie: login-haslo[enter]login-haslo) poniewaz nie mam dostepu dojakiejkolwiek bazy danych na serwerze ani mozliwosci uzycia htaccess (bo tobyloby chyba najprostsze rozwiazanie). Najprościej tak:--index.php--<?if(isset($HTTP_POST_VARS["login"]) && isset($HTTP_POST_VARS["pass"])){$users = file("plik_hasel.txt");$ok = false;for($i=0;$i<sizeof($users);$i++)if( $user."-".$pass."\n" == $users[$i] ){$ok = true;break;}if($ok){setcookie("zalogowany_user",$user);setcookie("zalogowany_pass",$pass);header("Location: dalej.php");exit();}}?><html>... [tu strona z formularzem do logowania]...</html>A w każdym pliku, stronie, w której chcesz sprawdzić, czy user jest zalogowany, robisz tak:--strona.php--<?phpif(isset($zalogowany_user) && isset($zalogowany_pass)){$users = file("plik_hasel.txt");$ok = false;for($i=0;$i<sizeof($users);$i++)if( $zalogowany_user."-".$zalogowany_pass."\n" == $users[$i] ){$ok = true;break;}if(!$ok){header("Location: ./");exit();}}i masz - index.php loguje usera i przerzuca dalejgdy sie user nie zaloguje - wraca do index.php Mam cos takiego: php produkuje mi stronke z linkami do plikow *.gifznajdujacych sie w katalogu COS. Sam odczyt plikow zrobilem tak:$dir=dir("COSy");while ($plik=$dir->read()) {if ($plik !=".." && $plik !=".") {// no i tutaj w $plik mam nazwe kazdego pliku po kolei.....}Wszystko jest fajnie dopoki po jakims czasie nie dorzuce kolejnych gifow..Wowczas nowe sa na koncu a nie tak jak reszta sortowane alfabetycznie..(moze data + nazwa sa defaultowo sortowane?)Moje pytanie jak wymusic funkcji read/dir by sortowala alfabetycznie ?Moze wsadz to w tablice i posortuj np rsort()... Chcialem zrobic strone z jednym layoutem a ze zmienna tresciaoczywiscie po kliknieciu przycisku w menu.-- "index.php" --<html><head>...</head><body><?phpif(isset($strona) && $strona!=""){include("txt/".$strona.".txt");}else{include("txt/index.txt");}?></body></html>-- "index.txt" z katalogu "txt" --<P>Jakiś tam tekst...</P>Link: <A HREF="?strona=index">index</A>.PSDziałającą wersję tego skryptu możesz znaleźć na mojej stronie(adres w sygnaturce).-- pozdrawiam,domelu ; poczta@domelu.nano.plhttp://domelu.nano.pl/ Jak najprosciej i/lub najlepiej wstawic dane z excela do strony.Dokladniej chodzi mi o utworzenie tabeli na stronie. Tabelka miala by dwie kolumny.Chyba (to przychodzi mi na myśl) - najlepiej będzie wyeksportować zExcela dane w postaci pliku CSV (kolumny oddzielone średnikami czyprzecinkami), a potem wczytać taki plik do PHP np. przez<TABLE><?$fs = fopen("dane.csv", "r");while(!feof($fs)){$linia = fgets($fs, 256);list($d1,$d2) = split(';', $linia);echo("<TR><TD>".$d1."</TD><TD>".$d2."</TD></TR>");}fclose($fs);?></TABLE> |