![]() |
![]() ![]() |
![]() |
-SniFF- |
![]()
Post
#1
|
Goście ![]() |
Witam!
Jestem grafikiem i z php nie mam wiele wspólnego, jednak dostałem wyjątkowo zadanie stworzenia forlumarza rejestracji korzystającego z bazy danych oraz czegoś w stylu panelu do wyświetlania tych danych... Sam stworzyłem coś takiego: Formularz: Skrypt wrzucający do bazy:
No i coś nie działa... Hmm Generalnie chodzi o to żeby osoba wpisała swoje dane, dane mają się pojawić w bazie danych a później przy pomocy jakiegoś skryptu/strony (Nie mam pojęcia jak to zrobić) admin mógl wejść, będą wyświetlały się imiona i nazwiska a po kliknięciu wyświetli się reszta informacji o osobie... Nie wiem czy jest to duży problem, sam z php nie mam nic wspólnego nie potrafie tego ocenić, w zamian mogę zająć się topem na strone lub stworzyć design... Z góry dziękuje za pomoc... |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 30.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
Jak masz zapytanie do bazy to tam powinno być coś takiego:
Ogólnie rzecz biorąc to wpinasz te zmienne łącząc je ze zwykłym tekstem zapytania operatorem kropecki. Jedyne co jeszcze mogę powiedziec, to to, że nie wydaje mi się konieczne przypisywanie wartości z tablicy $_POST do zmiennych, skoro i tak nic skomplikowanego na nich nie robisz. One ci nie uciekną raczej (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Czyli możesz to od razu zrobić tak:
Nie wydaje mi się, żeby było sensowne zajmowanie dodatkowej pamięci serverowi na dublowanie zmiennych. W sumie to chyba niewiele wpływa na szybkość, ale na czytelność już raczej tak. A jak odkopię taki prosty tutek o obsłudze baz danych, który potrafiłam zrozumieć nawet ja, licealistka to ci wyślę na PW ^.^ Pozdrowionka Eileen Blue Rose @edit Tu znalazłam link. Mi to pomogło skumać o co chodzi w bazach danych i php. http://webhosting.pl/Kurs.PHP..Wstep.do.pr...zyku.skryptowym Ten post edytował Eileen 8.08.2008, 12:53:04 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 085 Pomógł: 231 Dołączył: 12.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
@up
Eileen, zastanawiałaś się nad bezpieczeństwem skryptów, wspominając że nic skomplikowane nie robi trzeba było wspomnieć że istnieje coś takiego jak sql injection, co polecam autorowi do zapoznania się. @autor Coś nie działa, czyli co? Problemy trzeba precyzować. Pojawia się błąd, czy dane nie dodają się do bazy, ale błędu nie ma? Opisz wszystko możliwie najdokładniej. Ten post edytował Shili 8.08.2008, 12:54:13 |
|
|
-SniFF- |
![]()
Post
#4
|
Goście ![]() |
Dobra to ja może napiszę od początku... Troche popracowałem i mam coś takiego:
Plik index: Kod <?php //wczytanie pliku z funkcjami require_once ("funkcje.php"); //rozpoczęcie sesji session_start(); session_cache_limiter('nocache'); //formularz logowania dodaj_form(); ?> Funkcje.php Kod <?php function pol_mysql() { //ustawiamy teraz dane naszej bazy $db_host = 'localhost'; $db_user = 'marek'; $db_pass = '1acma2'; $db_name = 'dane_osob'; //ustawiamy polączenie z bazą danych $lacz = mysql_pconnect($db_host, $db_user, $db_pass); if(!$lacz) { echo "Wystąpił błąd: Połączenie z bazą nie powiodło się."; exit; } //wybieramy bazę if(!@mysql_select_db($db_name, $lacz)) { echo '<b>Baza danych chwilowo niedostepna. Przepraszamy.</b>'; exit; } } function wynik_db_do_tablicy($wynik) { $tablica_wyn=array(); for($licznik=0; $rzad=@mysql_fetch_array($wynik); $licznik++) $tablica_wyn[$licznik]=$rzad; return $tablica_wyn; } function html_url($url, $nazwa) { // wyświetlenie URL-a jako łącza ?> <P align="center"> <a href="<?=$url?>"><?=$nazwa?></a> </P> <? } //wyswietla nam pole do zalogowania się, bądź rejestracji;) function wy_form_logo() { ?> <form method=post action="uzytkownicy.php?m=log"> <TABLE ALIGN="center"> <tr> <td><b>Login:</b></td> <td><input type=text name="login"></td> <td><b>Hasło:</b></td> <td><INPUT type=password name="haslo"></td> <td align=center colspan=2> <INPUT TYPE="SUBMIT" VALUE="Zaloguj"></td> <td><a href="uzytkownicy.php?m=rejestracja">Rejestracja</a></td> </tr> </table></form> <? } // formularz rejestracji function dodaj_form() { ?> <form method=post action="rejestracja.php"> <TABLE ALIGN="center"> <tr> <td colspan=2><H1>Dodanie nowego użytkownika</H1><TD></TD></td> <tr> <td>imię:</td> <td><input type=text name=imie></td></tr> <tr> <td>Drugie imię:</td> <td><input type=text name=imie2></td></tr> <tr> <td>Nazwisko</td> <td><input type=tekst name=nazwisko></td></tr> <tr> <td>Nazwisko Rodowe</td> <td><input type=tekst name=nazw_rodowe></td></tr> <tr> <td>Imię matko</td> <td><input type=tekst name=imie_matki></td></tr> <tr> <td>Imię ojca</td> <td><input type=tekst name=imie_ojca></td></tr> <tr> <td>Obywatelstwo</td> <td><input type=tekst name=obywatelstwo></td></tr> <tr> <td>Płeć:</td> <td>Mężczyzna: <input type="radio" value="m" checked name="plec"> Kobieta: <input type="radio" name="plec" value="k"></td></tr> <tr> <td>Stan Cywilny</td> <td><select name="stan_cywilny"> <option>Żónaty/Żonata</option> <option>Wolny/Wolna</option> </select></td></tr> <tr> <td>Liczba dzieci</td> <td><input type=tekst name=liczba_dzieci></td></tr> <tr> <td align=center colspan=2> <input type=submit value="Zapisz"></td></TABLE></form> <? } //dodajemy użytkownika do bazy danych function dodaj_usera($imie, $imie2, $nazwisko, $nazw_rodowe, $imie_matki, $imie_ojca, $obywatelstwo, $plec, $stan_cywilny, $liczba_dzieci) { $polaczenie= pol_mysql(); // sprawdzenie, czy login nie powtarza się $czas = date("j-m-Y-G:i:s"); // umieszczenie usera w bazie danych $zapytanie = "insert into users values ('', '$imie', '$imie2', '$nazwisko', '$nazw_rodowe', '$imie_matki', '$imie_ojca', '$obywatelstwo', '$plec', '$stan_cywilny', '$liczba_dzieci' '$czas')"; $wynik=mysql_query($zapytanie); if($wynik) { echo "<H3 ALIGN=center>Rejestracja zakończona pomyśllnie</h3>"; echo "<H4 ALIGN=center><a href='index.php'>Strona Logowania</a></h4>"; exit; } return true; } function logowanie($login, $haslo) { $polaczenie= pol_mysql(); // sprawdzenie, czy login nie powtarza się $wynik = mysql_query("select * from users where login='$login'"); if(!$wynik) return "Problem: zapytanie z bazy nieudane"; if (mysql_num_rows($wynik)== 0) { echo "<H3 ALIGN=center>Niema takiego użytkownika w bazie danych</h3>"; wy_form_logo(); exit; } $tab_user = wynik_db_do_tablicy($wynik); if ($tab_user[0]['haslo'] != $haslo) { echo "<H3 ALIGN=center>Niepoprawne hasło</h3>"; wy_form_logo(); exit; } $user = $login; //rejestrowanie danych sesji session_register("user"); echo "zalogowany jako: <b>" .$user."</b>, jeste z <b>".$tab_user[0]['skad']."</b>, data twojej rejestracji to: <b>".$tab_user[0]['data']."</b><br>"; echo "<a href=omnie.php>Strona o mnie</a>"; } ?> Rejestracja.php Kod <? //wczytanie pliku z funkcjami require_once ("funkcje.php"); //rozpoczęcie sesji session_start(); session_cache_limiter('nocache'); //kod PHP if ($login && $plec && $haslo) $wynik = dodaj_usera($imie, $imie2, $nazwisko, $nazw_rodowe, $imie_matki, $imie_ojca, $obywatelstwo, $plec, $stan_cywilny, $liczba_dzieci); else exit; ?> Wszystko ładnie się odpala kiedy wchodzę w index, wpisuje dane ale otrzymuje: Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at c:\usr\krasnal\www\marek\funkcje.php:163) in c:\usr\krasnal\www\marek\rejestracja.php on line 5 tabela mysql: http://www.wrzuta.pl/obraz/g6dHo3VRt9/jjj |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 085 Pomógł: 231 Dołączył: 12.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
Przed session_start() do przeglądarki nie może być wysłany żaden znak.
Funkcje.php wyświetlają kod html - do przeglądarki zostaje wysłane coś i to całkiem dużo tego czegoś. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 592 Pomógł: 62 Dołączył: 3.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Shili, a gdzie funkcje.php wysyłają coś do przeglądarki? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 085 Pomógł: 231 Dołączył: 12.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
Choćby w gigantycznej, wielkiej, paskudnej tabeli.
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 592 Pomógł: 62 Dołączył: 3.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
ale to jest w funkcji, która nie jest narazie wywoływana
|
|
|
-SniFF- |
![]()
Post
#9
|
Goście ![]() |
Wygląda to tak... błędu nie pokazuje ale w bazie też nic nie zostaje umieszczone? Ja już nie kumam... może da się to zrobić łatwiej? Niech ktoś mi tylko pokaże jak zrobić formularz z hmm 3 polami różnego rodzaju który prześle do bazy danych informacje z tego pola... ale tez jak zrobić baze która będzie te dane odbierała... i skrypt który będzie do niej wysłał... reszte sobie poradze bo to małpia robota ale z tym skryptem sobie nie radze:/ |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 1 085 Pomógł: 231 Dołączył: 12.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
@rzymek01
Faktycznie (IMG:http://forum.php.pl/style_emoticons/default/wstydnis.gif) Może w takim razie na początku był jakiś enter, spacja, albo coś bliżej niesprecyzowanego, skoro zaczęło działać. @autor
|
|
|
-Gość- |
![]()
Post
#11
|
Goście ![]() |
Dobra:) poradziłem sobie jakoś, zrobiłem od początku i wszystko śmiga, tak to wygląda:
funkcje.php
index.php
Rejestracja.php
Wszystko śmiga piąknie:) teraz pozstaje kwestia wyświetlenia... O tym nie mam już niestety bladego pojęcia... chciałbym żeby było tak: Strona podzielona na dwie kolumny, w lewej wyświetla się imię i nazwisko gościa a jak na to klikne to po prawej wyświetli mi się reszta... nie mam pojęcia jak zrobić, nawet pomysłu... |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 1 Dołączył: 9.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem dokładnie jak masz porobione tabele i jakie nazwy mają kolumny tych tabel w bazie danych, wiec ogolnie Ci opisze jak ja bym to zrobił
robisz tabele 2 kolumny po prawej wyswietlasz imiona i nazwiska jako linki. Zakladam ze plik ktory bedzie to wyswietlał nosi nazwe wyswietl.php Załóżmy ze w tabeli Dane_pods masz 3 pierwsze kolumny nazywają się:
I to bedzie ta lewa kolumna tabeli, w prawej zrobisz takie cos:
i teraz w tym pliku przez tablice $wiersz, której indexami beda poszczególne nazwy kolumn w bazie danych, masz dostęp do tych wszystkich danych, przykładowo do imienia $wiersz['Imie']; . Zakładając oczywiscie, ze ta kolumna nazywa sie Imie. pozostaje ci tylko jakos ładnie to wyswietlic. pisałem na szybko i bez obsługi takich rzeczy jak bład połaczenia wiec jesli sa jakies błedy to sorry Ten post edytował czajnikkoko 9.08.2008, 19:23:21 |
|
|
-SniFF- |
![]()
Post
#13
|
Goście ![]() |
No to z tego co rozumiem ma to wyglądać tak:
Co do samej struktury bazy danych to ja skombinowałem coś takiego do wyświetlenia:
Nie jest to tak jak chciałem bo wyświetla tylko wszystko co w bazie tabeli ale zawsze coś... zależy mi żeby zrobić to tak jak wymyśliłem czyli z podziałem na dwie kolumny - lewa id, imie i nazwisko a po kliknieci na to w prawej wyskakuje reszta danych... Proszę o pomoc i z Góry dzięki |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 1 Dołączył: 9.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
Po 46 linijce tego kodu, ktory dałes jako pierwszy ten na podstawie mojego wczesniejszego zrób doaj takie coś:
[php] Ten post edytował czajnikkoko 9.08.2008, 21:05:52 |
|
|
-SniFF- |
![]()
Post
#15
|
Goście ![]() |
Generalnie na podstawie tego co mi dałeś i http://pl2.php.net/ udało mi się zrobić coś takiego i nawet działa kolumna lewa jednak kiedy klikam na link już poda błąd 404... dlaczego?:/
|
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 1 Dołączył: 9.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
-SniFF- |
![]()
Post
#17
|
Goście ![]() |
Fakt... Sorry tego nie zauważyłem, jest ok nie wyświetla błędu ale też niestety nie wyświetla nic:/
|
|
|
-SniFF- |
![]()
Post
#18
|
Goście ![]() |
Znaczy wyświetla, ale dokładnie tą samą strone z podziałem na 2 tabelki o_O Tak to wygląda teraz:
|
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 1 Dołączył: 9.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
Napisz do mnie na gg bedzie łatwiej potem ktorys z nas napisze jak to wkoncu rozwiazalismy
Ok, okazło sie ze mi zle wsadziło odpowiedz, tzn edytowałem ją i potem cos zwaliłem i usunęło. no niewazne w kazdym razie chodziło o to zeby zapisac do tablicy wynik zapytania o konkretny wiersz z danym usserem i potem wysweitlic elementy tej tablicy Ten post edytował czajnikkoko 9.08.2008, 23:49:03 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 20:45 |