![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 102 Pomógł: 4 Dołączył: 17.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam. Zrobiłem wkońcu możliwość dodawania podstron na podstawie page.php?id=id_podstrony
i teraz chcę zrobić możliwość edytowania ich. Jak to zrobić ![]() Oto kod połączenia z bazą: Kod <?php function db() { $db = mysql_connect("[server]", "[login]", "[haslo]"); if (mysql_errno()) { echo "<center><h2><b>Połączenie z bazą danych niemożliwe!</b></h2></center>"; return false; } mysql_select_db("[nazwa bazy]"); return $db; } ?> a oto plik page.php Kod <?php include('mysqlconnect.php'); $id = $_GET['id']; ### pobieranie id z linku np. ?id=22 $db = db(); ### poł±czenie z baza $zapytanie = "select * from podstrony where id = $id"; ### zapytanie sql $wynik = mysql_query($zapytanie, $db); ### zapytanie sql if (!$wynik || mysql_num_rows($wynik)<1) ### zapytanie sql { echo '<center><b>O podanym id niema żadnej podstrony!</center></b>'; ### text wyswietlany gdy w sql nie znajdzie tabeli o podanym id w linku } for ($i=0; $i<mysql_num_rows($wynik); $i++) ### zapytanie sql { $wiersz = mysql_fetch_array($wynik); ### zapytanie sql $id = $wiersz['id']; ### zapytanie sql $tresc = stripslashes($wiersz['tresc']); ### zapytanie sql echo ''.$tresc.''; ### wywalanie tekstu na strone ?> a i oczywiście w panelu admina dodawanie tresci: Kod <?php echo '<textarea name="tresc" colls="5" rows="20">'; ?> Jak do tego dorobić zebym mógł edytować treść w panelu admina ![]() |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 359 Pomógł: 12 Dołączył: 16.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
OK, już mówię, jak to się robi. Już takie coś kiedyś robiłem, ale najpierw parę uwag:
1. Jeśli zależy ci na zgodności z XHTML, to popraw przeplatające się znaczniki Cytat echo ''.$tresc.''; ### wywalanie tekstu na strone Poco łączysz echo z pustymi ciągami znaków? Wystarczy echo $tresc; Teraz najważniejsze: 1. Będzie ci potrzebny formularz, który powinien wyglądać mniej więcej tak: [TYTUŁ STRONY, text] ------------------------- [textarea] [TREŚĆ STRONY] ------------------------- [STRONA...., select][EDYCJA, button] Bardzo ważne są teraz następujące rzeczy: a) Ustawiasz kodowanie w bazie danych na latin2, najlepiej polish, jak nie to general. Przy każdym pobieraniu danych ze strony musisz najpierw wykonać zapytanie przez PHP: mysql_query("SET NAMES latin2;"); inaczej będzie ci zwracało znaki z krzakami ![]() c) Musisz dla tekstu zastosować funkcję nl2br(), zależy od ciebie (bo chyba nie chcesz wpisywać <br /> na końcu każdej linijki, no nie? ![]() c.a) Robisz to dla danych z pola tekstowego, i wysyłasz dane ze znakami <br /> do bazy (wtedy stosujesz całe formatowanie, a przy pobieraniu danych nic z nimi nie robisz) c. ![]() Jeżeli chcesz opcjonalnie dodać zastosowanie BBCODE, to jeszcze dorzucasz funkcje zamieniające nawiasy kontowe na encje i tekst sformatowany według zasad BBCODE'U na normalne znaczniki HTML, tu masz poradnik: KLIK! No cóż, to chyba wszystko, co pamiętam ![]() Można zrobić tak ten formularz: [tytuł strony] [treść strony] [strona][DODAJ/EDYTUJ] I sprawdzasz w php, jeżeli nic nie zostało przekazane w SELECT, to traktujesz to jako nową stronę, ale wtedy musisz dorzucić JavaScript, żeby od razu po kliknięciu SELECTA pokazywały się dane strony. Może najlepiej by było zrobić 2 formluarze? DODAJ STRONĘ i EDYTUJ STRONĘ ? Cytat Jak do tego dorobić zebym mógł edytować treść w panelu admina questionmark.gif Dodawanie nowych stron też Ci się przyda. Aha, jeżeli pomogłem, to wciśnij, proszę, przycisk pomógł. Może ty mi dasz pierwszy punkt? Chociaż nie pisałem tego dla punktów, bo sam pamiętam jak się z tym mordowałem. -------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 102 Pomógł: 4 Dołączył: 17.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
omg aż tyle tego zeby bylo w panlu admina:
Nazwa podstrony (Edytuj Podstronę) ![]() Ten post edytował LeNy 14.04.2009, 09:57:18 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 359 Pomógł: 12 Dołączył: 16.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
Raczej tak, ale żeby nie było, to spójrzmy ile rzeczy trzeba zrobić:
1. Wybranie strony do edycji - PHP ma za zadanie przywołanie wszystkich potrzebnych danych z bazy danych, a następnie "wpisanie ich" w odpowiednie pola formularza. 2. Edycja strony przez Administratora 3. Zatwierdzenie zmian - PHP musi najpierw sprawdzić, którą pozycję należy zedytować (patrząc po ID, dlatego zrób też pole typu hidden w formularzu, które będzie je przechowywać, albo wymyśl jakiś fajny sposób jak trzymać ten IDentyfikator), następnie łączy się z bazą danych i nadpisuje dane. Ewentualnie jeszcze przed wysłaniem filtruje dane przed próbami wstrzyknięcia SQL/JavaScriptu. -------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 102 Pomógł: 4 Dołączył: 17.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
a mam pytanie czy jest gdzieś jakiś gotowiec.. Mam mało czasu żeby to napisać a potrzebuje tego pilnie. Będe wdzięczny za każdy link czy kod
![]() |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 24.11.2007 Ostrzeżenie: (0%) ![]() ![]() |
Moim zdaniem z grubsza wystarczy edytuj_podstrone.php zrobić na bazie dodaj_podstrone.php, tylko dodać zapytanie SQLowe pobierające już istniejącą treść.
W formularzu:
Na koniec zamiast wstawiania do bazy jej aktualizacja:
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 102 Pomógł: 4 Dołączył: 17.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
to co jest powyżej wystarczy
![]() |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 01:34 |