![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 11.05.2010 Ostrzeżenie: (0%) ![]() ![]() |
witam jestem poczatkujący w tematyce PHP i zabardzo nie wiem czemu mi nie działa funkcja do usuwania rekordu z bazy mysql. Różne rzeczy próbowałem zrobić ale ciągle ten sam błąd jest;/
Cytat Warning: Unknown: failed to open stream: Brak dostÄ�pu in Unknown on line 0 Fatal error: Unknown: Failed opening required '/opt/lampp/htdocs/strona/skrypty/usun.php' (include_path='.:/opt/lampp/lib/php') in Unknown on line 0 myślę że mam gdzieś błąd skłądni ale sam sobie poradzić nie mogę... plik news.php
plik usun.php
Ten post edytował seta17 11.05.2010, 11:15:50 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 1 566 Pomógł: 37 Dołączył: 14.05.2003 Skąd: Kraków ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 11.05.2010 Ostrzeżenie: (0%) ![]() ![]() |
no ten błąd aż taki prosty nie jest:P dalej problem nie rozwiązany i to samo wyskakuje...
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Ten błąd jest banalny. Po pierwsze atrybut action formularza jest inny niż adres w odnośniku niżej (linie 44 i 45) i skrypt nie może znaleźć pliku usun.php. A po drugie albo usuwasz dane za pomocą odnośnika, albo za pomocą formularza. W tej chwili kod w liniach 44-46 włącznie nie ma w ogóle sensu.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 2 Dołączył: 30.04.2010 Ostrzeżenie: (0%) ![]() ![]() |
spróbuj w pliku usun.php w linii 2 zamiast: $_POST wstawić $_GET (linie 3-5 sa niepotrzebne)
oraz zamiast:
wstawić: jeśli zadziała, to masz problem z połączeniem do bazy MySQL w pliku polacz.php Ten post edytował teka 11.05.2010, 10:25:42 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Zauważyłem jeszcze jeden błąd. Formularz wysyłasz metodą get, a dane w pliku usun.php pobierasz z tablicy POST.
@teka Komunikat błędu wyraźnie wskazuje, co jest nie tak. Kolejnymi błędami należałoby się zająć później, bo w tej chwili skrypt nie ma prawa działać. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 11.05.2010 Ostrzeżenie: (0%) ![]() ![]() |
@teka polaczenie z baza jest na 100% sprawne bo tego pliku używam jeszcze w kilku miejscach
@mortus: to jak wg ciebie powinno wygladac odwolanie? plik usun.php po modyfikacji w 1 poscie plik news.php edycja 44-46 lini
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Albo formularz (1), albo odnośnik (2).
Opcja 1 news.php - formularz usun.php
Opcja 2 news.php - odnośnik usun.php
Dodatkowo przy drugiej opcji warto byłoby zastosować formularz, poprzez który będziemy potwierdzać usuwanie danych. Np. zawierający dwa przyciski button TAK i NIE. |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 11.05.2010 Ostrzeżenie: (0%) ![]() ![]() |
bede robil to przez formularz... blad nadal wystepuje... jedyne co sie zmienilo to sa polskie znaki:)
Ten post edytował seta17 11.05.2010, 11:59:18 |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Jeżeli przez formularz, to proponowałbym użyć jednak metody post. Plik z formularzem
i plik usun.php Ogólnie metodą post powinniśmy przesyłać informacje, które mają jakikolwiek wpływ na zmianę danych. Metoda get się do tego nie nadaje, ponieważ każdy mógłby usunąć obojętnie jaki wpis, podając jego id w adresie w przeglądarce. Polecam poczytać co nieco o sposobach przesyłania danych na stronach www. Jeżeli to nadal nie będzie działać, to napisz jaki konkretnie błąd występuje. |
|
|
![]()
Post
#11
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Metoda get się do tego nie nadaje, ponieważ każdy mógłby usunąć obojętnie jaki wpis, podając jego id w adresie w przeglądarce. Polecam poczytać co nieco o sposobach przesyłania danych na stronach www. Ty natomiast poczytaj o bezpieczeństwie aplikacji. Myślisz, że POST cię w jakikolwiek sposób przed tym zabezpieczy? W jednej chwili mogę FireBugiem podmienić wartość pola w formularzu i wyjdzie na to samo. |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
@phpion Wiem o tym, ale generalnie zaleca się przesyłane metodą post informacji, które mają jakikolwiek wpływ na dane, z których korzysta aplikacja.
|
|
|
![]()
Post
#13
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Kto tak zaleca? Jak dla mnie usuwanie rekordów za pomocą formularza i metody POST to bezsensowny pomysł - stosuję zwykły link z identyfikatorem rekordu do usunięcia. Co innego formularz zapisu danych w bazie - tam przesyłam dużo informacji więc wygodniej jest użyć POSTa.
|
|
|
![]()
Post
#14
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
@mortus ale napisales to tak, ze zabrzmialo jakby POST byl super bezpieczny a GET jest zły. A pierwszy lepszy "hakier" "złamie" tego POSTA.
Ja tam IDiki też przesyłam GETem. Post sluzy w wiekszosci wypadków to większej liczby danych a nie do głupiego IDka przy usuwaniu rekordu. To po stronie serwera (php) masz napisac zabezpieczenie by user mogl usunac tylko to co moze. POST czy GET nie ma w tym przypadku nic do gadania ![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#15
|
|
![]() Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
@mortus: phpion ma rację. Jedyne co możesz robić to sprawdzać uprawnienia po stronie serwera do wykonania określonych akcji. Sam jakiś czas temu przesadziłem z tym do tego stopnia, że tylko user-właściciel mógł swoje dane modyfikowac. Musiałem pisać "furtkę" by także admin miał to prawo, bo skrypt nawet usera z prawami admina blokował wypisując: "Nie masz uprawnień do tej operacji"
![]() -------------------- 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
#16
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Dobry mechanizm ACL to podstawa
![]() ![]() |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Ale ja nie mówię, że ktoś nie ma racji. Sam osobiście użyłbym odnośnika z id rekordu do usunięcia, kolega wybrał sposób z formularzem, więc tylko metodę post poleciłem, choć oczywiście nie jest ona bezpieczna, podobnie jak i get. W obu przypadkach należy odpowiednie zabezpieczenie zaimplementować.
|
|
|
![]()
Post
#18
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
|
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Tylko długością kodu HTML i PHP. Poza tym niczym, ale w temacie nie chodzi o różnice pomiędzy odnośnikiem, a formularzem przesyłanym metodą get.
Zresztą napisałem koledze, że można tak i tak, ale nie równocześnie, bo to bez sensu. O tym jaką metodą prześle formularz i jak zabezpieczy swój skrypt zadecyduje on sam. Ten post edytował mortus 11.05.2010, 13:31:40 |
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 11.05.2010 Ostrzeżenie: (0%) ![]() ![]() |
no wiec teraz chyba trzeba odbiec od błędów w moim kodzie a skupić się na wyrzucanym błędzie, gdyż mój pierwszy kod do usuwania odpaliłem w domu i zadziałał bez problemu wiec to co jest innego... tam gdzie robię tą stronę jest linux (CentOS) oraz XAMPP... w domu pracuje na win7 oraz wampserv na przemian z xampp'em
@edit co do zabezpieczeń to bym chciał zrobić coś takiego że przed wykonaniem zapytania SQL będzie trzeba podać hasło oraz login, ale tym zajmę się później... jeżeli da się coś takiego zrobić. @edit2: użyłem teraz plików w pracy z domu i działają, więc nie wiem w czym był problem... więc zostaje kod pliku o taki: plik usun.php
Ten post edytował seta17 12.05.2010, 08:16:18 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 11:15 |