Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php]2 formularze, probelm
peter13135
post 15.04.2008, 19:00:41
Post #1





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

Ostrzeżenie: (0%)
-----


no więc robie w celach edukacyjnych prosty skrypt bloga,
teraz chce zrobić skrypt który by dodawał pliki do bazy.
oto kod php
  1. <?php
  2. Hasło  :
  3.  
  4.  
  5.  
  6.  
  7.  
  8. include 'config.php';
  9. $password=md5($password);
  10. if(!($password == $hasloadmina))
  11. {
  12. }
  13.  
  14.  
  15. echo &#092;"
  16.  
  17.  
  18.  
  19.  
  20.  
  21. name  :
  22.  
  23. tresc  :
  24.  
  25.  
  26.  
  27. &#092;";
  28.  
  29.  
  30. include 'config.php';
  31.  
  32. @$db = mysql_pconnect($host, $user, $pass);
  33. if (!$db) 
  34.      { 
  35.      print &#092;"Nie można nawiązać połączenia z bazą danych\";
  36.     exit;
  37.     }
  38.  
  39. mysql_select_db($dbname);
  40.  
  41. $query = &#092;"select * from blog\"; 
  42. $result = mysql_query($query); 
  43.  $num_results = mysql_num_rows($result); 
  44.  
  45. $id = $num_results+1;
  46.  
  47.  
  48.  
  49. if (!$id || !$name || !$tresc)
  50.  
  51.  {
  52.  
  53.     exit;
  54.  }
  55.  
  56. $id = addslashes($id); 
  57.  $name = addslashes($name);
  58. $tresc = addslashes($tresc);
  59.  
  60.  
  61.  
  62. $query = &#092;"insert into blog values ('\".$id.\"', '\".$name.\"', '\".$tresc.\"')\";
  63. $result = mysql_query($query);
  64.  
  65. if ($result)
  66. print &#092;"wpis \".$name.\" został dodany do bazy danych.\";
  67. else
  68. {exit;}
  69.  
  70. ?>

w pliku config.php znajdują sie dane do połączenia z bazą oraz $hasloadmina='hash_md5';
ten skrypt niedziała tak jak ja bym chciał, 
na początku wyświetla sie pierwszy formularz w którym trzeba wpisać hasło, jeśli sie wpisze złe hasło to sie stronka tylko odświerza, jesli wpisze prawidłowe dane- wyświetla drugi formularz w którym wpisuje sie dane które po kliknęciu 'click' powinny sie zapisać w bazie danych,
jednak nic takiego sie niedzieje, po wpisaniu danych do drugirgo formularza i kliknęciu, wyświetla sie tylko pierwszy formularz gdzie wpisuje sie hasło.

przepraszam że mało gramatycznie to napisałem ;]

Ten post edytował peter13135 15.04.2008, 19:51:15


--------------------
:)
Go to the top of the page
+Quote Post
l0ud
post 15.04.2008, 19:02:23
Post #2





Grupa: Zarejestrowani
Postów: 1 387
Pomógł: 273
Dołączył: 18.02.2008

Ostrzeżenie: (0%)
-----


Odnoś się poprawnie do zmiennych z formularza - nie bezpośrednio, a poprzez $_POST['nazwa_zmiennej']


--------------------
XMPP: l0ud@chrome.pl
Go to the top of the page
+Quote Post
peter13135
post 15.04.2008, 19:07:21
Post #3





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

Ostrzeżenie: (0%)
-----


napisałem takie coś
  1. <?php
  2. $name=$_POST['name'];
  3. $tresc=$_POST['tresc'];
  4. ?>

i nic to nie pomogło
//edit
dodam że jeśli do adresu dopisze ?password=[haslo]
to skrypt działa poprawnie

Ten post edytował peter13135 15.04.2008, 19:08:39


--------------------
:)
Go to the top of the page
+Quote Post
nevt
post 15.04.2008, 19:31:14
Post #4





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

Ostrzeżenie: (0%)
-----


Cytat
dodam że jeśli do adresu dopisze ?password=[haslo]
to skrypt działa poprawnie

a ja dodam, że chyba czytać nie umiesz, cudzego kodu zresztą, bo gdybyś sam pisał, wiedziałbyś po co jest fragment:
  1. <?php
  2. $password=md5($password);
  3. if(!($password == $hasloadmina))
  4. {
  5. }
  6. ?>

EDIT: i dodaj do tematu tag wymagany przez reguły publikowania na forum Przedszkole, inaczej temat zostanie zamknięty.


--------------------

-
Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... -
Go to the top of the page
+Quote Post
peter13135
post 15.04.2008, 19:45:38
Post #5





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

Ostrzeżenie: (0%)
-----


akurat ten fragment kody jest mój, niewiem dlaczego uważasz że niejest mój ;]
poprostu w pliku config.php jest zakodowane haslo admina (md5)
więc najpierw skrypt koduje do md5 hasło które wpisał użytkowink w formularzu i jeśli niejest ono takie same jak w pliku config to skrypt sie kończy
ja wpisuje dobre hasło, i po jego wpisaniu wyświetla sie drugi formularz, jednak po wpisaniu jakichś danych w drugi formularz , i wcisnieciu enter, pokazuje sie tylko pierwszy formularz
(tak tak wiem wiem, kiepsko u mnie z gamatyką i ortografią)

edit//
cos zauważyłem że ten mój pierwszy kod php albo sie źle zapisał albo był w fazie modyfikacji.. w każdym bądź razie z problemem już sobie poradziłem
temat do zamknięcia

Ten post edytował peter13135 15.04.2008, 19:53:04


--------------------
:)
Go to the top of the page
+Quote Post
nevt
post 15.04.2008, 20:04:05
Post #6





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

Ostrzeżenie: (0%)
-----


wybacz - moja ocena wynikała z twojego komentarza - widocznie źle go zrozumiałem.
problem był wielokrotnie wałkowany. po zalogowaniu się, nigdzie nie zapamiętujesz tego faktu, albo w sesji, albo w ukrytym polu drugiego formularza. pomysl nad tym przez moment (w uproszczeniu):
1. pierwsze uruchomienie - wyświetlasz formularz logowania - $password jest puste więc skrypt kończy działanie.
2. drugie uruchomienie - wyświetlasz formularz logowania - $password jest ok. (przesłane z poprzedniego uruchomienia) więc wyświetlasz drugi formularz z danymi do bazy ...
3. trzecie uruchomienie - wysietlasz formularz logowania, $password jest znowu puste (dlatego że 3 uruchomienie nastepuje na skutek przeslania formularza nr 2 w ktorym nie ma pola password) więc skrypt kończy działanie.

masz dwa wyjścia, albo w sesji lub ciasteczku po drugim uruchomieniu zapamietujesz że user jest zalogowany, albo do drugiego formularza dodajesz ukryte pola zawiwerające kopie danych przesłanych z pierwszego formularza. polecam pierwsze rozwiązanie bo drugie jest podatne na wiele rodzajów ataków...


--------------------

-
Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... -
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 5.07.2025 - 18:24