![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 68 Pomógł: 1 Dołączył: 7.06.2009 Skąd: Sanok Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Piszę system newsów na swoja stronę, mam już dodawanie, wyświetlanie, edycje. Nie działa to jeszcze w 100% sprawnie. Link: http://91.121.10.107/busines/index.php Po zalogowaniu jako admin mam pod każdym newsem przycisk Edytuj news. Jeżeli go nacisnę pokazują mi sie wszystkie newsy do edycji, oraz gdy coś edytuje to edytują się także wszystkie newsy. Więc tutaj pytanie: jak zrobić aby było tak jak powinno? Nie będę śmiecił i wklejał tutaj wszystkie pliki, myślę że wiecie o co mi chodzi. Moje zapytania do bazy wyglądają tak:
wiem że trzeba dodać w zapytaniu WHERE (przynajmniej tak mi się wydaje) ale niestety nie wiem co i jak. Proszę o pomoc, jeżeli będzie potrzeba dodam wszystkie pliki. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 4 069 Pomógł: 497 Dołączył: 11.05.2007 Skąd: Warszawa ![]() |
daj where id=$id gdzie $id to id edytowanego newsa
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 68 Pomógł: 1 Dołączył: 7.06.2009 Skąd: Sanok Ostrzeżenie: (0%) ![]() ![]() |
jak dodam WHERE `id` = '$id' to niestety ale po kliknieciu w edytuj nic sie nie pokazuje. Może jednak dam pliki:
news_pokaz.php: http://wklej.org/hash/d4dac7d52a/ news_edytuj.php: http://wklej.org/hash/ef78afbfbf/ news_edytuje.php: http://wklej.org/hash/7fa3455610/ Wiem że jest to dość opornie zrobione ale jak na mój pierwszy system news myśle że dobrze. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 678 Pomógł: 124 Dołączył: 26.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
Do news_pokaz.php dodajesz sobie w linijce 42:
W news-edytuj.php 6 i 7 linijkę zmieniasz na:
Powinno działać. Aha, i na twoim miejscu, scaliłbym news_edytuj i news_edytuje. Ten post edytował Blame 7.11.2009, 11:10:34 -------------------- Napisane z palca! <- to tak dla lansu ;)
FancyStudio.pl - Tworzenie Stron WWW w Oparciu o XHTML, CSS, JS, PHP i MySQL. Mój blog :: Portfolio Fotograficzne Igora Biedrawy |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 68 Pomógł: 1 Dołączył: 7.06.2009 Skąd: Sanok Ostrzeżenie: (0%) ![]() ![]() |
dodane, lecz teraz pokazuje tylko 1 news oraz dalej nie pokazuje po naciśnięciu edytuj, admin testowy: test/test
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 678 Pomógł: 124 Dołączył: 26.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
Poprawione:
Przepraszam za błąd, skrypt pisany na szybko. Ten post edytował Blame 7.11.2009, 11:43:25 -------------------- Napisane z palca! <- to tak dla lansu ;)
FancyStudio.pl - Tworzenie Stron WWW w Oparciu o XHTML, CSS, JS, PHP i MySQL. Mój blog :: Portfolio Fotograficzne Igora Biedrawy |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 68 Pomógł: 1 Dołączył: 7.06.2009 Skąd: Sanok Ostrzeżenie: (0%) ![]() ![]() |
wiem, poprawiłem te błędy szybciej lecz dalej to samo
(link do strony http://91.121.10.107/busines login: test haslo: test ) |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 1 568 Pomógł: 192 Dołączył: 7.03.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
W formaulrzu edycji do action należy także dodać ?id=$pokaz['id']
Popatrzyłem w źródło formularza i rzeczywiście nie przekazujesz dalej zmiennej id, to skąd skrypt ma wiedzieć co edytować. Ten post edytował potreb 7.11.2009, 11:52:03 -------------------- |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 68 Pomógł: 1 Dołączył: 7.06.2009 Skąd: Sanok Ostrzeżenie: (0%) ![]() ![]() |
wiec co mam jeszcze dodać w pliku news_edytuj i w news_edytuje ?
po tych poprawkach w news_pokaz pokazuje tylko 1 news oraz kilka napisów edytuj news |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 678 Pomógł: 124 Dołączył: 26.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
A poprawiłeś kod tak jak podałem w poprzednim poście? Chodzi mi o jeszcze jedną klamrę na końcu. Specjalnie dla ciebie prze edytowałem plik news_edytuj.php teraz nie potrzebny ci już news_edytuje.php. Mam nadzieję że będzie działać. Oto on:
Ten post edytował Blame 7.11.2009, 12:53:58 -------------------- Napisane z palca! <- to tak dla lansu ;)
FancyStudio.pl - Tworzenie Stron WWW w Oparciu o XHTML, CSS, JS, PHP i MySQL. Mój blog :: Portfolio Fotograficzne Igora Biedrawy |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 68 Pomógł: 1 Dołączył: 7.06.2009 Skąd: Sanok Ostrzeżenie: (0%) ![]() ![]() |
tak, dodałem tą klamrę na końcu. Teraz nie potrzeba tej klamry w linii 59. Wgrałem to lecz niestety znowu nic się nie pokazuje:
http://91.121.10.107/busines/news_edytuj.php?id=9 oraz co z plikiem news_pokaz.php pokazuje się tylko 1 news i kilka przycisków Edytuj news. |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 1 568 Pomógł: 192 Dołączył: 7.03.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Pomaganie w kodzie nie oznacza, że ktoś ma ci dawać do wklejenia całego przerobionego kodu. Trochę własnej inwencji. Pokazuj to co do tej zrobiłeś. To, że podasz nam url nie oznacza, że wszystko jest dla nas wiadome.
I najważniejsze, mam dane administratora, preparuje formularz i mogę zrobić sql injection lub nawet przez zwykłego geta. Przydałoby się przynajmniej minimalnie zabezpieczyć przed takimi rzeczami.
Nie trzeba klamry :/ zauważ, że musisz mieć przynajmniej jakiś warunek dla edycji, bo edycja za każdym razem będzie się robiła, tyle że nie ma wartości, a parametr id przekazywałbym poprzez formularz i sprawdzałbym przy okazji czy jest to liczba. Ten post edytował potreb 7.11.2009, 17:39:51 -------------------- |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 68 Pomógł: 1 Dołączył: 7.06.2009 Skąd: Sanok Ostrzeżenie: (0%) ![]() ![]() |
zapomniałem dodać ale to chyba jest jasne że jestem początkujący ... może mi powiecie jak to zabezpieczyć? Naniosłem kilka poprawek w tym co mi podaliście typu 'id='$id' na id=.. i pokazywanie newsów działa już prawidłowo. Gdy kliknę Edytuj news pojawia mi się formularz lecz gdy zatwierdzę zmiany dane się nie zmieniają ;/ oto news_edytuj.php:
|
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 1 568 Pomógł: 192 Dołączył: 7.03.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Warunek isset($_POST['submit']) sprawdza czy jest taka tablica, więc trzeba było dodać do submit name="submit". Zamień mysql_query("UPDATE ... poniższym kodem.
Przy okazji sprawdzę czy id jest liczbą: Przy okazji pousuwaj wszystkie małpy z przed funkcji. Co to?? Skrótowy zapis?? Raczej nie.
Raczej tak
Zrób o to co cię prosiłem i napisz o efektach. Ten post edytował potreb 7.11.2009, 20:15:49 -------------------- |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 68 Pomógł: 1 Dołączył: 7.06.2009 Skąd: Sanok Ostrzeżenie: (0%) ![]() ![]() |
UPDATE news SET `tytul` = '00000', `tresc` = '00000', `autor` = '00000' WHERE id='9'
W końcu wszystko działa jak należy ![]() |
|
|
![]()
Post
#16
|
|
![]() Grupa: Zarejestrowani Postów: 678 Pomógł: 124 Dołączył: 26.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
Poczytaj trochę o mysql_real_escape_string, addslashes i htmlspecialchars. Dodam tylko tyle, że musisz nimi potraktować wszystkie dane które użytkownik wpisuje do formularza.
Ten post edytował Blame 7.11.2009, 20:33:30 -------------------- Napisane z palca! <- to tak dla lansu ;)
FancyStudio.pl - Tworzenie Stron WWW w Oparciu o XHTML, CSS, JS, PHP i MySQL. Mój blog :: Portfolio Fotograficzne Igora Biedrawy |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 68 Pomógł: 1 Dołączył: 7.06.2009 Skąd: Sanok Ostrzeżenie: (0%) ![]() ![]() |
ok, wiem o co z tym chodzi, w najbliższym czasie poprawię to. Teraz skrypt wygląda tak:
teraz mam jeszcze jedno pytanie: jak dodać edycję tylko dla admina, bo każdy może sobie wejść i edytować to. Gdy dodaje do kodu " if ($pokaz['ranga'] == 'admin'){ " niestety znowu ale tylko białe tło ;/ |
|
|
![]()
Post
#18
|
|
![]() Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
A od kiedy to w informacji o newsach wciskasz typ użytkownika?
$pokaz['ranga'] == 'admin' nie ma prawa działać, bo $pokaz przechowuje informacje o newsie, która to zmienna jest efektem zapytania: "SELECT * FROM news WHERE id='$id'" Jak Tyś tam rangę wcisnął to nie wiem ![]() Musisz informację o użytkowniku wyciągnąć z bazy w locie, albo pobrać jego uprawnienia z sesji. Dopiero na tej podstawie decydujesz czy user ma prawo edytować czy nie. Ten post edytował thek 7.11.2009, 22:11:53 -------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 68 Pomógł: 1 Dołączył: 7.06.2009 Skąd: Sanok Ostrzeżenie: (0%) ![]() ![]() |
ok, fakt, nie zauważyłem.
Jeszcze jedno pytanie: jak "odwrócić" kolejność pokazywania newsów. Chodzi o to, że jak dodam teraz jakiś news to pokazuje on się "na dole" a nie "na górze". Czekam na pomoc |
|
|
![]()
Post
#20
|
|
![]() Grupa: Zarejestrowani Postów: 678 Pomógł: 124 Dołączył: 26.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
Przy $zapytanie dajesz:
Ten post edytował Blame 11.11.2009, 10:59:29 -------------------- Napisane z palca! <- to tak dla lansu ;)
FancyStudio.pl - Tworzenie Stron WWW w Oparciu o XHTML, CSS, JS, PHP i MySQL. Mój blog :: Portfolio Fotograficzne Igora Biedrawy |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 13.06.2025 - 05:52 |