GRY-Online.pl --> Archiwum Forum

Kącik Webmasterski (HTML, JavaScript, PHP) [cz.32]

17.10.2006
19:21
smile
[1]

slowik [ NightInGale ]

Kącik Webmasterski (HTML, JavaScript, PHP) [cz.32]

Wstęp:

Kącik ten powstał w celu gromadzenia informacji, zapytań, porad, a także jako miejsce publikacji i oceny witryn stworzonych przez forumowiczow GOL'a. Wszystko powinno znajdować się w jednym miejscu, aby można było łatwiej i przyjemniej odnaleźć informacje związane z tworzeniem stron www. Liczymy na to, że kącik będzie bardzo często odwiedzany :)

---------------------------------------------------------

FAQ - Najczęściej zadawane pytania

Na razie pusto :)


NARZĘDZIA WEBMASTERSKIE:

Edytory graficzne - WYSIWYG:

- Macromedia Dreamwaver MX - www.macromedia.com
- Amaya - www.w3.org/amaya
- Adobe GoLive - www.adobe.com
- Microsoft FrontPage
- Microsoft FrontPage Express
- Pajaczek
- CoffeeCup Free
- Free HTML 6.0
- 1st page 2000

Edytory tekstowe:

- Macromedia Dreamwaver MX - www.macromedia.com
- Notatnik
- Webmajster
- Pajaczek pro
- Zajaczek
- HotDog Pro
- ezHTML
- NoteTab Light
- Website Pro

Programy do obróbki grafiki i animacji:

- Flash MX
- 3D Flash Animator
- Ulead GIF Animator
- Adobe PhotoShop
- Paint Shop Pro
- GIMP
- Corel Draw

Narzędzia do publikacji stron na serwerach:

- CuteFTp
- Total Commander
- WS_FTP

Spis darmowych serwerów

-

Najlepszy kurs HTML

-

BŁĘDY W TWORZENIU STRON - koniecznie przeczytaj!

-
-

Ciekawe strony dla webmasterów:

-
-
-
-
-
-
-
-
-
-

Za darmo dla webmasterów

-
-
-
-

Nasze strony:

wi3dzmin
-

hotDog
-

SULIK
-

Drak`kan
-

Bri (hmtlowa podstawówka :)
-

Slowik
- https://fotografia.gry-online.pl/

================================
Archwium Kącika:
================================

cz. 01: https://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=282993
cz. 01: https://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=1724087 REIKARNACJA
cz. 02: https://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=293434
cz. 03: https://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=561138
cz. 04: https://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=681039
cz. 05: https://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=709817
cz. 06: https://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=778829
cz. 07: https://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=860865
cz. 08: https://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=987171
cz. 09: https://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=1348213
cz. 10: https://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=1966148
cz. 11: https://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=2031618
cz. 12: https://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=2059468
cz. 13: https://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=2160961
cz. 14: https://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=2219048
cz. 15: https://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=2305650
cz. 16: https://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=2374934
cz. 17: https://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=2404162
cz. 18: https://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=2479809
cz. 19: https://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=2531725
cz. 20: https://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=2661899
cz. 21: https://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=2739264
cz. 22: https://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=2940573
cz. 23: https://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=3283908
cz. 24: https://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=3713891
cz. 25: https://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=4000035
cz. 26: https://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=4101026
cz. 27: https://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=4177593
cz. 28: https://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=4379688
cz. 29: https://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=4722727
cz. 30: https://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=4979111
cz. 31: https://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=5179288
(proszę dopisywać kolejne części)

17.10.2006
19:27
[2]

nagytow [ Firestarter ]

UPik porzadkowy :)

17.10.2006
19:33
[3]

slowik [ NightInGale ]

nagytow===>jesli bedziesz siedziec w tym watku sam przejmij paleczke ;-) ja juz mam 2 watki a czasu niezbyt wiele

tylko pamietaj ze pogrubienia i rezzte samemu trzeba wklepac ...

17.10.2006
20:07
[4]

nagytow [ Firestarter ]

Siedziec siedze, ale do zakladania watkow by sie przydal abonament dla edycji, a ja nie mam, bo jakos nie potrzebny mi.

17.10.2006
20:35
smile
[5]

slowik [ NightInGale ]

a myslisz ze ja mam ?? :D

18.10.2006
09:11
smile
[6]

chickenom [ ]

Obecny :)

nagytow

Korzystałem z java script przy formularzu, ale można było to łatwo obejsć, wystarczyło, przykładowo wpisać w adresie ?go=register&step=2 i enter, a wysyłały sie puste rekordy do bazy :). Teraz już nigdy takie coś się nie zdarza ^^.

No właśnie i z tym id problem, gdyż zawartość ciastka (zapisywane w nim jest id usera i hasło w md5) trzeba będzie porównać z odpowiednim rekordem w bazie i nie za bardzo wiem jak to zrobic :/. Pomożesz?:)

18.10.2006
12:01
smile
[7]

slowik [ NightInGale ]

php ma wbudowane porownywanie stringow tak wiec piszesz 'md5'=='z_bazy' i pod if'a podczepiasz i masz spokuj .....

18.10.2006
13:32
[8]

chickenom [ ]

Czyli moge zrobić coś w ten deseń:
<?php

$sql = "SELECT FROM users WHERE id = ' .$_GET['id']; /// pobierz dane aby wyświetlić dane z bazy w formularzu

$result = sql($sql); /// wykonaj zapytanie

$row=mysql_fetch_array($result);

$sql2 = "SELECT id, pass FROM users where id = ".$_GET['id']; /// wybierz tylko id i hasło

$result2 = sql($sql2); /// wykonaj

$row=mysql_fetch_array($result2);

if (mysql_num_rows($result) || //porównanie ciastka $_COOKIE['login'] z którymś z rekordów z bazy którego nie potrafię wykonać

echo ///formularz wyswietlajacy dane z bazy usera o id = $_GET['id']

else

echo ( " Nie możesz edytowac cudzego profilu! " );

?>

Chyba się zamotałem, ehhh... Tak czy siak muszę porównać (potrzebuję gotowej formuły) zawartość ciastko zalogowanego usera do id edytowanego profilu. Albo inaczej, potrzbuję formuły skryptu, który przeszukiwałby kolumny sql w poszikuwaniu rekordów (id, i hasło) które są identyczne z tymi w ciastku.

id login pass email
1 jagi 84a5a2b6a5b00a55bf5f6f34f2669677 [email protected] -> to jest pierwszy użytkownik w bazie, jak możecie pokażcie to na przykładzie jego.

Uh, mam nadzieje ze w miare jasno się wyraziłem i z góry dziękuję za wszelką pomoc.

18.10.2006
14:22
[9]

nagytow [ Firestarter ]

Zakladam, ze sql to twoja wlasna funkcja zawierajaca mysql_query i pewnie jakas kontrole bledow.

W swojej funkcji masz troche nadmiarowego kodu i niescislosci, wiec przerobie po swojemu. Nie wiem tylko, dlaczego uzywasz $_GET (link do 'Moj profil' ma posac profil.php?id=$id?)

Jesli chodzi o ciastka, to znow przypomne ci o mechanizmie sesji w php. Jest bezpieczniejszy i bardzo prosty. Zmienne sesji sa przechowywane na serwerze, a nie u uzytkownika i odwolujesz sie do nich przez $_SESSION['zmienna'] (tak samo je zapisuejsz). Poczytaj troche o sesjach a przekonasz sie do nich :) Zawsze tez mozesz tu przyjsc po pomoc :)

OK, a poki co skrypt:

<?php

$sql = "SELECT * FROM users WHERE id = ' .$_GET['id'];
$result = sql($sql);
$row=mysql_fetch_array($result);

if (mysql_num_rows($result) != 1)

(...) // blad - sql zwrocil 0 lub wiecej niz 1 rekord - cos jest nie tak

else

if ((!strcmp($row['name'],$_COOKIE['login'])) && (!strcmp($row['pass'],$_COOKIE['pass'])))

(...) // wszystko ok, wyswietl formularz

else

(...) // blad, nie zgadza sie login/pass


?>

Tak by to wygladalo (oczywiscie ‹ i › to klamry). $sql2 bylo niepotrzebne, bo juz w $sql wybrales wszystko, login i haslo tez.

PS. Mozesz pokazac jak zapisujesz dane do ciastek przy logowaniu?

18.10.2006
16:07
smile
[10]

chickenom [ ]

Okej, dzięki, popróbuję i dokształcę się :]

Tak, sql to moja własna funkcja.
Profil użytkownika działa tak:

index.php?go=viewprofile&id=2

Ciastka zapisują się tak:

function login ( $login , $pass )

$query = sql ( "SELECT id, pass FROM users WHERE login = \"". $login ."\"" ) ;
if ( mysql_num_rows ( $query ) )

$row = mysql_fetch_array ( $query ) ;
if ( $row [ 'pass' ] == md5 ( $pass ) )

if ( $_POST [ 'auto' ] ) // Automatyczne logowanie

setcookie ( 'login' , $row [ 'id' ] ." ". $row [ 'pass' ] , time ( ) + 999999 ) ;
header ( 'Location: index.php') ;

else

setcookie ( 'login' , $row [ 'id' ] ." ". $row [ 'pass' ] ) ;
header ( 'Location: index.php') ;


else

echo "Wpisałeś nieprawidłowe hasło!" ;


else

echo "Nie istnieje taki użytkownik" ;


18.10.2006
16:25
[11]

nagytow [ Firestarter ]

Aha, czyli zrobiles jedno pole login, ktore przechowuje id<spacja>haslo. Nie masz w ciastku pola przechowujacego nazwe uzytkownika, czyli trzeba troche zmodyfikowac kod i porownywac tylko haslo. Dodatkowo z $_COOKIE["login"] trzeba usunac identyfikator i spacje, zeby zostalo samo haslo. Mozesz to zrobic latwo funkcjami substr i strpos lub explode.

PS. Wczesniej uzylem funkcji strcmp do porownywania stringow, mozesz tez uzyc zwyczajnie

if($a===$b) // nie uzywaj '=='

18.10.2006
16:48
smile
[12]

chickenom [ ]

Hm... substr i strpos lub explode... Potrzbuję wiedzieć do czego i kiedy można tego używać... Bo jak patrzyłem na manualu to tam tylko suche definicje są... :/. Jest może jakaś dobra stronka/książka z zagadnieniami php?

Aha, jeśli można, chciałbym aby moja stronka też była we wstępniaku :] Z góry dzięki :)

P.S. Na wszelkie wypadek podam też stronkę projektu, nad którym pracuję, aby można było ewentualnie szybciej zdiagnozować ew. problem

19.10.2006
00:57
[13]

hotDog [ Outsider ]

chickenom--> musisz nauczyć się korzystać z dokumentacji, to konieczność.

substr - wycinasz tekst

substr(tekst, od_pozycji, do_pozycji)




strpos(stóg, igła)
(szuka igły w stogu i zwraca pozycje tej igły)

jak widzisz można te dwie funkcje zgrabnie połączyć ze sobą.

explode - rozbija tekst na kilka części (wynik w postaci tablicy) gdy mu podasz znak jakim ma dokonać rozbicia, np. "nazwa.jpg" może rozbić na 2 elementy: "nazwa" i "jpg" - gdy podasz "."

$plik = "nazwa.jpg";
$wynik = explode(".",$plik);

dostaniesz:
echo $wynik[0]; // nazwa
echo $wynik[1]; // jpg


to wszystko i wiele więcej znajdziesz na:


nie ma beta, musisz się nauczyć :-) Przede wszystkim analizuj podane niżej przykłady do każdej z funkcji

19.10.2006
01:21
[14]

nagytow [ Firestarter ]

chickenom -->

Mam nadzieje, ze jeszcze jestem w stanie pisac normalnie ;)

Masz $_COOKIE['login'], ktory ma postac "1 qwerty", chcesz dostac samo qwerty, trzeba sie wiec pozbyc wszystkiego do spacji.

Dla czytelnosci niech $c = $_COOKIE['login'].

Pierwszy sposob:
$c = substr($c,strpos($c," ")+1);

Drugi sposob:
$c = explode(" ",$c);
$c = $c[1];

Pewnie teraz trzeba co nie co wyjasnic ;)

1.
strpos($c," ") wyznacza pozycje spacji w $c, dodaje potem +1, zeby wziac nastepny znak po spacji (czyli pierwszy znak hasla) i teraz substr($c,...) biore kawalek $c zaczynajacy sie wlasnie od pierwszej litery hasla, czyli mam tylko haslo.

2.
explode tworzy z lancucha tablice a jako znak rozdzielajacy wzialem spacje - czyli teraz $c to tablica i $c[0] to '1' a $c[1] to 'qwerty' czyli haslo -wystarczy wiec podstawic $c=$c[1] i $c to haslo.

Manual do php (htp://www.php.net), a zwlaszcza komentarze do funkcji to swietne zrodlo informacji.

Twoja stronke jutro sobie sprawdze :)

hotDog -->

Wg mnie chickenom ma inny problem - brak pomyslu na rozwiazanie problemu. Samo znalezienie i uzycie (czy napisanie) funkcji nie jest trudne, najpierw trzeba wymyslic jak zrobic co jest do zrobienia.

lece spac :)

19.10.2006
07:52
smile
[15]

hotDog [ Outsider ]

nagytow --> właśnie podane przykłady w dokumentacji są świetnym miejscem do znalezienia natchnienia do tego jak wykorzystać opisywane funkcje :-)

Nie raz czytałem i mówiłem "o kurde, faktycznie tak też można"

19.10.2006
11:57
[16]

nagytow [ Firestarter ]

hotDog -->

Ja nie czytam sobie opisu funkcji 'ot tak', tylko raczej jak juz cos konkretnego potrzebuje, albo wylecialo mi cos z glowy. Ale co do zastosowan to tez masz racje. :)

19.10.2006
12:56
smile
[17]

chickenom [ ]

OK, wielkie dzięki chłopaki, czyli teraz mam:

Rozbite ciastko, z samą wartością hasła i dane w bazie danych. Teraz poczebuję czegoś, co wyszukiwałoby w kolumnie pass wartości, które byłyby identyczne z tą wartoscią z rozbitego ciastka, wtedy jak sądzę wyświtlałaby się tylko możliwośc edytowania swojego profilu. Więc, co teraz? :>

19.10.2006
14:17
[18]

nagytow [ Firestarter ]

Juz wczesniej dostales skrypt ktory to robi (post [9]). Musisz tylko troche go zmodyfikowac, bo tam zrobilem porownywanie loginu i hasla, a ty masz tylko haslo. Poza tym pamietaj, zeby nie weryfikowac tozsamosci uzytkownika tylko po hasle, bo kilka osob moze miec to samo haslo oraz md5 to haszowanie czyli ma taka wlasciwosc, ze generuje te same wartosci dla roznych ciagow znakow.

W skrypcie z [9] masz:

$sql <-- zapytanie 'wez wszystkie dane usera o id rownym $id
$row <-- otrzymane dane

Czyli juz to zapytanie gwarantuje ci, ze dane sa tylko uzytkownika o podanym id, do innych danych nie ma dostepu. Musisz tylko zmienic linie:

if ((!strcmp($row['name'],$_COOKIE['login'])) && (!strcmp($row['pass'],$_COOKIE['pass'])))

na:

if (!strcmp($row['pass'],substr($_COOKIE['login'],strpos($_COOKIE['login']," ")+1)))

Mam nadzieje, ze nigdzie bledu nie zrobilem :)

19.10.2006
15:26
smile
[19]

chickenom [ ]

<-nagytow

Uh, sorry, myślalem, ze tamten [9] dotyczy tylko /rozbica/ cookiesa na samo hasło, ehh, sorry, bądźcie wyrozumiali, specem nie jestem :). Popróbuję z tym wszystkiem, aczkolwiek mam wątpliwości czy wyjdzie mi to :]

nagytow, czy mógłbym poprosić Cię o nr gg? Czy raczej uważasz go za tak cenny, że nie chcesz go zdradzić byle komu (czyt. mnie)? :D

19.10.2006
15:56
[20]

nagytow [ Firestarter ]

Prosic zawsze mozna ;) Twoj nr z profilu jest aktualny?

19.10.2006
18:21
[21]

Didier z Rivii [ life 4 sound ]

moglby mi ktos z was napisac prosty skrypt php ktory pobieralby od uzytkownika (najlepiej jako formularz) jakis ciag znakow a po kliknieciu jakiegos linka/przycisku wyswietlalby na osobnej stronie(albo w okienku cyz jakos tak, nie wiem jak to wyglada technicznie) ten ciag znakow z jakims innym zdefiniowanym na stale w programie?

bo potrzebne mi cos takiego bardziej skomplikowanego ale jak bede mial to o co prosze to rozbuduje juz sam :)

19.10.2006
19:25
[22]

nagytow [ Firestarter ]

Didier z Rivii -->

a.php

<form action="b.php" method="post">
user <input type="text" name="user">
<input type="submit" name="submit" value="send">
</form>

b.php

<?php
echo "dolaczony tekst z przodu" . $_POST["user"] . "dolaczony tekst z tylu";
?>

lub w jednym pliku:

c.php

<?php
if (!isset($_POST["submit"]))

?>
<form action="<?=$PHP_SELF;?>" method="post">
user <input type="text" name="user">
<input type="submit" name="submit" value="send">
</form>
<?php

else

echo "dolaczony tekst z przodu" . $_POST["user"] . "dolaczony tekst z tylu";

?>

19.10.2006
19:54
[23]

Didier z Rivii [ life 4 sound ]

w pierwszym wypadku przechodzi mi do strony b.php ale jest ona pusta a w drugim nic sie nie dzieje...
czy mzoe to byc wina zle skonfigurowanego apache?

19.10.2006
20:09
[24]

nagytow [ Firestarter ]

Az sprawdzilem u siebie, czy dziala i czy jakiegos glupiego bledu nie zrobilem, ale jest ok. Moze na poczatek stworz plik z rozszerzeniem php i wpisz do srodka:

<?php
phpinfo();
?>

Zobacz, co sie pokaze.

19.10.2006
20:15
smile
[25]

Didier z Rivii [ life 4 sound ]

cos u mnie jest nie tak bo nic sie nie wyswietla :/

19.10.2006
20:47
[26]

Daro2k [ Pretorianin ]

to wpisz

<?php
echo phpinfo();
?>

19.10.2006
22:58
[27]

nagytow [ Firestarter ]

Didier z Rivii --> Cos nie tak z php, sprawdz konfig serwera.

20.10.2006
01:33
[28]

slowik [ NightInGale ]

ze wzgledow bezpieczenstwa na niektorych serwerach phpinfo jest wylaczane ;-)

Didier===>nie bata zeby nie wyswietlilo rezultatu 'echo' cos w kodzie masz nie tak

20.10.2006
01:47
[29]

nagytow [ Firestarter ]

slowik -->

Tak, ale z postow Didiera z Rivii wynika, ze on ma postawiony swoj wlasny serwer. Poza tym, jesli jakas funkcja jest wylaczona przez php.ini, to pojawia sie stosowny komunikat :)

20.10.2006
07:51
smile
[30]

chickenom [ ]

nagytow, tak, aktualny, rad byłbym, gdybyś się odezwał do mnie :]

20.10.2006
09:05
smile
[31]

chickenom [ ]

;o, teraz już odbiegam od tematu związaego z edycją profilu, gdyż mam pewien problem z dodawaniem newsa do bazy. Stworzyłem tabele, wszystko gites, ale jak chcę dodać newsa, pojawia się błąd:
Wystąpił błąd!
Column count doesn't match value count at row 1



Plik news_add.php

if (empty($_POST['title']) || empty($_POST['tresc']))

echo ( "Prosze wypelnic wszystkie pola!" );

sql ( "INSERT INTO users VALUES ( \"\", \"". $_POST [ 'title' ] ."\", \"". $_POST [ 'tresc' ] ."\" )" ) ;

W czym problem? :|

20.10.2006
10:11
smile
[32]

Didier z Rivii [ life 4 sound ]

hej dzieki za pomoc, cos rzeczywiscie bylo popsute u mne na serwie bo na innym dziala dobrze :)

20.10.2006
10:47
[33]

Regis [ ]

chickenom --> Sprobuj dodawac do bazy mowiac skryptowi gdzie co ma dodac:

INSERT INTO users (kolumna_1, kolumna_2 itd...) VALUES ( wartosc_1, wartosc_2 itd...)

Jesli masz kolumne z parametrem auto_increment, to mozesz ja pominac. Byc moze tez do pola tyu int (albo innego liczobowego) probujesz wpisac tekst (\"\").

20.10.2006
12:18
[34]

chickenom [ ]

id int(9) UNSIGNED Nie auto_increment
title varchar(128) utf8_polish_ci Nie
tresc mediumtext utf8_polish_ci Nie

Tak wygląda tabela

Id -> id newsa
title -> tytuł
tresc -> wiadomo

regis, w tym rzecz, że podobnie wygląda plik z rejestracją i... działa :/

20.10.2006
12:22
smile
[35]

chickenom [ ]

Omg, juz wiem co było nie tak, dałem insert in to USERS a nie into NEWS. Dzisas, ale jestem galasty <sciana>

20.10.2006
14:12
[36]

nagytow [ Firestarter ]

Column count doesn't match value count - nie zgadza sie ilosc kolumn, od razu widac, ze cos nie tak z zapytaniem lub tabela :)

21.10.2006
21:51
smile
[37]

chickenom [ ]

czy w zapytaniu sql, w miejscu po 'WHERE' mogę dać id = $id

jeśli
$id = substr($c1,0,strpos($c1," "));

i czy mogę dać WHERE id = '.$row['id']?

21.10.2006
22:06
[38]

nagytow [ Firestarter ]

Wracamy na forum? :)

Z pytania zgaduje, ze probowales i ci nie dziala, ale tak, mozesz. Postac $id w zasadzie nie ma znaczenia. Musisz tylko pamietac, ze jesli dajesz where ... i wstawiasz zmienna, ktora nie jest liczba a stringiem, to musisz dac apostrofy.
Co do drugiej opcji to wolalbym zobaczyc pelne zapytanie. Ale wyglada na ok.

21.10.2006
22:13
smile
[39]

chickenom [ ]

nagytow -> Dzisiaj sobota, nie chciałem Cie w wolnym od pracy dniu męczyć :].

Szczerze to jeszcze nie próbowałem, ale warto by było wiedzieć :]

zapytanie sql:

$sql='SELECT * FROM users WHERE id = '. $_GET['id'];
$result = sql($sql);
$row=mysql_fetch_array($result);

i potem

$sql = 'SELECT login, email, gg FROM users WHERE id = '$row['id']
$result = sql($sql);
$row=mysql_fetch_array($result);

a potem np.

<input type=\"text\" value=$row['login'] name=\"login\">

lol, znowu nie myślę, całe drugie zapytanie jest zbędne, bo przecieć już w pierwszym, wyciągam tylko dane gdzie id = $_GET['id']... ehhh....

21.10.2006
22:18
[40]

nagytow [ Firestarter ]

Szczerze to jeszcze nie próbowałem

To probuj, probuj, komp nie wybuchnie :) (chociaz kto wie....)

Tak, drugie zapytanie jest zbedne, bo w pierwszym wyciagnales wszystkie pola danego usera, w tym login, email i gg :)

value=.... ---> dodaj cudzyslowy, dla konsekwencji :)

23.10.2006
17:20
smile
[41]

chickenom [ ]

Jest ktoś chętny, kto pomógłby mi w optymalizacji kodu? Usuniecie zbędnych komend, tabowanie itp. Dodatkowa pomoc zawsze się przyda, szczególnie kogoś bardziej obeznanego w temacie niż ja :)

Jeszcze cos: ile maksymalnie, przy obecnych stndartach powinna zajmować grafika na stronie?

23.10.2006
17:34
[42]

chickenom [ ]

Juz nie moge edytowac, więc napiszę drugi post:



sprawdzcie czy teraz wczytuje się szybciej i ile zajmuje cała strona (wczesniej zajmowała coś ok. 1 mb.)

23.10.2006
17:59
[43]

slowik [ NightInGale ]

optymalizacja nie ma nic wspolnego z tabowaniem ... tabowanie to konwencja zapisu jedni to robia inni sie gubia w tym co napisali
czytanie kodu ktory ktos nie powcinal jest koszmarem ...

1mb !? to objetosc kodu czy moze kod+obrazki ?

23.10.2006
18:00
[44]

nagytow [ Firestarter ]

Mozesz cos mi zapodac, to rzuce okiem. Co do grafiki to roznie. Ja oczekuje, ze strona wczyta sie w ciagu 1-2 sek od klikniecia na link. Teraz jest znacznie lepiej niz poprzednio :)

23.10.2006
18:04
smile
[45]

chickenom [ ]

slowik -> Miałem na myśli optymalną pracę z kodem, po tabowaniu staje się o wiele czytelniejszy i pracuje się z czystą przyjemnością :)

1mb zajmowały same obrazki :/.

nagytow -> Pozwól, że odezwę się jutro na gadulcu i wtedy porzucamy okiem ;)

23.10.2006
18:36
[46]

slowik [ NightInGale ]

optymalizacje grafiki i html'a daje css (oczywiscie umiejetnie wprowadzony) dobrze jesli grafika +kod mieszcza sie w zakresie <100kb a nawet 50kb

23.10.2006
18:38
smile
[47]

chickenom [ ]

wow, to ładnie, będę musiał znowu zmneijszyć jakość obrazków :/

wg moich wyliczen zajmują w tej chwili ok 500 kb ;o

23.10.2006
18:45
[48]

Dony_Brasco [ Konsul ]

czy używa ktos programu do tworzenia strona w kodzie zrodłowym i normalnie ktory nazywa sie nvu?

23.10.2006
19:34
[49]

slowik [ NightInGale ]

nie zmniejszac jakosci ale wielokrotnie uzywac jednego obazka uzywac odpiwiednich formatow ..

Dony_Brasco===>normalnie to ja pisze w context'ie

23.10.2006
23:19
[50]

hotDog [ Outsider ]

Dony_Brasco --> Ja kiedyś molestowałem NVU-a, ale i tak pomimo wszystko ciężko mi się rozstać z notatnikiem/Context'em

29.10.2006
18:46
[51]

Dony_Brasco [ Konsul ]

Mam prosbe potrzebuje na jutro szablon na strone o Barcelonie ale jak na złosc nie moge zainstalowac gimpa a tylko w nim umie robic banerki itp czy mogłby ktos mi dzisiaj stworzyc jkis sredni banerek??

29.10.2006
19:53
[52]

hotDog [ Outsider ]

W czym problem masz w zainstalowaniu GIMP'a?

brakuje GTK+?

29.10.2006
20:21
[53]

slowik [ NightInGale ]

a gtk+ zainstalowales ?

29.10.2006
20:24
[54]

Dony_Brasco [ Konsul ]

a skąd to mogę sciagnąc????

29.10.2006
20:51
[55]

Adam9870 [ ]

Dony_Brasco ---> GIMP jest dostępny do pobrania tutaj:


Natomiast o instalacji biblioteki GTK+ jest tutaj:

29.10.2006
22:33
[56]

Cainoor [ Mów mi wuju ]

Cześć, mam bardzo mało czasu, a muszę zrobić bardzo prostą stronke dla kolegi.
1.Czy są jakieś gotowe schematy php?
2. PHP a księga gości? (MySQL)
3. Jaki licznik zliczający odwiedziny wybrać?

29.10.2006
22:55
smile
[57]

slowik [ NightInGale ]

1. jakis cms wystarczy ?
2. niektore maja wbudowana
3. - zadnych reklam i innego gowna

31.10.2006
00:37
[58]

Cainoor [ Mów mi wuju ]

Dzięki. Licznik już ładnie działa. Schemat w końcu zrobiłem sam. Najprostszy z możliwych :)
Męczę się z księgą gości troszke.

Mam takie pytanie: Czy w php funkcja file('plik.txt') działa mi tylko jak otwieram nową strone php, w której jest ten kod. Gdy natomiast tą samą stronke załączam poprzez include, to file mi niczego nie pobiera. Wtf?

<?php

$file = file('wpisy.txt');
foreach($file as $key => $value)

$data = explode('|||', $value);

echo '<b>Imię i Nazwisko:</b> '. $data[0] .'<br>';
echo '<b>E-mail:</b> '. $data[1] .'<br>';
$tresc = wordwrap($data[2], 70, "<br>", 1);
echo $tresc .'<br><br>';


?>

31.10.2006
01:13
smile
[59]

slowik [ NightInGale ]

a czy aby napewno pliki sa na tym samym poziomie ? (katalogi)

jednak sugerowalbym uzywanie mysql do tego celu mniej niemilych niespodzianek w przyszlosci i latwiejsza implementacja

31.10.2006
20:11
[60]

wi3dzmin [ Konsul ]

Witajciem mam pytanko odnośnie obróbki obrazków w php

Chciałbym zrobić taki coś:
Załadowanie obrazka z kompa, zmniejszenie go do rozmiarów miniatury i w razie konieczności orzycięcie do wymiarów kwadratu (np 100 x 100)

O ile z uploadowaniem i zmniejszaniem nie ma problemu o tyle przyciąć obrazka za pomocą php nie potrafię :) Jest to wogóle możliwe? Jeżeli tak to jak? I przy okazji... Jak umieścić na jakimś obrazku tekst, a najlepiej inny obrazek?

31.10.2006
23:53
[61]

hotDog [ Outsider ]



poniżej jest przykładowy kod do wstawiania tekstu (w tym przypadku obrazek jest w formacie PNG):

<?php

header("Content-type: image/png");
$string = $_GET['text'];
$im = imagecreatefrompng("images/button1.png");
$orange = imagecolorallocate($im, 220, 210, 60);
$px = (imagesx($im) - 7.5 * strlen($string)) / 2;
imagestring($im, 3, $px, 9, $string, $orange);
imagepng($im);
imagedestroy($im);

?>



Jeśli chodzi o wstawianie "obrazka w obrazek" to służą do tego dwie funkcje:




01.11.2006
14:17
[62]

chickenom [ ]

Witam, mam kilka problemów, na innych forach nie udzielili mi odpowiedzi więc zapytam tutaj :]

1 problem

"Witam ponownie, potrzebuję wylistować rekordy z bazy wg id wpisu, ale od największego id do najmniejszego. Druga sprawa dotyczy grupowania w strony owych rekordów, czyli np, w bazie mam 5 wpisów to chcialbym, aby po wylistowaniu trzech zrobił się link do następnej strony, w której będą już tylko 2 pozostałe rekordy. Z góry dziękuje za pomoc."

2 problem

"Witam, napisałem prosty skrypt newsów, wszystko szło gładko, aż do momentu wprowadzenia autora Newsa. W ciachu mam zapisane dane dt. id i hasła w md5, rozbiłem ciacho za pomocą substr(), wyciągnąłem odpowiednie dane z bazy (status to pole oznaczające status użytkownika - mod(1), admin(2), user(0)) i zrobiłem instr. warunkową if, który choć działa zwraca błędy (tylko gdy do pliku news.php wejdzie osoba nie zalogowana, lub ta która ma status=0) no i wyskakuje błąd gdy w polu autor wpiszę value=\"$row['login']\". Pomóżcie mi bo naprawdę wszystkie moje pomysły zawiodły :)
Z góry dziękuję za pomoc:"

plik news.php

[php]
<?php
$c1 = $_COOKIE['login'];
$id = substr($c1,0,strpos($c1," "));
$sql = ( "SELECT login, status FROM users WHERE id = $id" );
$result = sql($sql);
$row = mysql_fetch_array($result);

if ( $row['status'] == "2" || $row['status'] == "1" )

$date = date("H.i d-m-Y");
echo date("H.i d-m-Y");
echo "<br><br>";
echo ( "
<center>
<form style=\"margin:0\" action=\"?go=news_add\" method=\"post\">
<table cellspacing=\"2\" cellpadding=\"0\" border=\"0\">
<tr>
<td>Autor:<br>
<input value=\"$row['login']\" style=\"background-image:url('images/login.jpg');border-width:0;width:78px;COLOR:#FFFFFF;font-family:verdana;font-size:8pt\" type=\"text\" name=\"title\" readonly></td>
</tr>
<tr>
<td>Tytul newsa:<br>
<input style=\"background-image:url('images/login.jpg');border-width:0;width:78px;COLOR:#FFFFFF;font-family:verdana;font-size:8pt\" type=\"text\" name=\"title\"></td>
</tr>
<tr>
<td>Data:<br>
<input value=\"$date\" style=\"background-image:url('images/login.jpg');border-width:0;width:78px;COLOR:#FFFFFF;font-family:verdana;font-size:8pt\" type=\"text\" name=\"date\" readonly></td>
</tr>
<tr>
<td>Tresc newsa:<br>
<textarea cols=\"30\" rows=\"5\" name=\"tresc\"></textarea></td>
</tr>
<tr>
<td align=\"center\" colspan=\"2\"><input type=\"submit\" value=\"Dodaj newsa!\"></td>
</tr>
</table>
</form>
</center>

" ) ;

elseif (!$_COOKIE['login'] || $row['status'] == 0)

echo (" Błąd! Nie masz uprawnień do dodawania newsów! ");



?>

Pomoże ktuś?

01.11.2006
14:51
[63]

Regis [ ]

1. Sortowanie od najmniejszego/najwiekszego to kwestuia ASC/DESC na koncu zapytania. Polecam dokumentacje.

W kwestii dzielenia wynikow zapytania - przejrzyj dokumentacje MySQL i przeczytaj o parametrze LIMIT w zapytaniu SELECT.

Ew. moze tu cos znajdziesz:
Generalnie chodzi o to, zeby powiedziec MySQL'owi ile rekordow chcesz pobrac i od ktorego zaczac. Potem tylko wystarczy napisac skrypt ktory bedzie sobie przejkazywal numery kolejnych stron i na tej podstawie wyliczal poczatek i ilosc rekordow.

2. Na analize kodu i problemu nie mam teraz niestety czasu. Moze wieczorem, o ile mnie ktos nie uprzedzi.

01.11.2006
19:45
[64]

wi3dzmin [ Konsul ]

Sortowanie jest proste
w zapytaniu mysql wpisujesz ORDER BY id ASC/DESC

ASC lub DESC decyduje czy rosnąco czy malejąco np

SELECT autor FROM newsy ORDER BY id DESC posegreguje nicki wedłu ID malejąco

Co do podziału na strony jest troszke więcej zabawy ale tylko troszke ;)

Koszystasz w zapytaniu z polecenia LIMIT, ZAWSZE na końcu polecenia

np
SELECT autor FROM newsy ORDER BY id DESC LIMIT 0, 10

polecenie to pobierze 10 wpisów zaczynając od wpisu 0 (pierwszego) jezeli podasz LIMIT 5, 10 pobierzesz 10 rekordów od rekordu 5.

Podział na strony w uproszceniu można zrobić tak:

//pobieramy poczatek pobierania z adresu lub jezeli do nie ma to ustalamy na 0
if(!isset($_GET['pocz']))

$pocz = 0;

else

$pocz = $_GET['pocz'];

//ustalamy ile rekordów na strone
$na_str = 10;
$query = "SELECT nick FROM newsy ORDER BY id DESC LIMIT $pocz, $na_str";

//potem juz normalnie wyświetlasz wyniki czy co tam z nimi robisz


//teraz trzeba dać linki do następnych stron

//poprzednia strona
$poprz_str = $pocz - $na_str;
<a href='strona.php?pocz=$poprz_str'>Poprzednia strona</a>

//następna strona
$nast_str = $pocz + $na_str;
<a href='strona.php?pocz=$nast_str'>Nastepna strona</a>

No i to prawie wszystko, musisz jeszcze tylko dać instrukcje warunkowe zeby nie pojawił się link do strony minus pierwszej :) i aby nie dać za wysokiego poczatku, ale to juz wystarczy pilnowac aby poczatek nie byl mniejszy od 0 i wiekszy niz łaczna liczba rekordów ;)

02.11.2006
15:45
[65]

BossManPL [ Konsul ]

Pytanie o hosting na
Czy wiecie coś o tej firmie. Wszystko za darmo bez limitów i spora ilość miejsca na serverze. Gdzie tkwi haczyk?

02.11.2006
16:05
[66]

Marcio [ Bleeee ]

W tym, że nie jest to firma, tylko hosting na jakimś portalu więc pewnie pomoc techniczna odpada, nielimitowany transfer = jeśli przekroczysz X GB to blokują ci konto a pozatym nie moge nigdzie sie dopatrzeć regulaminu więc pewnie mogą ci w dowolnym momencie bez twojej zgody zamknąć konto. Nie lepiej wydać te 3-4 zł/mc i mieć porządny hosting i sie o nic nie martwic ?

02.11.2006
16:38
smile
[67]

_Walec_ [ Chor��y ]

Siema
jestem totalna lama jesli chodzi o html i ogolnie pojety webmastering :)
mam pytanko...jak zrobic hiperlacza, aby przy najechaniu kursoerm hiperlacze zostalo podkreslone ?

pozdrawiam:)

02.11.2006
19:12
[68]

wi3dzmin [ Konsul ]

musisz użyć kaskadowych arkuszów stylów

Nie wiem czy coś o nich wiesz więc ci tutaj na krótce napisze :)

Tworzysz plik styl.css a w nim takie cuś

A, A:link, A:active ‹
text-decoration:none;


A:hover ‹
text-decoration:underline;


dzięki tej definicji stylów linki na stronie, linki aktywne i linki odwiedzone będą niepodkreślone (text-decoration: none;) a linki po najechaniu myszką będą podkreślone (text-decoration: underline;)

potem musisz jeszcze podłączyć ten plik do strony na której są hiperłącza
umieszczasz wtedy takie cudow pomiędzy znacznikami <head></head> :

<link rel="stylesheet" href="styl.css" type="text/css" />

I gotowe ;)


A teraz pytanko odemnie:

Jak zrobić w JavaScripcie odświerzanie jednego okna po zamknięciu innego? Tak jak jest na golu: piszę posta, dodaję go, okno dodawania posta się zamyka, a okno z wątkiem automatycznie się odświerza... jak takie cudow zrobić bo myślę, myślę i nie mogę wymyślić :)

02.11.2006
19:17
[69]

wysia [ Generaďż˝ ]

wi3dzmin -->
window.opener.location.reload();

02.11.2006
19:27
[70]

BossManPL [ Konsul ]

Dzięki Marcio. Urzyłem słowa firma żeby sie nie powtarzać. Zaryzykowałem i sprawdziłem ten hosting.

Szukałem czegoś co wspiera PHP. Tam jest obsługa PHP, ale ma takie ograniczenia, że właściwie tylko czyste html ze stylami zostaje :/ a jak nie mogłem zalogować się na FTP to w help(a raczej FAQ) jedyna podpowiedź to to, że źle wpisuje hasło :|

Poradźcie mi jakiś, albo darmowy, albo tani hosting z obsługą PHP bez reklam, bez limitów z jak największą przestrzenią (100-500MB starczy). Potrzebuje zrobić upload plików na stronie, coś w stylu browsera ftp w html, a o ile wiem w javascript to nie przejdzie (mam domene w neostradzie).

edit:
lub ewentualnie jak załorzyć własny ftp (na swoim dysku) na neostradzie za routerem (zmienne ip, SpeedTouch510)

02.11.2006
19:29
[71]

QrKo [ Legend ]

BossManPL - było yoyo.pl ale wprowadzili reklamy (z opcja zamkniecia) w zamian za to ze przyspieszyli serwery.

Ze swojej strony polecam mam tam konto za 4zł miesiecznie i jest dla mnie idealne.

EDIT:
Teraz mi się przypomniało, kumpel mówił że ma full wypas serwerek z domeną info i 1gb pojemności za darmo. Z tego co widze to oferta nadal aktualna na okres jednego roku:

02.11.2006
19:41
[72]

Regis [ ]

linuxpl.com

Korzystam juz bodaj 3 rok, bez zarzutu. Jak mam problem i pisze do adminow, to odpowiedz mam zwykle z ciagu 3-4 godzin, gora nastepnego dnia rano, jak pozno napisze. Jest PHP 4 i 5.

02.11.2006
19:54
[73]

wi3dzmin [ Konsul ]

wysia jesteś wilka/i :) dzieki

02.11.2006
19:56
[74]

wi3dzmin [ Konsul ]

ja tradycyjnie polecam www.netlook.pl

tanio i naprawde żadnych zastrzeżeń, wszystko szybko, działa profesjonalna pomoc na każdy temat bez zwłoki :)

06.11.2006
09:19
smile
[75]

chickenom [ ]

wi3dzmin -> a mógłbym poprosić o działającego 'gotowego gotowca'? :]

11.11.2006
10:46
smile
[76]

SPMKSJ [ Konsul ]

Witam wszystkich
POSZUKUJĘ GRAFIKA, który potrafi zrobić ładną graficznie stronę (nie korzystając z szablonów)
Sprawa wygląda tak. Stworzyłem stronę internetową od strony PHP, graficznie wygląda fatalnie.Stronę chcę sprzedać, dlatego musi jeszcze być zrobiona grafika.Za ew zyski ze sprzedarzy dzielę się równo po pół, chyba że będzie więcej osob w jakims projekcie, to dzielimy kase (kasa/ilość osób) :-) Jak jest ktoś chętny niech się ze mną skontaktuje.

11.11.2006
11:18
[77]

wi3dzmin [ Konsul ]

hmm nie lubie pisac gotowców ;) Zresztą tak po prawdzie to już ci napisałem gotowca :P

No ale skopiuje ci system jai używam na swojej stronie, dalej sobie napewno poradzisz

$na_str = 15;

if(isset($_GET['str']))

$str = $_GET['str'];

else

$str = 1;

$koniec = $str * $na_str;
$pocz = $koniec - $na_str;

if(!$db_wyniki = mysql_query("SELECT * FROM tabela"))

echo "<p class='error'>Błąd podczas zliczania!</p>".mysql_error();
return(0);

$max = mysql_num_rows($db_wyniki);

$i = 1;
while($eq < $max)

$eq = $i * $na_str;
$i++;

$max_str = $i - 1;

$query = "SELECT * FROM tabela LIMIT $pocz, $na_str";

//teraz cała tresc trony a potem linki do kolejnych stron:

//-----
if($str > 1)

$p_str = $str - 1;
echo "<a href='index2.php?str=$p_str' title='Poprzednia strona'>&lt;&lt;</a>";

else

echo "&lt;&lt;";


echo "&nbsp;";
$p = $str - 7;
$k = $str + 7;
if($p < 1)

$p = 1;

if($k > $max_str)

$k = $max_str;


while($p <= $k)

if($str == $p)

echo "<b>[$p]</b>&nbsp;";

else

echo "<a href='index2.php?str=$p' title='Strona $p'>[$p]</a>&nbsp;";

$p++;

if($str < $max_str)

$n_str = $str + 1;
echo "<a href='index2.php?str=$n_str' title='Następna strona'>&gt;&gt;</a>";

else

echo "&gt;&gt;";


No i to wszystko, ta wersja jest bardziej rozbudowana ale to chyba lepiej :P Miłego użytkowania :)

11.11.2006
13:42
smile
[78]

chickenom [ ]

< - Dzięki wiedzminie napewno z tego skorzystam :)

Znowu mam problem, tym razem z dodawaniem newsów do bazy:

$c1 = $_COOKIE['login'];
$id = substr($c1,0,strpos($c1," "));
$sql = sql ( "SELECT login FROM users WHERE id = $id" ) ;

$sql2 = ( "SELECT status FROM users WHERE id = $id" ) ;

$result = sql($sql2);

$row = mysql_fetch_array($result);

if ( $row['status'] == "0" || !$_COOKIE['login'] )


echo (" Błąd! Nie masz uprawnień do dodawania newsów! ");

elseif ( $row['status'] == "1" || $row['status'] == 2 )

$date = date("H.i d-m-Y");
echo date("H.i d-m-Y");
echo "<br><br>";
echo ( "
<center>
<form style=\"margin:0\" action=\"?go=news_add\" method=\"post\">
<table cellspacing=\"2\" cellpadding=\"0\" border=\"0\">
<tr>
<td>Autor:<br>
<input value=\"$sql\" style=\"background-image:url('images/login.jpg');border-width:0;width:78px;COLOR:#FFFFFF;font-family:verdana;font-size:8pt\" type=\"text\" name=\"title\" readonly></td>
</tr>
<tr>
<td>Tytul newsa:<br>
<input style=\"background-image:url('images/login.jpg');border-width:0;width:78px;COLOR:#FFFFFF;font-family:verdana;font-size:8pt\" type=\"text\" name=\"title\"></td>
</tr>
<tr>
<td>Data:<br>
<input value=\"$date\" style=\"background-image:url('images/login.jpg');border-width:0;width:78px;COLOR:#FFFFFF;font-family:verdana;font-size:8pt\" type=\"text\" name=\"date\" readonly></td>
</tr>
<tr>
<td>Tresc newsa:<br>
<textarea cols=\"30\" rows=\"5\" name=\"tresc\"></textarea></td>
</tr>
<tr>
<td align=\"center\" colspan=\"2\"><input type=\"submit\" value=\"Dodaj newsa!\"></td>
</tr>
</table>
</form>
</center>

" ) ;


?>

Niby toto działa, ale w okienku Autor wyświetla się Resource id #16 zamiast ksywki autora :/. Co jest nie tak?


A dostrzegłem jeszcze jeden problem - gdy do formualrza dodawania newsów chce się dostać osoba niezalogowana (czyli nie posiadająca ciastka na swoim hdd) wyskakują błędy w stylu check syntax sql etc.. Czemu takie głupoty wyświetla? :/

11.11.2006
18:17
[79]

wi3dzmin [ Konsul ]

Heh co do autora to powód jest prozaiczny

W "okienko" autora wstawiasz zmienną $sgl, a do tej zmiennej masz przypisane wyniki zapytania do bazy danych... z tego co widzę to autor z ciasteczka jest w zmiennej $c1 albo $id :P

A głupoty wyświetla ponieważ nie masz żadnej instrukcji sprawdzającej czy COOKIE jest PRZED zapytaniem do bazy...

Dodaj na samym począku

if(!isset($_COOKIE['login']))

echo "Spieprzaj dziadu!";
return(0);

12.11.2006
10:53
[80]

chickenom [ ]

wiedzminie -> pod $id masz wyciągnięte z ciastka id usera, zapytanie $sql wyciąga ksywkę z bazy... Ale to włąśnie nie działa...

12.11.2006
13:34
[81]

wi3dzmin [ Konsul ]

Hmm ty tu wogólejakoś dziwnie to zrobiłeś... po co dwukrotnie odwołujesz się do tej same tabeli w bazie danych? login i status możesz przecież pobrać jednym poleceniem

SELECT login, status FROM user WHERE id = '$id'

w skrypcie masz taką linijkę:

$sql = sql("SELECT login FROM....");

wtedy zmienna $sql nie zawiera loginu tylko uchwyt do wyników zapytania aby uzyskać login musisz jeszcz użyć mysql_fetch_array() (co dziwne zrobiłeś tak przy statusie, więc czymu przy loginie nie? ;) )

powinno to wyglądać jakoś tak:

$sql = mysql_query("SELECT login, status FROM user WHERE id = '$id'");
$row = mysql_fetch_array($sql);

$login = $row["login"];
$status = $row["status"];

i wtedy autor jest w zmiennej login a nie sql

12.11.2006
14:10
[82]

chickenom [ ]

wi3dzminie -> Wielkie dzięki już działa. Następny problem: plik viewprofile.php. Wszystko działa bardzo dobrze, ale, gdy w adresie wpisze się ?go=viewprofile (bez np &id=2) zwraca się błąd sqla. Plik:

<?php
$sql='SELECT * FROM users WHERE id = '. $_GET['id'];
$result = sql($sql);

$row=mysql_fetch_array($result);

if(mysql_num_rows($result))

echo "Nick: ".$row['login'];
echo '<br>';
echo 'E-mail: '.'<a href=mailto:'.$row['email'].'>'.$row['email'].'</a>';
echo '<br>';
echo 'Gadu-Gadu: '.'<a href=gg:'.$row['gg'].'>'.$row['gg'].'</a>';

elseif (!$_GET['id'])

echo "dupa";


if(!mysql_num_rows($result))

echo "Błąd! Nie istnieje użytkownik w bazie o podanym id!";

?>

Druga sprawa. Jak wyświetlić Użytkowników (logowanie na ciastkach) i gości online?


edit, tu masz ten błąd:

#############
#Wystąpił błąd!
#You have an error in your SQL syntax; check the manual that corresponds to your MySQL #server version for the right syntax to use near '' at line #1dupaBlad! Nie istnieje uzytkownik w #bazie o podanym id!
#############

12.11.2006
14:21
smile
[83]

hotDog [ Outsider ]

Błąd jest, ponieważ w tej linijce:
$sql='SELECT * FROM users WHERE id = '. $_GET['id'];

korzystasz ze zmiennej id, której nie przesyłasz (lub przesyłasz) w adresie. Więc jeśli jej nie ma, polecenie do SLQ'a ma postać:
SELECT * FROM users WHERE id = ;

więc wyskakuje błąd.

Aby tego uniknąć, przed zadaniem zapytania do SQL'a musisz sprawdzić czy przesłano w adresie zmienną "id". Możesz to zrobić np. w ten sposób:

if(isset($_GET['id']) && !empty($_GET['id'])) // sprawdz czy zmienna id istnieje i nie jest pusta

// tutaj dalszy kod z obsługą zapytania do SQL


aby uniknąć np. sytuacji gdy zmienna "id" zawierałaby samą spację itd, możesz użyć funkcji trim() itp - możliwości jest sporo

13.11.2006
12:32
smile
[84]

chickenom [ ]

Zrobiłem jak mówisz, ale nic nie daje, no i teraz przy podejrzeniu usera o id= np. 5 pojawia się 'Błąd' :/

kod:

if(isset($_GET['id']) && !empty($_GET['id']))

echo "Błąd!";

else

if(mysql_num_rows($result))

echo "Nick: ".$row['login'];
echo '<br>';
echo 'E-mail: '.'<a href=mailto:'.$row['email'].'>'.$row['email'].'</a>';
echo '<br>';
echo 'Gadu-Gadu: '.'<a href=gg:'.$row['gg'].'>'.$row['gg'].'</a>';

elseif(!mysql_num_rows($result))

echo "Błąd! Nie istnieje użytkownik w bazie o podanym id!";



Co teraz?

13.11.2006
13:26
[85]

wi3dzmin [ Konsul ]

chickenom -> a ty wogóle przesyłasz te id w adresie?

Zresztą w instrukcji

if(isset($_GET['id']) && !empty($_GET['id']))

echo "Błąd!";



Zrobiłeś wszystko na odwrót ;)

Teraz jeżeli JEST zmienna $_GET['id'] i NIE JEST pusta to wyświetla błąd... a powinno być na odwrót ;)

13.11.2006
15:38
smile
[86]

hotDog [ Outsider ]

wi3dzmin ma rację :-)

ten mój IF wykrywa istnienie zmiennej id, a Ty użyłeś jej do wykrywania jej nieistnienia :-)

więc zrób tak:
if(!isset($_GET['id']) && empty($_GET['id']))

echo "Błąd!";
exit(1); // chyba taka funkcja też jest w php, ostatnio za dużo w c++ siedzę :-)



Wtedy będzie wykrywać brak zmiennej id lub jej pustą zawartość.


Albo po prostu nie zmieniaj warunku tylko zamień miejscami echo "Blad!" i wywal je po else, a to po else wstaw w miejsce echo "Blad!" i będzie to samo.

14.11.2006
10:26
[87]

wi3dzmin [ Konsul ]

Z tego co wiem to jest funkcja

exit;

ale może w tej formie co podales tez bedzie dzialac :)

14.11.2006
16:00
[88]

chickenom [ ]

podmieniłem, ale wróciliśmy do punktu wyjścia :D



Sami zobaczcie :D

Co z tym sprawdzeniem userów online?

14.11.2006
17:41
[89]

hotDog [ Outsider ]

wi3dzmin --> Zostawmy to chickenom'owi jako pracę domową :-)



chickenom:



Nie działało Ci, bo nie podawałeś zmiennej id w adresie URL

14.11.2006
18:32
smile
[90]

chickenom [ ]

Tak wiem, celowo nie podałem :D
Po prostu ciekawiło mnie czy istneiej sposób, aby usunąć ten błąd jeżeli nie wpisze sie w adresie id :D

14.11.2006
21:57
[91]

brutu [ Uwielbiam Cię Aguś ]

Witam!

Mam tzw. krotka pilke :).

Jak to jest możliwe, że 2 IDENTYCZNE dokumenty [html oczywiscie] są różnie wyświetlane?
Właśnie tworzę domową stronę, coś w stylu portfolio,i mam pewnien denerwujący problem. Otóz napisalem stronę "o mnie" która jest wyświetlana poprawnie. Następnie jest "kalendarium" i żeby nie pisać od początku wszystkiego, skopiowałem ze strony "o mnie" źródło strony i wkleiłem. Zapisałem - i błąd, w miejscach polskich liter są kratki i inne znaki specjalne. A źródło jest TAKIE SAME. IDENTYCZNE kropka w kropke. Kompletnie nie rozumiem o co chodzi, pomożecie?

W necie znalazłem ze to cos z notatnikiem moze byc, a pod nim pisze, no ale nie wiem. Uzywalem normy ISO-8859-2.

Help ;)

14.11.2006
22:29
[92]

wi3dzmin [ Konsul ]

chickenom -> no przecież ci to podajemy cały czas!

if($_GET['zmienna'] == "")

echo "Błąd, nie podano zmiennej";
exit;


I po sprawie

brutu -> Zakładając, że masz odpowiednio zdefiniowane kodowanie stroy, to rzeczywiście problem najprawdopodobniej spowodowany jest wlasnie notatnikiem. Notatnik nie koduje polskich znaczków, albo jakoś tak, z tego co wiem to trzeba mieć jakieś specjalne programy konwertujące tekst z notatnika albo inny program :)

Podbno zajączek jest fajny :)

14.11.2006
22:33
smile
[93]

brutu [ Uwielbiam Cię Aguś ]

Wlasnie sciagam kedHTML, polski, prosty edytor, powinien przekonwertowac tekst i mam nadzieje,ze bedzie dzialalo. Zajaczek jest darmowy? Dzieki.

kED sie sciagnal, chyba dziala :).

16.11.2006
22:45
[94]

wi3dzmin [ Konsul ]

Zajączek jest darmowy i bardzo polecany, chociaz mi sie kolorki nie podobaly ;) Ja swego czasu szukalem dobrego edytora html ale niestety nie znalazlem czegos co by mi pasowalo bez zarzutu :( Kiedyś napiszę swój własny :D

16.11.2006
22:50
[95]

wi3dzmin [ Konsul ]

A tak skoro tu jestem to co sądzicie o tymprojekcie strony:

Narazie tylko jako plik graficzny.

Wiem, ze sporo grafiki ale tak generalnie ma byc ;) Chodzi mi o ogolne klimatyczne wrazenia :)

16.11.2006
22:51
[96]

wi3dzmin [ Konsul ]

17.11.2006
10:11
[97]

slowik [ NightInGale ]

jesli na gorze niczego nie bedzie yo logo zajmuje za duzo miejsca

17.11.2006
11:52
[98]

wi3dzmin [ Konsul ]

na górze?
Na górze będzie logo ;)

A jeżeli chodzi o przestrzeń pomiędzy napisami menu i alt menu to tam będą reklamy :)

17.11.2006
16:12
[99]

Bloohder [ Krzyżowiec ]

Jak zlikwidować kreski pod linkami i zrobić tak, żeby pojawiały się dopiero po najechaniu na link?

17.11.2006
21:59
[100]

wi3dzmin [ Konsul ]

Bloohder - > a z łaski swojej przesuń trochę pasek przewijania do góry i obejrzyj moją wcześniejszą wypowiedź na identyczne pytanie... poczytaj najpierw wątek zanim zaczniesz pytac

19.11.2006
14:10
[101]

chickenom [ ]

wi3dzmin -> oke, dzięki :). Masz stronkę o fantastyce... Musimy wymienić się bannerkiem. Co Ty na to? :P

Bloohder -> kurs CSS się kłania :). Post nr [68] w tym wątku, autorstwa wi3dzmina


Chciałbym wykonać zapytanie UPDATE przy pomocy formularza, niestety pogubiłem się w cudzysłowach i bckslashach :/. Mógłby mi ktoś przedstawić schemat zmieniania rekordów w bazie na tych z formularza?

19.11.2006
14:38
[102]

umek [ Szczęśliwy ]

witajcie. mam problem: robię stronę i pracuję nad skryptem do newsów. Mam bazę danych, gdzie pierwsza komórka dla każdego wpisu to 'ID'. Jak wyznaczyć największe ID (by najpierw wyświetlić ostatniego newsa)?

19.11.2006
14:39
[103]

Didier z Rivii [ life 4 sound ]

ajki mozecie polecic kompleksowy system do robienia galerii zdjec?
najlepiej zeby mozna bylo robic kategorie po klinieciu na ktora widac miniaturki a po kliku powiekszenia i jakies opisy...
najlepiej mozliwe proste bo nic wiecej nie potrzebuje :)

19.11.2006
16:31
[104]

hotDog [ Outsider ]

chickenom --> zasada jest jasna: backslash'a wstawiasz przed znakiem, którego nie chcesz aby interpretowano podczas wykonywania skryptu: \' \" \\ itd

umek --> np. "SELECT max(id) FROM tabela;"

Jest też funkcja: SELECT last_insert_id();

mowa oczywiście o MySQL.

19.11.2006
16:47
[105]

slowik [ NightInGale ]

hotDog===>mu raczej chodzilo o Select * From tabela SORT DESC

19.11.2006
21:56
smile
[106]

chickenom [ ]

HotDog

Skoro tak, to czy to jest napisane dobrze, czy gdzieś muszę wstawić backslashe?

sql ('UPDATE users SET email=$_POST['email'], gg=$_POST['gg'] WHERE id= '.$id);

20.11.2006
00:10
[107]

hotDog [ Outsider ]

slowik --> hmm, no w sumie chyba masz rację :-)

chickenom --> to co masz pomiędzy nawiasami ' ' nie jest interpretowane przez PHP. Interpreter PHP jedynie między " " widzi kod pisany w PHP i może go zinterpretować, więc ten kod jest niepoprawny.

sql ('UPDATE users SET email=$_POST['email'], gg=$_POST['gg'] WHERE id= '.$id);


skoro chcesz uzyskać dostęp do zmienenj $_POST['email'] w tym zapytaniu, to musisz ją "odkryć", aby PHP wstawiło w tym miejscu zawartość tej zmiennej. Bo jak wstawisz nazwę zmiennej pomiędzy ' ' to PHP potraktuje ją jako zwykły tekst, a nie nazwę zmiennej. Czyli powinno być:

sql ('UPDATE users SET email='.$_POST['email'].', gg='.$_POST['gg'].' WHERE id= '.$id.'');

lub używając " "

sql ("UPDATE users SET email=$_POST['email'], gg=$_POST['gg'] WHERE id=$id");

wtedy interpreter przeleci przez całe wyrażenie w nawiasach " " i podstawi w miejsca nazw zmiennych ich wartości.

Jeszcze dobrze by było gdybyś nazwy pól tabeli umieszczał pomiędzy ` a ` czyli `email`=..., `gg`=.. itd ;-)

20.11.2006
17:05
[108]

umek [ Szczęśliwy ]

thx:] tak, używam mysql. A może zrobię to na time() (dobrze będzie $czas=time() ?)?

21.11.2006
15:34
[109]

Cainoor [ Mów mi wuju ]

Witam,

Mam pytanie: Czy znacie może jakiś skrypt, który tworzy internetową ankiete, a jej wyniki wstawia do pliku Excela? Czy trudno coś takiego napisac?

21.11.2006
15:50
[110]

Mariano Italiano [ Pretorianin ]

<body>
<font face="Verdana" style="font-size: 8pt" color="#FF0000"><script language="javascript"script>



function countup(yr,m,d)‹
var today=new Date()
var todayy=today.getFullYear() - yr
var todaym=today.getMonth() - m
var todayd=today.getDate() - d

document.write("Natalia urodziła się 02 listopada 2004")

document.write( "czyli ma: "+todayy+" lata "+todaym+" miesięc i "+todayd+" dni!") ›

countup(2004,11,02)
//-->
</script></script>
</body>

</html>
Jeden z forumowiczów przekształcił mi ten skrypt do moich potrzeb. Mam teraz dodatkowe pytanie:

Jak w tym skrypcie modyfikować napisy, mianowicie jak zrobić kolejna linie tak aby wyrazy były pod sobą ? W html to <br> a tu?

Czy da się zmienić aby zaleznie od liczby były formatowane wyrazy np. 1 miesiąc, dwa miesiące, dwa lata , osiemnaście lat ?

21.11.2006
15:55
[111]

Regis [ ]

Sprobuj uzyc: \n

Da sie, na pewno. Jak? Nie wiem, nie znam JS.

21.11.2006
16:12
smile
[112]

chickenom [ ]

hotDog -> Kurde, nie działa :/

Przy próbie edycji wyskakuje:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@gmail.com, gg=30293965 WHERE id= 2' at line

Plik:

function x ()

$c1 = $_COOKIE['login'];
$id = substr($c1,0,strpos($c1," "));

if ( empty ($_POST['pass']) || empty($_POST['pass2']) || empty($_POST['gg']) || empty($_POST['email']) )

echo ("Wypełnij wszystkie pola!");

else

if ( $_POST [ 'pass' ] != $_POST [ 'pass2' ] )

echo ( "Podane hasła nie są identyczne!" ) ;

else


sql ('UPDATE users SET email='.$_POST['email'].', gg='.$_POST['gg'].' WHERE id= '.$id.'');
echo ("Zmiany zapisane!");


22.11.2006
01:29
[113]

hotDog [ Outsider ]

//....

sql ('UPDATE users SET email='.$_POST[\'email\'].', gg='.$_POST[\'gg\'].' WHERE id= '.$id.'');
echo ("Zmiany zapisane!");

//.....

22.11.2006
09:02
smile
[114]

chickenom [ ]

Dzięki HotDog, ale zrobiłem ciutkę inaczej i też działa:

sql ('UPDATE users SET email=\''.$_POST['email'].'\', gg=\''.$_POST['gg'].'\' WHERE id= '.$id);

22.11.2006
23:58
smile
[115]

Qbaa [ Senator ]

Cainoor niestety już dawno nic nie napisałem, więc się nie podejmę większej pomocy, niż podanie kilku linków i pomysłu :)

znalazłem gotowe generatory plików xls


nie wiem jak działają

excel otwiera też prostszy rodzaj pliku z danymi - csv (dane są oddzielone przecinkami), w google można znaleźć sporo przykładowych kodów w php.


jestem pewien, że dasz radę to napisać :)

23.11.2006
18:00
[116]

Rybha [ Konsul ]

Mam sprawę ludziska. Chcę stworzyć pwien kalkulator w html. O co mi chodzi zobaczycie na dołączonym obrazku.

Opis obrazka:
Na liście widnieją poszczególne pozycje. Do tych pozycji przyporządkowane są pewne wartości. W polu poniżej można wpisać drugą wartość (ograniczoną np. do 99999). Klikając na przycisk "Oblicz!" skrypt generuje wynik.

Jakby ktoś nie kumał opisu to zapodam jeszcze przykład:
Firma Nowak & Son ma przyporządkowaną wartość 20 000zł. Wybieramy ją następnie w polu poniżej wpisujemy kredyt w wysokości 10 000zł. Klikając na przycisk "Oblicz!" otrzymujemy środki finansowe firmy, czyli w tym wypadku 30 000zł.

Chcę otrzymać taki kalkulator, jak na powyższym przykładzie. Chodzi mi o to, żeby działał na dysku, a nie dopiero po zamieszczeniu go na stronie internetowej i żeby wynik generowany był w nowym oknie. Kto wie jak napisać taki kalkulator w html? Czy trzeba używać Java Script?

23.11.2006
19:58
[117]

hotDog [ Outsider ]

HTML służy tylko do prezentacji danych, nie do ich obliczania.

Musisz użyć JS, PHP lub AJAX'a.

24.11.2006
14:30
[118]

Rybha [ Konsul ]

Ok. Tylko dalej mam to samo pytanie: jak stworzyć taki kalkulator? Czy najlepszym i najprostszym rozwiązaniem będzie JS? Zna ktoś stronki z podstawami JS?

24.11.2006
14:49
[119]

hotDog [ Outsider ]

Wszystko masz we wstępniaku. "Ciekawe strony dla webmasterów"

01.12.2006
18:38
smile
[120]

master53 [ Hans Kloss ]

Mam do Was ogromną prośbę. Prawdopodobnie będę tworzył nową stronę szkoły. Czy znacie jakiś bardzo dobry tutorial który pokazałby w prosty sposób jak zrobić system newsów, sondy i inne tego typu proste rzeczy na stronie ? Jeśli nie ma takowego, to chociaż bardzo dobry tutek o PHP takim bardziej użytkowym :) Z góry dzięki.

04.12.2006
11:55
[121]

SPMKSJ [ Konsul ]

master53----> ja zacząłem swoją naukę od książki Daniela Bargieła Kompendium Webmastera
Odwiedz sobie też strone php.net.
Jeżeli nie chcesz się zagłębiać w języku programowania to możesz użyć PHP NUKE. Wiele szkół posiada strony stworzone wlasnie w NUKE.
phpnuke.org

06.12.2006
16:50
[122]

Virtual_M@N [ Konsul ]

Witam.
Mam pewne pytanie. Otórz mam zamiar zrobic stronę, w celu poćwiczenia i nauczenia sie czegoś nowego. Sama strona powinna zawierać jakieś elementy we flashu (menu). Czy stworzenie czegoś we flashu jest trudne/bardzo trudne/na poziomie początkującym niewykonalne?

btw. Czy mógłby ktos podac mi link do jakiegoś poradnika projektowania we flashu, MYSQL, php?

06.12.2006
16:59
[123]

slowik [ NightInGale ]

flash .... flashzone.pl reszta jest w wstepniaku ewentualnie php.net i www.w3schools.com

zadanie jest banalne ;-)

06.12.2006
19:17
[124]

Virtual_M@N [ Konsul ]

yhh... znalazłem jakis poradnik do projektowania we flashu, tylko, że do wersji 5. Czy zna ktoś stronę z poradnikiem do ogólno dostepnej wersji w j. pol. ?

06.12.2006
23:52
[125]

hotDog [ Outsider ]

Książka z Helionu to dobra inwestycja.

07.12.2006
14:26
smile
[126]

KULL [ Gladiator ]

hej, mam takie pytanie : przyklad z ksiazki PHP i MySWL - z helionu.

takie cos:

clsss nazwaklasy

var $atrybut;

function __set($nazwa, $wartosc)

if($nazwa='atrybut' && $wartosc >= 0 && $wartosc <= 11)
this=>atrybut = $wartosc;




i teraz jak wywolam:

$a=new nazwaklasy();
$a->atrybut=55555;
echo $a->atrybut;


to nie powinno (z tego co czytam w tej ksiazce) przeciez wyswietlic tej liczby a wyswietla.

help!

07.12.2006
23:39
[127]

hotDog [ Outsider ]

Dlaczego niby nie powinno? :)

08.12.2006
10:03
smile
[128]

KULL [ Gladiator ]

ponoc funkcja __set przy nadawaniu wartosci dla mojego atrybutu : $a->atrybut=55555; wywoluje sie niejawnie no i powinna zadzialasc funkcja set.

zgodnie z ksiazka, inna funkcja: gest, jest wywolywana niejawnie gdy zostanie napotkane tylko takie cos: $a->atrybut

ksiazka sie myli lub ja czegos nie kapuje?? :)

08.12.2006
13:32
smile
[129]

hotDog [ Outsider ]

A takie buty :-)

to powinno Ci się przydać:



Szczerze mówiąc nie znam tak dobrze obiektowości PHP i też jest to dla mnie zagadką.

A może konieczne jest poinformowanie o przeciążaniu obiektu?

// Umożliwiamy przeciążanie obiektów klasy OO
overload('OO');

(przykład z linku)

12.12.2006
21:32
[130]

wi3dzmin [ Konsul ]

Witajcie webmasterzy, trochę was tu rozruszam :)

Mam kilka pytanek:
-Jak zrobić taką fajną ikonkę wyświetlaną przy adresie strony w pasku adresu przeglądarki (faviconka to się chyba nazywa).

-Jak zrobić taki fajny efekt, żeby po najechaniu na jakiś obiekt (np. odnośnik) pod kursorem wyświetlał się dymek zawierający określony tekst... tak, wiem, że w htmlu to po prostu parametr TITLE, ale mi chodzi o możliwość zdefiniowania tła takiego dymka, koloru czcionki, ewentualnie wstawienie jakiegoś obrazka do tego dymka. Wiem, że robi się najprawdopodobniej w java scripcie, teraz tylko pytanie: jak? :)

19.12.2006
16:17
[131]

chickenom [ ]

Witam, mam problem z wyświetlaniem newsów :/:

Plik newsy.php

<?php

$q = sql ("SELECT * FROM news ORDER BY id DESC"); /// pobierz dane
while ($row = mysql_fetch_array($q))

$c1 = $_COOKIE['login'];
$id = substr($c1,0,strpos($c1," ")); /// wyciągnij id z ciastka
$zal = "SELECT status FROM users WHERE id = $id"; /// wybierz pole status odpowiadajace za uprawnienia na stronie
$result = sql($zal);
$crow = mysql_fetch_array($result);
if ($crow['status'] = "1" || $crow['status'] = "2") /// 1 i 2 to status mod i admin

echo 'Dodał: '.'<a href=?go=viewprofile&id='.$row['id'].'>'.'<b>'.$row['autor'].'</b></a> <a href=?go=edit_news&id_news='.$row['id'].'>'.'[Edytuj]</a><br>'.'Data: '.$row['date'].'<br>Tytuł: '.$row['title'].'<br>Treść: '.$row['tresc'].'<br /><br />';

elseif ($crow['status'] = "0" || !$_COOKIE['login']) /// status = 0 (to użytkownik) lub brak ciastka

echo 'Dodał: '.'<a href=?go=viewprofile&id='.$row['id'].'>'.'<b>'.$row['autor'].'</b></a><br>'.'Data: '.$row['date'].'<br>Tytuł: '.$row['title'].'<br>Treść: '.$row['tresc'].'<br /><br />';


?>

No i niestety wywala mi błędy sqla :/

Sami zobaczcie:


Jak temu zaradzić? Dodam, że funkcja sql to moja własna funkcja do wywoływania zapytań

19.12.2006
16:42
[132]

Regis [ ]

<?php

$q = sql ("SELECT * FROM news ORDER BY id DESC"); /// pobierz dane
...

jestes pewien ze jest poprawna? Moze daj kod tej wynkcji? Czy juz gdzies jej uzywales i dzialala?

poza tym sprawdz:

"SELECT status FROM users WHERE id =" . $id;

Nie wiem czy Twoja wersja jest niepoprawna (nie chce mi sie sprawdzac), ale ja robie zawsze tak jak podalem i dziala. Moze to kwestia tego fragmentu.

Inna rzecz (nie bedaca raczej przyczyna tego konkretnego bledu) to to, ze do 'tablicowania' wynikow zapytan uzywasz mysql_fetch_array, a dane potem chcesz pobierac jak w mysl_fetch_assoc ($row['costam'], a nie $row[NUMER_INDEKSU]). Chyba ze nowe PHP jest tak madre ze mu to wisi, ale watpie...

19.12.2006
17:23
[133]

chickenom [ ]

Już naprawiłem, z pomocą kolegi:

wystarczyło dodac jednego ifa

<?php

$q = sql ("SELECT * FROM news ORDER BY id DESC");
while ($row = mysql_fetch_array($q))

$c1 = $_COOKIE['login'];
if (!$c1 || $c1 == 0)

echo 'Dodał: '.'<a

href=?go=viewprofile&id='.$row['id'].'>'.'<b>'.$row['autor'].'</b></a><br>'.'Data:

'.$row['date'].'<br>Tytuł: '.$row['title'].'<br>Treść: '.$row['tresc'].'<br /><br />';

else

$id = substr($c1,0,strpos($c1," "));
$zal = "SELECT status FROM users WHERE id = $id";
$result = sql($zal);
$crow = mysql_fetch_array($result);
if ($crow['status'] == "1" || $crow['status'] == "2")

echo 'Dodał: '.'<a href=?go=viewprofile&id='.$row['id'].'>'.'<b>'.$row['autor'].'</b></a>

<a href=?go=edit_news&id_news='.$row['id'].'>'.'[Edytuj]</a><br>'.'Data:

'.$row['date'].'<br>Tytuł: '.$row['title'].'<br>Treść: '.$row['tresc'].'<br /><br />';

else

echo 'Dodał: '.'<a

href=?go=viewprofile&id='.$row['id'].'>'.'<b>'.$row['autor'].'</b></a><br>'.'Data:

'.$row['date'].'<br>Tytuł: '.$row['title'].'<br>Treść: '.$row['tresc'].'<br /><br />';



?>

20.12.2006
10:11
smile
[134]

ashia [ Konsul ]

hmm a ja mam takie pytanie:

dlaczego na najnowszym IE na niektórych stronach nie działa menu rozwijane ?

20.12.2006
11:59
smile
[135]

hotDog [ Outsider ]

ashia --> Dlaczego używasz najnowszego IE? :-)

Jeśli chodzi o JS to zapewne każda przeglądarka obsługuje go inaczej (inspector DOM?) - więc wina leży po stronie autora kodu JS, bo dobrym zwyczajem jest sprawdzać spod jakiego klienta wchodzi dany internauta i dopasować kod do jego przeglądarki. Np. IE (nowszy już może nie - nie wiem) pozwalał poprzez JS otwierać tackę napędu CD..... mówi się "IE jest najlepszym sposobem na eksplorację Internetu z Twojego komputera i vice versa" :-))

Najlepiej podaj linka o które menu Ci się rozchodzi :-)

23.12.2006
18:16
[136]

Grzybiarz [ Badacz Ściółek ]

Witam. Poszukuję aktualnego PHP Apacha i MySQL ( php i MySQL koniecznie w wersjach 5.x )
Ale problem pojawia się gdy poszukuje czegoś na wzór krasnala... bo nie mogę znaleźć. A nie chce mi się bawić z ręcznie dodawania komponentów... Krasnala już długo nie aktualizowali a nic innego znaleźć nie moge. Pomożecie?
Pozdro!

23.12.2006
18:18
smile
[137]

Marcio [ Bleeee ]

Webserv.pl

23.12.2006
18:22
smile
[138]

Grzybiarz [ Badacz Ściółek ]

Szybko i konkretnie. Za to własnie lubię to forum. Dziękuję :)

25.12.2006
19:32
smile
[139]

chickenom [ ]

Witam ponownie, mam dwie sprawy:

1). Potrzebuję skryptu java/php, który podmieniałby obrazek1 po najechaniu na niego myszką na obrazek2. Wiem, że napewno można coś takiego zrobić, ale niestety moje umiejętności są za małe :P

2). Czy to co czytałem na nazwa.pl o domenach za 9.90 / rok za domenę .pl/.com/.org itp to prawda? Czy jest tam jakiś haczyk? :P

25.12.2006
20:12
[140]

slowik [ NightInGale ]

ad 1.w css masz cos takeigo jak :hover jest problem z tym jesli chcesz zastosowac w innym miejscu nizeli <a> ie nie obsluguje :/ a moze w 7.0 poprawili to ....

25.12.2006
20:14
[141]

Marcio [ Bleeee ]

2) koniecznośc dalszego przedłużenia na następny rok

25.12.2006
20:24
smile
[142]

Apocaliptiq [ Parapsychic Man ]

chickenom ---> coś takiego:


<a href=" onMouseOver='rollover.src="nazwa.gif"'
onMouseOut='rollover.src="../grafika/hand.gif"'>
<img src="nazwa.gif" name="rollover" border="0"></a>

Czyli skrypt typu rollover

Witam wszystkich. Zauważyłem karczmę, pomyślałem że zawitam:) Oto moja strona:

25.12.2006
20:56
smile
[143]

Apocaliptiq [ Parapsychic Man ]

Mam pytanie. Jaki kompilator do Javy? Mam jeden z książki ale trzeba się zarejestrować na stronie www.borland.com ...próbowałem ale w połowie pytań zadawanych odpadłem:P Jest jakaś lewatywa....tfu! alternatywa?

25.12.2006
21:31
[144]

hotDog [ Outsider ]

Ja ściągnąłem ze strony głównej Sun'a. Jest kilka wersji i dostępne są za free.

Obsługa przez wiersz poleceń.

25.12.2006
21:37
smile
[145]

hotDog [ Outsider ]

edit:

dodatkowo wygrzebałem coś z wykładu:


Dokumentacja oraz kompilator sa˛ doste˛pna ze strony SUN
Microsystems:

Kopia lokalna dokumentacji znajduje si ˛e na serwerze
icis.pcz.pl w sekcji zasoby -> Dokumentacja na ICIS
S´ rodowisko Eclipse jest doste˛pne na stronie:

26.12.2006
23:03
[146]

Grzybiarz [ Badacz Ściółek ]

mam pytanie dotyczące funkcji preg_match_all.
A mianowicie na rysuinku obok mam tą funkcję juz użyta i co oznaczają te krzaczki... Znaczy wiem, że wyszukują jakiś tam ciąg znaków ale nie iwem dokładnie jaki :D Mógłby ktoś słownie wyjaśnić co one "robią" ?

pozdrawiam.

26.12.2006
23:22
[147]

Grzybiarz [ Badacz Ściółek ]

a se upnę...

26.12.2006
23:42
[148]

hotDog [ Outsider ]

POSIX. Wyrażenia regularne. Bardzo przydatna sprawa


26.12.2006
23:43
[149]

wi3dzmin [ Konsul ]

Grzybiarz -> sprawa pierwsza, wątków seryjnych się nie upuje, ci co tu wchodzą i tak tu wejdą, więc upowanie nic nie da...

-> sprawa druga, te krzaczki to po prostu symbole oznaczające ciągi, nie będę ci tego dokładnie wyjaśniał, ale zasad jest taka, że do tej funkcji wpisuje się specjalny ciąg znaków oznaczający np. dowolnie długi ciąg cyfr, albo ileś tam krotnie powtórzony dany znak, jest to całe zagadnienie i najlepiej poszperaj w jakiś kursach lub manualu, ale zasada jest podobna do tej gdy np w wyszukiwarkach wpisujesz * jako dowolny ciąg znaków... to działa podobnie :)

Heh a ja właśnie przesiadłem się z krasnala na ten Webserv co podał Marcio i wygląda to ładnie, działa całkiem sprawnie, podczas gdy z krasnalem miałem ciągłe problemy... co prawda trochę się namęczyłem przy instalacji, ale na plus tego serwera trzeba zaliczyć dobre forum gdzie bez trudu znalazłem szczegółowe informacje jak sobie poradzić :)

27.12.2006
00:06
[150]

Grzybiarz [ Badacz Ściółek ]

No rzecz w tym, że na stronkach o php biednie jest o tym :) A na stronkach PERLA nic nie czaje ;) no nic przejrze ten link co podali...
Generalnie wiem co poszczególny "krzaczek" oznacza, ale nie za bardzo wiem co dokładnie oznacza taka kombinacja tych znaczków... :)

27.12.2006
10:22
[151]

chickenom [ ]

Witam.Ppotrzebuję kodu na to, by zamienic buttona o type=reset, na obrazek własny, który również czyściłby formularz. Z góry dzięki.

27.12.2006
10:30
[152]

Regis [ ]

A probowales CSS'em ustawic temu przyciskowi tlo?

27.12.2006
10:34
[153]

hotDog [ Outsider ]

Grzybiarz --> przeczytaj ten artykuł z mojego linku.

Te znaczki oznaczają po prostu pewien wzorzec poszukiwań. np. chcesz żeby znalazł wyraz w tekście który składa się tylko z małych liter to piszesz wzorzec [a-z] itd.

27.12.2006
11:27
[154]

Grzybiarz [ Badacz Ściółek ]

Tak, rozumiem. Napisałem już wcześniej że ja wiem co oznaczają znaczki ale naprzykład znacze # jest dla mnie niezidentyfikowany. Po za tym bebechy tego największego nawiasu, to w samym środku też tego nie rozumiem. Mimo wszystko jak ktoś będzie wiedział czego dokłądnie będzie szukać ten skrypcik. Jest mi to bardzo potrzebne :)
pozdro!

27.12.2006
15:30
[155]

hotDog [ Outsider ]

To ja nie rozumiem czego Ty nie rozumiesz.

"Bebechy" masz wytłumaczone w moim poprzednim linku + ogromna liczba stron na google.

Znaczek #?

Każdy wzór musi być ograniczony jakimiś ogranicznikami. Może to być dowolny znak byle nie był znak lub cyfra oraz backslash ('\'). Może to być | / . - * # i podobne lub para ‹› [] <>.

28.12.2006
03:09
[156]

nagytow [ Firestarter ]

chickenom -->

Witam ponownie :)

1). A moze byc w css? :)


hotDog -->

Podziwiam cierpliwosc :)

28.12.2006
09:30
smile
[157]

chickenom [ ]

nagytow -> cześć, już myślałem, że nie żyjesz ;]

Jasne, może być i za pomocą cssa. Byleby działało :]

28.12.2006
13:20
[158]

nagytow [ Firestarter ]

chickenom -->

Efekt rollover za pomoca cssa wymaga zrobienia obrazka, ktory bedzie 'sklejony' z dwoch innych, tego przed najechaniem mysza i tego po. Przyklad:



Kod:

<html>
<head>
<style type="text/css">
a#roll

display: block;
width: 200px;
height: 150px;
background: url(pic.jpg) no-repeat;

a#roll:hover

background-position: 0 -150px;

</style>
</head>
<body>
<a id="roll" href="#"></a>
</body>
</html>

width to oczywiscie szerokosc obrazka, a height to wysokosc, przy czym wysokosc jednego obrazka, a nie sklejonego. W hover okreslamy, ze po najechaniu mysza obrazek ma sie przesunac o 0 pikseli w poziomie i 150 pikseli do gory, czyli wyswietli sie ten drugi.

Tu masz dzialajacy przyklad:



PS. Chcialem zobaczyc jak tam postepy na stronie, ale widze, ze nie dziala. Wyrzuciles juz calkiem? ;)

29.12.2006
11:06
smile
[159]

chickenom [ ]

<- nagytow -> dzięki, odpalę u siebie i ozbaczę jak działa :)

A stronka cały czas idzie do przodu. W zasadzie pozostało mi już tylko dodać komenatrze do newsów i wrzucić resztę artów. No i powiększyć możliwości panelu admina :D

29.12.2006
11:07
smile
[160]

Apocaliptiq [ Parapsychic Man ]

Jak zrobić żeby tekst na stronie nie mógł być zaznaczony? Wyleciało mi z głowy:P

29.12.2006
11:20
[161]

chickenom [ ]

Apocaliptiq -> skrypt java jak mniemam, ale nie powiem Ci jak się nazywa bo sam nie wiem :). Poszukaj w googlach, pełno tego w sieci.

nagytow -> tak a propos: :]

29.12.2006
17:03
[162]

nagytow [ Firestarter ]

chickenom --> hehe, dzieki :)

Apocaliptiq --> chodzi o sam fakt zaznaczenia tekstu czy uniemozliwienie jego skopiowania?

04.01.2007
19:49
smile
[163]

chickenom [ ]

nagytow -> Dzięki za poprawienie tych plików, działa superowo, nie jestem pewien czy złapie Cie na gadu, więc podziękuję tutaj, bo wiem, że tu zajrzysz :D

06.01.2007
14:09
[164]

gromusek [ Piwa dajcie ! ]

Witam.
Pewnie w necie gdzies jest ale potrzebuje szybkiej pomocy:

Potrzebuje zrobic miniaturke obrazka (tylko nie wiem jakiej wielkosci bo jak bedzie za duza to sie strona rozleci) i po kliknieciu w nia w nowym oknie najlepiej takim bez paskow na gorze etc. bylo zdjecie w pelnych rozmiarach

06.01.2007
14:15
[165]

hctkko [ The Prodigy ]

<a href="obrazek.jpg" target="top"><img src="obrazek.jpg" width=111 height=111 border=0></a>

06.01.2007
14:35
[166]

gromusek [ Piwa dajcie ! ]

hctkko >>> dziekuje. Ale czy jak pelny zajmuje powiedzmy 1mb to miniatura bedzie musiala wgrac caly czy jak to jest?

06.01.2007
14:43
[167]

hctkko [ The Prodigy ]

W tym przypadku cały. Najlepiej zainstaluj sobie program IrfanView ( ) zmniejsz obrazek, a miniaturkę wrzuć na serwer. Wtedy musi to wyglądac tak:
<a href="obrazek.jpg" target="top"><img src="miniaturka.jpg" border=0></a>

06.01.2007
14:49
[168]

wi3dzmin [ Konsul ]

gromusek, wtedy wczyta ci się cały wielki plik graficzny, ale będzie "zgnieciony", słowem powyższy przykład jest hmm do bani :P

Najpierw musisz ręcznie przygotować miniaturki w jakimś programie graficznym, potem robisz coś takiego:

<a href='/duze/obrazek.jpg' target='_blank'><img src='/male/obrazek.jpg'></a>

gdzie w folderze duze jest duża wersja obrazka, a w "male" jest miniaturka :)


Co do braku tych pasków w oknie to jest to okienko pop up w javascripcie, najłatwiej to znajdziesz w google, w jakiś przykładowych skryptach

06.01.2007
15:02
[169]

gromusek [ Piwa dajcie ! ]

hctkko >> dzieki ;] o to mi chodzilo

06.01.2007
15:26
[170]

.Jacek 99. [ Senator ]

gromusek - ewentualnie jakbys chcial cos do robienia miniaturek na w locie(bez zapisywania na dysk) to kiedys sklecilem prosty skrypcik.


<a href="sciezka do obrazka" target='_blank'>
<img src='Ścieżka do skryptu?path=sciezkadopliku'>
</a>

Przykladowe wywolanie

domyslnie obrazek zatrzyma proporcje i zmiesci sie w wymiarze 300x200

Mozna dodac &i=1 wtedy proporcje zostana zignorowane i miniaturka bedzie dokladnie 300x200


mozna dodac wygladzanie &r=1


mozna zmienic kompresje (dla jpg , domyslne ustawienie to 65) &c=xxx gdzie xxx to liczba calkowita do 100




Taka ciekawostka, ale fakt lepiej zrobic miniaturki na stale zeby nie obciazac serwera. Mozesz tez wyszukac skrypt zmniejszajacy obrazki podczas uploadowania przez stronke (banalny skrypcik, na pewno jest ich duso), no i czesto w cpanelu sa zimplementowane (a cpanel czesto masz na serwerze do dyspozycji.


Ps. wszystkie opcje mozna na stale zmienic w pliku settings.php :P

08.01.2007
16:16
[171]

umek [ Szczęśliwy ]

Czy można jakoś 'pobrać' datę i godzinę w php, bez robienia tego jakąś skomplikowaną funkcja wykorzystującą time()?

08.01.2007
17:47
[172]

nagytow [ Firestarter ]

Tak, bardzo przyjemna funkcja date :)

Popatrz na tabele i example 4.

08.01.2007
18:58
[173]

umek [ Szczęśliwy ]

Dzięki, fajne, myślałem, że będę przeliczał sekundy od iluś tam lat :]
Niedługo wrócę z następnymi pytaniami:P

09.01.2007
22:08
[174]

umek [ Szczęśliwy ]

Chcę zrobić log osób wchodzących na stronę- jaka komenda pobiera IP wchodzącego?

09.01.2007
22:14
[175]

Marcio [ Bleeee ]

zmienna $_SERVER['REMOTE_ADDR']

10.01.2007
00:41
[176]

.Jacek 99. [ Senator ]

Ja zadam pytanko z PHP.

Ostatnio robilem stronke z sesja i to ustrojstwo wygasa po krotkim czasie. Z tego co czytalem to wygasanie jest rowne wartosci session.gc_maxlifetime czyli 24 minuty. Ustawialem lokalnie (serwer dzielony) na wieksze wartosci i nadal sesja jest krotka, zmienialem lokalizacje plikow sesji (ale cos nie widzialem plikow, wiec moze cos nie tak) i nadal nic.

Jak zmusic sesje do dluzszego zycia?

Myslalem ze moze sprawdzic czy uzytkownik przeslal ciacho i jak jest to wczytac dane i kontynuowac, ale powinno byc cos prostszego.

10.01.2007
08:49
[177]

nagytow [ Firestarter ]

Hmm... Jesli nie ustawisz inaczej, to sesja zyje dopoki uzytkownik ma otwarta strone w przegladarce - na pewno nie zrobiles jakiegos bledu w kodzie?

10.01.2007
09:02
[178]

gromusek [ Piwa dajcie ! ]

.Jacek 99. >>> sory ze nie odpisywalem na poprzedniego posta ale po prostu tutaj nie wchodzilem. Skrypty nie wchodza w gre bowiem potrzebowalem tylko miniatur na allegro ;] ale i tak dziekuje za checi

10.01.2007
16:47
[179]

umek [ Szczęśliwy ]

Robię sobie skrypt, który podczas logowania zapisze dane... co sądzicie o czymś takim:
$file=fopen("log.txt", "a+");
$tekst="At '.date("d.m.Y, G:i e").' '.$_SERVER['REMOTE_ADDR'].' attemps to
login as '.$_POST['login'].'...";
fwrite($file, $tekst);
IF check($_POST['login'], $_POST['password'])==TRUE then $tekst="Login OK"
ELSE $tekst="Login error (password '.$_POST['password'].')";
fwrite($file, $tekst);
fclose($file);

10.01.2007
17:17
smile
[180]

marcin94 [ Piesiec ]

Witam! Mam problem :/ Napisałem(wygenerowałem) stronę w XHTML i mam ją ze stylami w .css. Wrzuciłem ją na yoyo.pl i nie działa :( Na jakim darmowym serverze będzie chodzić XHTML i CSS ?

10.01.2007
17:33
[181]

umek [ Szczęśliwy ]

hmm, prv? A dlaczego xHTML, nie HTML?

EDIT: w nagłówku masz darmowe servy

10.01.2007
17:39
[182]

.Jacek 99. [ Senator ]

nagytow - sesja zyje domyslnie wlasnie tyle ile jest ustawione globalnie w session.gc_maxlifetime. Sprawdzalem i wylaczalem przegladarke (trzyma sesje), ale po okolo 30 minutach (nie patrzylem dokladnie 24:P sesja wygasa.

O jaki blad sobie chodzi, przeciez wystarczy na podactku pliku dac session_start(); i sesja sie bedzie odnawiac przy wczytaniu stronki. A jako ze wszystyko dziala cacy, wiec nie sadze bym zamieszal cokolwiek. Chce jeno sesje prosciutko wydluzyc.

10.01.2007
17:41
[183]

.Jacek 99. [ Senator ]

marcin94 - jezeli masz css w osobnym pliku to moze zle sciezke podales?, ewntualnie jakis blad w css moze?

10.01.2007
17:46
[184]

umek [ Szczęśliwy ]

Nie ma nikt ochoty zobaczyć moich małych bzdur?

10.01.2007
17:47
[185]

nagytow [ Firestarter ]

umek -->

$_SERVER['REMOTE_ADDR'] nie zawsze zawiera prawdziwy adres IP uzytkownika. Jesli uzywa on serwera proxy zobaczysz tylko IP serwera. Mozesz skorzystac z $_SERVER['HTTP_X_FORWARDED'] i $_SERVER['HTTP_X_FORWARDED_FOR'] oraz $_SERVER['HTTP_FORWARDED'] i $_SERVER['HTTP_FORWARDED_FOR']. Spojrzyj sobie tutaj:


Druga sprawa to sam log. Zapisujesz w nim loginy i dobre hasla. Czyli nie ma sensu przechowywac hasel zaszyfrowanych, bo w logu i tak sa ladnie napisane, wystarczy postarac sie o loga.


marcin94 -->

Nie ma mozliwosci, aby strona w czystym (X)HTMLu nie dzialala na jakims serwerze. Upewnij sie, ze wszystko poprawnie zrobiles.


.Jacek 99. -->

Zle zrozumialem twojego posta. Myslalem, ze sesja wygasa ci jeszcze zanim uzytkownik zamknie przegladarke. W takim razie moze napisz do czego ci to potrzebne? Jestem ciekawy po co trzymac sesje dluzej :)

10.01.2007
17:49
[186]

umek [ Szczęśliwy ]

nie, zapisuje tam tylko BŁĘDNE hasła

10.01.2007
17:53
[187]

nagytow [ Firestarter ]

A faktycznie, sorki :)

10.01.2007
18:02
[188]

.Jacek 99. [ Senator ]

nagytow - robie stronke, takie cos ala GOL. Chce zeby uzytkownik wracajac byl zalogowany ;P

10.01.2007
18:04
[189]

umek [ Szczęśliwy ]

Zrób automatyczne logowanie na początku po IP, przed uruchomieniem strony?

BTW: ty jesteś Nagytow, nie Negatyw...aaa...

10.01.2007
18:16
[190]

.Jacek 99. [ Senator ]

umek - no to niezle galy beda robic uzytkownicy neostrady jak po wejsciu na strone wejda na cudze konto (zmienne ip :) )

10.01.2007
18:19
[191]

umek [ Szczęśliwy ]

jak rekurencyjnie zamienić liczbę z systemu trójkowego na dziesiętny? Tak jak odwrotnie (dzieląc trójkową przez 10 i bawić się resztą)?

10.01.2007
18:19
[192]

umek [ Szczęśliwy ]

eee... zapomniałem... ja NIE mam zmiennego IP:P


sry, mogłem edytować

10.01.2007
19:02
[193]

nagytow [ Firestarter ]

.Jacek 99. --> Takie rzeczy robi sie za pomoca cookiesow. Cookie zachowuje informacje o uzytkowniku. Ze zmiennym IP userzy mieliby zabawe.

10.01.2007
19:11
[194]

nagytow [ Firestarter ]

umek -->

Sorki, nie zauwazylem twojego pytania. Czy musi to byc rekurencja? Przeciez zamiana jest banalna.

Przyklad:

1012(3) = 1*3^3+0*3^2+1*3^1+2*3^0 = 27+3+2 = 32(10)

10.01.2007
19:46
[195]

.Jacek 99. [ Senator ]

nagytow - jak pisalem zastanawialem sie nad sposobem bez pobierania z ciasteczek. Bo niby mozna przedluzyc sesje, ale nie dziala to.

Czyli pozostaja ciacha jako zrodlo informacji.

10.01.2007
20:16
[196]

nagytow [ Firestarter ]

.Jacek 99. --> Tak, ale ciacha to najpopularniejsza metoda korzystania z autologowania. W koncu musisz miec jakies potwierdzenie tozsamosci uzytkownika.

10.01.2007
23:19
[197]

umek [ Szczęśliwy ]

ty, dobra metoda^^
Trochę w tym bawienia się jest, czy rekurencyjnie to by było
int triple (int liczba)

int reszta = liczba %10;
if(liczba>9) triple (liczba/10);
return reszta;

11.01.2007
10:47
[198]

nagytow [ Firestarter ]

umek --> Niestety, tak nie przejdzie. liczba z twojego kodu jest w systemie trojkowym, czyli musisz zaimplementowac w tym systemie wszystkie dzialania, z ktorych korzystasz. Uzywasz dzielenia i i reszty z dzielenia, ale nigdzie ich nie zdefiniowales, tzn komputer bedzie dalej liczyl w systemie dziesietnym zamiast w trojkowym. 10 w systemie trojkowym to 3 w dziesietnym, a nie dziesiec. W systemie trojkowym nie ma cyfry 9, a wiec to juz jest calkiem bez sensu.

Wg mnie wersja iteracyjna jest prostsza i bardziej intuicyjna, wystarczy taki algorytm:
- potega=0
- wynik=0
- dopoki liczba zawiera jakies cyfry wykonuj:
-- niech cyfra to ostatni znak liczby
-- pomnoz ja przez 3 do potegi potega
-- dodaj rezultat do wynik
-- zwieksz potega o 1
-- usun ostatnia cyfre z liczby

Mam nadzieje, ze to dosc jasne. Jesli koniecznie upierasz sie przy wersji rekurencyjnej, to daj znac. No i napisz w jakim jezyku to piszesz :)

11.01.2007
12:34
[199]

umek [ Szczęśliwy ]

dzięki... wolałbym rekurencyjnie, ale ja nie potrafię tego napisać... w takim razie zrobię to iteracyjnie... piszę w pascalu albo cpp

11.01.2007
13:57
[200]

umek [ Szczęśliwy ]

Dobra, zakładając, że
int tri (int liczba)

int reszta = liczba %3;
if(liczba>2) triple (liczba/3;
return reszta;

zamienia liczby z dec na tri, to mam zrobione zadanie (ostatnie z próbnej matury), dzięki... teraz wracam do robienia strony:]

11.01.2007
19:19
[201]

nagytow [ Firestarter ]

Skoro uzywasz C/Pascala, to jestesmy troche w zlym watku ;) Poprawiony kod raczej tez nie zadziala, bo wezmy liczbe w systemie trojkowym 1010(3). Wynosi ona 30 w systemie dziesiatkowym. Natomiast w twoim programie, jesli zrobisz dzielenie liczba/3 dostaniesz wynik 336. Jesli sie upierasz na wersje rekurencyjna to ja bym chyba zrobil tak (kod w pseudo php, ale chyba cie nakieruje):

function triple(liczba, potega=0)

if (liczba=='') return 0;
return liczba[strlen(liczba-1)]*3^potega+triple(substr(liczba,0,-1),potega+1)


Pisane ad hoc, ale mniej wiecej chyba dziala. Trik polega na tym, ze analizujemy liczbe od konca i kazde kolejne wywolanie rekurencyjne bierze ostatnia aktualna liczbe i mnozy przez 3 do odpowiedniej potegi. Przyklad:

liczba = 1012(3)

triple(1012):
-| 1012 != '' czyli:
-| return 2*3^0 + triple(101,1):
----| 101 != '' czyli:
----| return 1*3^1 + triple(10,2):
-------| 10 != '' czyli:
-------| return 0*3^2 + triple(1,3):
----------| 1 != '' czyli:
----------| return 1*3^3 + triple('',4):
-------------| '' == '' czyli zwracamy 0 i konczymy wywolania rekurencyjne

Teraz idac 'do gory' zliczamy wynik:

1*3^3 + 0*3^2 + 1*3^1 + 2*3^0 = 27 + 0 + 3 + 2 = 32

Czyli 1012(3) = 32(10)

Nie jestem pewien dlaczego uparles sie na rekurencje (w tresci tak jest?), ale generalnie jesli piszesz program do zamiany z trojkowego na dziesietny, to latwiej jest zrobic wersje iteracyjna. Z kolei program do zamiany z dziesietnego na trojkowy lawo jest napisac uzywajac rekurencji.

11.01.2007
22:25
[202]

wi3dzmin [ Konsul ]

łojezu ;D

A ja mam pytanie z dziedziny java script

Jak pobrać pozycję kursora na stronie? w takiej formie jak pozycjonowanie warstw czyli top, left itp

11.01.2007
23:56
[203]

umek [ Szczęśliwy ]

wiem, nagytow dzięki... po prostu o ile iteracja 3-10 jest dla mnie prosta, o tyle w drugą stronę nie:] Jak dasz mi to, to zrobię...

12.01.2007
11:22
[204]

yasiu [ Generaďż˝ ]

jako że po raz pierwszy to witam :)

mam sprawę taką, może tu uzyskam odpowiedź szybciej niż sam pałująć się metodą prób i błędów...

mianowicie - mam tabelę/formularz zawierający kilkaset wierszy - formularz pobiera dane na temat imienia i nazwiska z jednej tabeli, obok kazdej pozycji są trzy pola wyboru - pole a pole b i pole c wypelnione danymi z 3 roznych tabel

o co chodzi - za pomocą tego formularza chcę uzupełnić tabelę która na razie zawiera tylko imię i nazwisko o dane z trzech pól wyboru (czyli do trzech kolumn po imieniu i nazwisku wprowadzic id wybrane w polu a, b i c) dla kazdej kolejnej pozycji w bazie...

pytanie jak to zrobić - jak przekazac taki zestaw danych

id kolejnej pozycji w formularzu, id pozycji z pola a, id pozycji z pola b i id pozycji z pola c

i tak dla kazdej pozycji z formularza...

pomocy :)

edit - dodam ze w tej chwili za pomocą metody POST przekazuje mi tylko ostatnią pozycję... domyślam się, że każde pole wyboru powinno zawierać id odpowiadające danemu imieniu i nazwisku ale nie wiem jak to rozwiązac :/

12.01.2007
11:52
[205]

nagytow [ Firestarter ]

wi3dzmin -->




umek -->

Dla 10->3 rekurencja jest latwa, ale jak chcesz to masz wersje iteracyjna (ad hoc, php):


$licznik=0;
while ($liczba!=0)

$tab[$licznik]=$liczba%3;
$licznik++;
$c=intdiv($liczba,3); // funkcja umozliwiajaca dzielenie calkowite, w pascalu div
$liczba=$c;



yasiu -->

Mozesz podac jakis konkretny przyklad? Nie do konca rozumiem o co chodzi.

12.01.2007
11:55
[206]

yasiu [ Generaďż˝ ]

mam nadzieję, że się zmieści

<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=iso8859-2">
<title>edycja pracowników</title>
</head>
<body>
<?php

// $departament[0] - id departamentu
// $departament[1] - nazwa departamentu
//
// $stanowisko[0] - id stanowiska
// $stanowisko[1] - nazwa stanowiska
//
// $grupa[0] - id grupy
// $grupa[1] - nazwa grupy

if ( $_POST ) ‹
echo "zapodano dane";
echo $_POST["form_dep3"]."<br>";
› else ‹

$link = mysql_connect('localhost', '*, '*') or die ("Nie masz uprawnien");

mysql_select_db("sop");

$sql = "SET NAMES latin2";
mysql_query ($sql);

// zaczytanie listy departamentów

$query = "SELECT * FROM departamenty ORDER BY nazwa";

// je¶li kwerenda się udała zaczytujemy do łańcucha

if( $result_dep = mysql_query( $query ) ) ‹
$licznik=0;
while ( $dep = mysql_fetch_array( $result_dep ) ) ‹
$departament[$licznik][0] = $dep[0];
$departament[$licznik][1] = $dep[1];
$licznik++;


› else ‹
echo "bł±d kwerendy";


// zaczytanie listy stanowisk

$query = "SELECT * FROM stanowiska ORDER BY nazwa";

if( $result_stan = mysql_query( $query ) ) ‹
$licznik=0;
while ( $stan = mysql_fetch_array( $result_stan ) ) ‹
$stanowisko[$licznik][0] = $stan[0];
$stanowisko[$licznik][1] = $stan[1];
$licznik++;


› else ‹
echo "bł±d kwerendy";


// zaczytanie listy grup stanowisk

$query = "SELECT * FROM grupy_stanowisk ORDER BY nazwa";

if( $result_grupy = mysql_query( $query ) ) ‹
$licznik=0;
while ( $grup = mysql_fetch_array( $result_grupy ) ) ‹
$grupa[$licznik][0] = $grup[0];
$grupa[$licznik][1] = $grup[1];
$licznik++;


› else ‹
echo "bł±d kwerendy";


// kwerenda do wczytania pracowników i rozpoczęcie formularza

$query = "SELECT * FROM pracownicy ORDER BY nazwisko";

echo "<form name=\"pracownicy\" action=\"edytor.php\" method=\"post\"><table>";

if( $result = mysql_query( $query ) ) ‹

while ( $pracownik = mysql_fetch_array( $result ) ) ‹
echo "<tr>";
echo "<td>$pracownik[1]</td><td>$pracownik[2]</td>";
// pole wyboru departamentu
echo "<td>";
echo "<select name=\"form_dep\">";
foreach ( $departament as $departament_num ) ‹
echo "<option value=\"$departament_num[0]\">$departament_num[1]</option>";

echo "</select>";
echo "</td>";
// pole wyboru stanowiska
echo "<td>";
echo "<select name=\"form_stan\" id=\"$pracownik[0]\">";
foreach ( $stanowisko as $stanowisko_num ) ‹
echo "<option value=\"$stanowisko_num[0]\">$stanowisko_num[1]</option>";

echo "</select>";
echo "</td>";
// pole wyboru grupy stanowisk
echo "<td>";
echo "<select name=\"form_grupa\" id=\"$pracownik[0]\">";
foreach ( $grupa as $grupa_num ) ‹
echo "<option value=\"$grupa_num[0]\">$grupa_num[1]</option>";

echo "</select>";
echo "</td>";
echo "</tr>";


› else ‹
echo "bł±d kwerendy";


// zamknięcie formularza

echo "<input type=\"submit\" value=\"dodaj\" />";
echo "</table></form>";



?>
</body>
</html>

i pytanie - jak ma wyglądać fragment kodu który wszystkie zapodane w formularzu dane wprowadzi do bazy na podstawie id zebranego z $pracownik[0]

12.01.2007
12:13
[207]

nagytow [ Firestarter ]

Chodzilo mi bardziej o przyklad tabeli (wiersza), ale kod wystarczyl. Tak wlasnie nie bylem pewien co rozumiesz przez pole wyboru - radio button czy liste rozwijalna. Teraz przestalem rozumiec twoj problem, tzn skoro byles w stanie napisac takie cos, to chyba powinienes sobie poradzic z update'ami ;)

Nie znam nazw kolum, wiec uzyje podobnych.

Zmiana ustawien pracownika:

<?php
$query = "update pracownicy set departament='".$_POST['form_dep']"', stanowisko='".$_POST['form_stan']."', grupa='".$_POST['form_grupa']."' where id=''"; // musisz przekazac id pracownika do edytor.php
$result = mysql($query);
?>

12.01.2007
12:31
[208]

wi3dzmin [ Konsul ]

nagytow -> poradziłem sobie wcześniej z tym sam :) ale dzięki za zainteresowanie.

12.01.2007
12:43
[209]

yasiu [ Generaďż˝ ]

nagytow -> problem w tym, że _POST przekazuje mi tylko ostatnią pozycję, a ja chcę wszystkie :/

co bym mógł sobie zrobić pętlę zczytującą po kolei dane przekazane z formularza

12.01.2007
14:07
[210]

umek [ Szczęśliwy ]

nie możesz zrobić kilku formularzy? dziwne jest robienie takiej pętli... nie możesz zrobić czegoś warunkowego, gdzie każde użycie formularza zmienia licznik, a wtedy zamiast pętli po prostu kilka razy użyć formularza?

Swoją drogą, czy ktoś znudzony mógłby mi sprawdzić umcio.com/index.rar ?

Czy nie powinniśmy założyć nowego odcinka wątku?

12.01.2007
14:39
[211]

Marcio [ Bleeee ]

umek -> poczytaj o ochronie przed sql injection, bo jak widze w index.php
$akcja=mysql_query("SELECT haslo FROM users WHERE login=$_POST['login']");
to niedobrze mi sie robi :P
w admin.php
<A href="'.$_SERVER['PHP_SELF'].'?strona=dodajnewsa">Dodaj Newsa</A><br>
<A href="'.$_SERVER['PHP_SELF'].'?strona=dodajusera">Dodaj Usera</A><br>

dorzuc strip_tags() lub zastap czyms innym $_SERVER['PHP_SELFT'] bo teraz ktos moze ci wykrasc np ciasteczko z haslem

$plik = basename($_GET['strona']);
if(file_exists(''.$plik.'.php'))‹
include (''.$plik.'.php');
›else‹
echo 'Wybrana podstrona nie istnieje!'›;

Poczytaj lepiej o bezpiecznym includowaniem plikow, bo includowanie plikow a bezpieczne includowanie plikow to 2 rozne rzeczy.

Dodaj ograniczenie dlugosci textu zapisywanego do pliku z logami bo ktos bez problemu moze ci zapchac ten plik do ogromnej wielkosci
dalej nie chce mi sie sprawdzac zbytnio ale wszedzie widze wlasnie brak ochrony przed xss i sql injection

12.01.2007
14:47
[212]

.Jacek 99. [ Senator ]

nagytow - Dzieki, wlasnie tak myslalem ze ciacha to "ta" opcja. Milo wiedziec ze mialem racje.

Pozdrawiam

12.01.2007
15:12
[213]

yasiu [ Generaďż˝ ]

umek - mam ponad 400 pozycji do wprowadzenia, z lenistwa nie chce mi sie klikac za kazdym razem dodaj :) tzn. i tak to robie bo termin goni, jak skoncze calosc bede optymalizowal :)

12.01.2007
16:18
[214]

umek [ Szczęśliwy ]

1. Czy wystarczy $safelogin=addslashes($_POST['login']); $akcja=mysql_query("SELECT haslo FROM users WHERE login=$safelogin") ?

2. nie rozumiem zastosowania strip_tags tutaj, gwoli bezpieczeństwa może opuszczę po prostu '.$_SERVER['PHP_SELF'].'...

3. Przejrzałem parę manuali i nadal nie wiem... mam wyznaczyć zakres, spośród których wartości get'a strona ma być includowana?

12.01.2007
16:29
[215]

umek [ Szczęśliwy ]

Zna ktoś z was ngsec.com? tam jest gra typu hackme... niestety, już na 2 planszy nie mam pojęcia, co (kto?) to jest referer...

12.01.2007
17:43
[216]

nagytow [ Firestarter ]

yasiu -->

Chcesz przekazac wszystkie wartosci z kazdej listy rozwijalnej? Czyli jesli np jseli mamy taki wiersz w tabeli:

1 | Jan | Kowalski | [departament] | [stanowisko] | [grupa]

i opcjami do wyboru w liscie stanowisko by byly: sprzedawca, magazynier, pakowacz, kierownik, manager to chcesz przekazac formularzem wszystkie piec? Nie tylko ta jedna wybrana?

umek -->

Zwykle w loginie nie ma zadnych tagow HTML, ale jesli chcesz przeprowadzic atak XSS czy SQL injection, dodajesz rozne rzeczy do pol formularza, jakis skrypt java, czy zapytanie SQL. Funkcja strip_tags(string) usuwa wszystkie tagi z lancucha, tak wiec atak XSS nie zadziala.
Jesli chodzi o includy, to twoj skrypt umozliwia dodanie dowolnego pliku, niekoniecznie twojego, np moge recznie wpisac adres:



i twoj skrypt oczywiscie doda moj plik do twojej strony.

Co do gry, to wciaz nie dostalem emaila.

12.01.2007
17:59
[217]

nagytow [ Firestarter ]

Nowa czesc:

https://forumarchiwum.gry-online.pl/S043archiwum.asp?ID=5880745&N=1

17.02.2007
12:49
[218]

bolo2006 [ Junior ]

umek -->
co do ngsec i pomocy:

ten level przejdziesz przy pomocy telneta na port 80 lub innego triku pozwalającego dobrać ci się do protokołu http - poczytaj najlepiej RFC od HTTP. Referer to twoj identyfikator (powiedzmy że coś w tym stylu) generalnie muszisz okłamać servis że jesteś z wewnątrz niego aby dokonać autoryzacji. Jest wiele pól w nagłówku http które są przekazywane (albo mogą być) przekazywane podczas połączenia www mimo iż ich nie widać na pierwszy rzut oka. Proponuję abyś albo sobie to doczytał albo sprawdził instalująć odpowiednie narzędzia (skanery sieci, przechwytywacze i interpretatory protokołu http lub coś w tym stylu).

pozdro
BOLO
byłem tu okazyjnie ..... :D

© 2000-2024 GRY-OnLine S.A.