ďťż
Podstrony
|
telcocafeTworzę stronę internetową. Przeszedłem niedawno kurs PHP, ale nie rozwiał on moich wszystkich wątpliwości. W związku z tym zadaję pytania:1) Stworzyłem system logowania w moim serwisie. Zalogowany użytkownik dostaje się na swoje konto na którym może pisać artykuły. Ja staram się napisać skrypt umożliwiający automatyczne publikowanie napisanych przez użytkownika artykułów w innym pliku (oba pliki są na tym samym serwerze) Otóż wiem jak to zrobić. Ale ja chcę sobie utrudnić życie i chcę dodatkowo, żeby (pod spodem zamieszczam kod - ciąg dalszy pytania pod kodem: <form action="artykuly.html" method="post"> Tytuł:<br> <input type="text" name="tytuł" size=30 maxlength=50><br> Treść:<br> <textarea name="treść" rows=100 cols=100> </textarea><br> </form> To jest kod formularza pliku tego co użytkownik widzi po zalogowaniu. ...i chcę dodatkowo żeby zmienna $tytuł wysłana do pliku artykuly.html została wyświetlona jako hiperłącze do kolejnego pliku (ma mieć nazwę dane.php albo dane.html) w którym zostanie wyświetlona zmienna $treść. Z linijki kodu: <form action="artykuly.html[/codebox] wynika że przesyłam zmienne do jednego pliku tylko. Chcę przesyłać zmienne do obu plików (dane.html i artykuly.html) ale nie wiem jak pomocy! Proszę o pomoc z tymi zmiennymi , hiperłączami i wszystkim innym o co zapytałem - tak żebym mógł zrealozować moje zamierzenie, które opisałem. Zamieszczę tylko jeszcze kod w jaki sposób chcę odzyskiwać przesłane zmienne w plikach artykuly i dane: <? echo "$_POST['nazwa zmiennej']" Użytkownik jeremie edytował ten post 30 sierpień 2007, 19:55 nie do konca czaje o czym piszesz - chcesz przeslac zmienna do 2ch plikow, zeby wywolac kod ktory jest w obu naraz? jesli tak, to wysylasz do pierwszego, a do niego dajesz include drugiego. a jesli chcesz zeby zmienna byla pamietana gdy user samodzielnie wejdzie do drugiego pliku, to uzyj sesji Chcę aby zmienne, którym nazwy przypisuje użytkownik w polu formularza wysłać do dwóch plików. W kodzie który zamieściłem <form action="artykuly.html> pokazuję że przesyłam zmienne tylko do jednego pliku, ale chce do dwóch na raz i nie wiem jak - i to jest moje pierwsze pytanie. Natomiast drugie pytanie - nie odpowiedziałeś na nie - jak już wyślę zmienne do pliku artykuly.html i dane.html to chcę aby zmienna $tytuł w pliku artykuły została wyświetlona funcką echo tak aby stanowiła hiperłącze do pliku dane. Do pliku dane również przesłałem zmienne. I tam chcę tylko wyświetlić zmienną $treść. Napisałem najbardziej zrozumiale jak można i tyle. Jak by ktoś chciał zadać jakieś dodatkowe pytania w celu udzielenia zbawiennej dla mnie odpoweidzi piszcie na GG: 7249410 Użytkownik jeremie edytował ten post 29 sierpień 2007, 10:27 Chcę aby zmienne, którym nazwy przypisuje użytkownik w polu formularza wysłać do dwóch plików. W kodzie który zamieściłem pokazuję że przesyłam zmienne tylko do jednego pliku, ale chce do dwóch na raz i nie wiem jak - i to jest moje pierwsze pytanie. no to tak jak napisalem. wysylasz do jednego pliku, i piszesz w nim if (isset(przycisk wysylajacy formularz)) include "drugiplik.php"; w ten sposob zawsze gdy pierwszy plik otworzy sie z przekierowania formularza, to wykona sie rowniez drugi plik (oczywiscie zakladam ze nic on nie pokazuje na ekran?), a wszystkie zmienne z pierwszego beda dostepne w drugim. $tytuł w pliku artykuły została wyświetlona funcką echo tak aby stanowiła hiperłącze do pliku dane. Do pliku dane również przesłałem zmienne. I tam chcę tylko wyświetlić zmienną $treść. echo "<a href= $dane > $tytul </a> "; ? (oczywiscie lepiej to napisac z uzyciem ' " . ale nie chce komplikowac ;) ) Użytkownik Deadeye edytował ten post 27 sierpień 2007, 17:39 echo "<a href= $dane > $tytul </a> "; Tylko czy to jest prawidłowy link? Użytkownik statjacek edytował ten post 27 sierpień 2007, 22:18 Tylko czy to jest prawidłowy link? przeciez napisalem ze powinno sie pisac tak: echo '<a href="'.$dane.'">'. $tytul .'</a>'; ale chodzilo o sam sposob Spróbuję wykorzystać zaproponowane rozwiązanie. O wynikach próby poinformuję! Teraz mój raport i znowu pytania: 1) Chodziło tylko o to żeby zmienna $tytul robiła za tekst między <a href .... > a </a> więc kod który zastosowałem wygląda tak i działa: <a href= "dane.html"><? echo $_POST['tytul']?></a> To znaczy jak użytkownik wysyła w formularzu dwie dane zapisane w zmiennych $tytul (tytuł jego artykułu) i $tresc (treść artykułu) to $tytuł już robiło za hiperłącze a $tresc ma robić za treść pliku do którego prowadzi hiperłącze. Za pomoc dzięki. 2) Ale niestety rozwiązanie nie jest doskonałe, bo jak użytkownik wyśle te dane i swój artykół to hiperłącze co prawda się tworzy, ale jak wyłączę przeglądarkę i wchodzę na tę stronę gzie to hiperłącze miało się pojawić to już go tam nie było. Ja chcę żeby jak użytkownik raz wyśle te dane i zostaną one umieszczone w plikach to żeby one już tam pozostały (chodzi o to aby to co wyśle użytkownik na stałe umieścić w plikach z hiperłączami i z artykułami. Proszę o pomoc. I tyle! Czekam na odpowiedź jak to zrobić i potem pewnie znowu napiszę raport. Pozdrawiam - Jeremie! Naprawdę dzięki za zaangażowanie! Użytkownik jeremie edytował ten post 29 sierpień 2007, 10:27 Jeżeli tworzysz to na plikach to zrób jeszcze jeden plik,a w nim unieść link. Przy każdorazowym dodaniu arta do pliku będzie dodawany/zastępowany link. Po wejściu danego usera zostanie wczytany plik. Może być? :) raz piszesz tak artykułu i tak artykułami a raz tak artykół. zdecyduj się po drugie - zawsze filtruj zmienne które przekazuje user do skryptu htmlspecialchars($_POST['tytul']), chyba że chcesz, żeby Twoja stronka pełna xssów była pozdro Andrzeju_AA cenię bardzo twoją mądrość i inteligencję ale nie za bardzo rozumiem co napisałeś. Dalej nie wiem jak to zrobić. I ponieważ sądzę że nie do końca czaicie o co mi chodzi to zrobię schemacik jak ma być: USER WCHODZI NA SWOJE KONTO ! NA KONCIE WYPEŁNIA FORMULARZ W POSTACI DWÓCH PÓL TEKSTOWYCH (jeden to textarea) - POLA NAZYWAJĄ SIĘ "tresc" i "tytul" - I NACISKA WYŚLIJ ! ZMIENNE SĄ PRZESYŁANE DO JAKIEGOŚ PLIKU W KTÓRYM WYDAJĘ POLECENIE ZAPISU DANEJ Z TYTUŁEM DO PLIKU kursy.html GDZIE ZAPISANY TYTUŁ MA ROBIĆ JAKO HIPERŁĄCZE DO PLIKU artykul.html I ZAPISU DANEJ Z TREŚCIĄ DO PLIKU artykul.html ! I OD TEJ PORY JUŻ NA ZAWSZE W PLIKU kursy.html MA BYĆ TO HIPERŁĄCZE A W PLIKU artykul.html ARTYKUŁ Ten schemat jest niedoskonały gdyż nie zapewnia bezpieczeństwa stronie, dwa za każdym razem kiedy stworzone zostanie hiperłącze to powinien być tworzony nowy plik z artykułem bo użytkownicy mogą przecież napisać 5 artykułów a nie jeden. Jednakże na razie trzeba zrobić tak żeby działał chociaż ten schemat potem zajmę się tworzeniem nowych plików dla nowych artykułów i bezpieczeństwem - oczywiście w tym temacie jeszcze ! Myślałem aby do zapisu danych użyć kolejno funkcji fopen,fwrite,fclose ale nie wiem czy to mądre czekam na odpowiedzi piszcie na moje GG - pozdrawiam - Jeremie Ludzie odpowiedzcie wreszcie na moje pytanie! Ludzie odpowiedzcie wreszcie na moje pytanie! ja polecam lekturę np. CodeIgnitera i tworzenie konkretnych skryptów opartych o jakieś wzorce (MVC) i bazy danych. Trudno odpowiedzieć na twoje pytania bo są niezbyt jasne, a twoje zamiary przekombinowane + używany plików jako nośnika relacyjnych danych. Moje pytania są w miarę jasne a ty z tego co widzę to wszystkim wduszasz rzeczy do czytania bo sam nie umiesz pomyśleć i odpowiedzieć na zadane pytanie. Najlepiej by było to trzymać w bazie,ale skoro pliki to ok. Też nie do końca Ciebie rozumiem,ale przeczytam jeszcze kilka razy Twój post :) Już wiem :D Tylko powiedz,chcesz gotowca, czy jak? Bo z tego co przeczytałem,można to wywnioskować . . . Ale jeżeli wiesz co i jak tylko nie masz pomysłu to możesz: 1. Tworzyć osobne pliki dla każdego usera <=> pliki mają być dostępne tylko dla danego usera. 2. WPR Stworzyć jeden plik i poszczególne dane oddzielać separatorem i czytać explode. Popraw mnie jeżeli czegoś nie rozumiesz bo ja mam specyficzny tok myślenia :) BTW Na pewno nie najlepszy,ale gdyby komuś się chciało tak jak mi zrozumieć to znaleźliby się :) Zresztą nie każdy jest dostępny 24h . . . Najlepiej by było to trzymać w bazie,ale skoro pliki to ok. Też nie do końca Ciebie rozumiem,ale przeczytam jeszcze kilka razy Twój post :) Już wiem :D Tylko powiedz,chcesz gotowca, czy jak? Bo z tego co przeczytałem,można to wywnioskować . . . Ale jeżeli wiesz co i jak tylko nie masz pomysłu to możesz: 1. Tworzyć osobne pliki dla każdego usera <=> pliki mają być dostępne tylko dla danego usera. 2. WPR Stworzyć jeden plik i poszczególne dane oddzielać separatorem i czytać explode. Popraw mnie jeżeli czegoś nie rozumiesz bo ja mam specyficzny tok myślenia :) BTW Na pewno nie najlepszy,ale gdyby komuś się chciało tak jak mi zrozumieć to znaleźliby się :) Zresztą nie każdy jest dostępny 24h . . . Pomyślmy w takim razie nad zaproponowanym przez ciebie rozwiązaniem. Byłoby mądre to aby: -w pliku formularza użytkownik uzupełnia dwa pola: tytuł artykułu i treść artykułu -można zrobić tak że kiedy użytkownik wyśle swoje dane to zostanie utworzony plik o nazwie tytułu artykułu - po utworzeniu pliku funkcją fwrite dokona się zapisu treści artykułu do nowoutworzonego pliku To jest proces pierwszy który się dzieje. A teraz drugi który bym chciał - to już mój pomyśł: - tytuł artykułu jak wiesz jest zmienną o nazwie podanego atrybutu name - my tę zmienną przekażemy do pliku spis artykułów i tam utworzymy jako hiperłącze jednakże to hiperłącze żeby było wyświetlane zawsze to chyba można użyć pętli Co myślisz o tym pomyśle. A co do kodu jaki możnaby dokładnie użyć jeszcze kilka godzin pomyślę a jak nic nie wymyślę to napiszę i tyle. Nie chodzi mi o gotowca, uczę się PHP (znam inne języki) i muszę się uczyć, bardziej mi chodzi o współtworzenie kodu żebym się coraz więcej uczył. po prostu dopisujesz, a nie zastępujesz dane w pliku ze spisem treści. PS. nazwa pliku nie powinna mieć polskich znaków. Nie powinna też mieć spacji i innych podobnych znaków. Skomplikował nam się ten temat, więc dla niewtajemniczonych nowych czytających uporządkujmy fakty. Problem pozostaje cały czas ten sam. Zmienia się tylko sposób działania. Rozpoczynaliśmy od przekazywania zmiennych poprzez zapisywanie do pliku i pętle aż doszliśmy do tego momentu i przyjąłem nowy front działania mianowicie sesje. Więc użytkowników czytających proszę aby skupili się nie na starych metodach tylko na sesjach. Przez cały temat trąbiłem o formularzu z dwoma polami: treść i tytuł (artykułu) . Przedstawiam kod tego formularza: <form action="spis_treści.html" method="post"> <input type="text" name="tytul"> <textarea name="tresc"> <input type="submit" value="wyślij"> </textarea> </form> Trąbiłem też o tym że jak użytkownik naciśnie wyślij to dane z pól tekstowych mają zostać wykorzystane w innych plikach, a dokładnie daną tytuł przesłaną do pliku spis_treści.html gdzie ma być treścią hiperłącza do pliku drugiego z treścią artykułu - i tu drugi problem żeby ten plik tworzył się' po naciśnięciu wyślij! Wracając do hiperłącza postanowiłem umieścić następujący kod- używam sesji: session_start() $tytul = $_POST['tytul'] session_register['tytul'] $_SESSION ['tytul'] = $tytul I na tym kończy się mój pomysł. Teraz jak od tego momentu doprowadzić aby w pliku spis_treści zrobić to hiperłącze i jak zrobić żeby po naciśnięciu wyślij powstawał nowy plik. Teraz czekam na wasze pomysły i szczerze proszę o odpowiedzi! Nie rozumiem. Po co Ci sesje? Pod PHP5 była jakaś prosta funkcja do tworzenia plików,ale poczytaj w manualu o funkcjach fopen, fputs, fclose. I cały Twój problem rozwiązany - tylko zrób to kilka razy by lepiej zrozumieć :) BTW Nie musisz pisać do mnie na PW bo jak zaglądam na Forum to pierw przeglądam nieprzeczytane tematy tego forum. Andrzeju sesje są po to aby zrobić trwałe hiperłącze w pliku spis treści, a nowy plik ma być dla zmiennej $treść. Poszukam w podanych przez ciebie funkcjach. Andrzeju sesje są po to aby zrobić trwałe hiperłącze w pliku spis treści, a nowy plik ma być dla zmiennej $treść. Poszukam w podanych przez ciebie funkcjach. sesjami nie zrobisz trwalego spisu tresci. czym bardziej czytam twoje posty tym wieksze mam wrazenie ze nie wiesz o czym mowisz :> Masz rację co do sesji. Użyłem baz danych oraz funkcji fopen i fwrite. Dziękuję za zaangażowanie w tym temacie. Wkrótce efekt mojej pracy zobaczycie w dziale Pole do popisu! Zapraszam! Jeremie! |
|||
Sitedesign by AltusUmbrae. |