Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Html z PHP
Forum PHP.pl > Forum > Przedszkole
Sign
Witam, chce sie nauczyc php i moim pierwszym celem jest zrobienie logowania i rejestracji w PHP. No więc zaczałem od tego, że w html zrobiłem inputy.
Kod:
  1. <!doctype html>
  2. <html xmlns="http://www.w3.org/1999/xhtml" lang="pl" xml:lang="pl">
  3. <meta charset="UTF-8" />
  4. <title>Logowanie</title>
  5. <link rel="stylesheet" href="style.css" />
  6. </head>
  7.  
  8. <div id="table">
  9. <div class="logowanie_tekst">Logowanie</div>
  10. <input name="input_login" class="input_login" type="text"></input>
  11. <input name="input_password" class="input_login" type="text"></input>
  12. <div class="zaloguj">Zaloguj</div>
  13. </div>
  14.  
  15.  
  16. </body>
  17. </html>

No i moje pytanie jest takie, jak to moge połączyc np. z kodem php dotyczącym logowania, który jest w logowanie.php ?
Że np. input pierwszy logowanie odpowiada za login, input drugi odpowiada za haslo, a po kliknieciu zaloguj powinno sie zalogowac ?
Jak to połączyc ?
Kshyhoo
Przeczytaj jakiś kurs, przecież nie będziemy specjalnie dla Ciebie tego powtarzać.
Przenoszę.
Sign
Przeczytałem, ale dlej nic nie rozumiem.
a w ogole ten kod jest dobrze napisany do php, że bez problemu bedzie mozna go połączyc, czy nie ?
kujol
Kliknij proszę w to "zaloguj" i powiedz, czy Cię przeniosło do strony ze skryptem php smile.gif
Napisz poprawny formularz i wróć z dalszym problemem wink.gif
castagir
Ogólnie to zadajesz pytanie, które nie powinno się tutaj znaleźć. Widać, że nie czytałeś żadnego kursu, w każdym jakikolwiek byś wziął na ruszt, znalazłbyś odpowiedź na swoje pytanie.

Ale skoro już je tu zadałeś.

Brakuje Ci przede wszystkim znaczników formularza, w którym powinny się znajdować inputy, a także input submit, który wykonuje przesłanie danych do skryptu.
Zobacz to:
  1. <form action="post/get" url="skrypt.php"> <!-- 1 -->
  2. <input name="input_login" class="input_login" type="text"></input>
  3. <input name="input_password" class="input_login" type="text"></input>
  4.  
  5. <input type="submit" value="Rejestruj" /> <!-- 2 -->
  6. </form>


1 - w znaczniku otwierającym formularz zawierasz informacje w jaki sposób mają być wysłane dane i gdzie(do jakiego pliku)
2 - jeżeli nie używasz js, to musisz koniecnie zawrzeć ten przycisk w formularzu. po jego kliknięciu dane są automatycznie wysyłane, a przeglądarka otwiera skrypt, więc musisz w nim także mieć odniesienie do jakiejś treści lub po rpostu za pomocą echo dać znać, że dane zostały otrzymane i zapisane, inaczej otrzymasz pustą stronę

EDIT:

A i nie zauważyłem tego wcześniej.
input są znacznikami które nie posiadają zamknięcia. Powinny wyglądać tak:
<input name="input_login" class="input_login" type="text" />
Sign
Wielkie dzięki ! smile.gif
  1. <!doctype html>
  2. <html xmlns="http://www.w3.org/1999/xhtml" lang="pl" xml:lang="pl">
  3. <meta charset="UTF-8" />
  4. <title>Logowanie</title>
  5. <link rel="stylesheet" href="style.css" />
  6. </head>
  7.  
  8. <form action="post/get" url="skrypt.php"> <!-- 1 -->
  9. <div id="table">
  10. <input name="input_login" class="input_login" type="text" />
  11. <input name="input_password" class="input_login" type="text" />
  12. <input type="submit" value="Rejestruj" /> <!-- 2 -->
  13. </div>
  14. </form>
  15.  
  16. </body>
  17. </html>

Teraz poprawne biggrin.gif?
untorched
  1. <form action="post" url="skrypt.php">


Albo post albo get, musisz zdecydować. Podpowiem, że formularze zazwyczaj przesyłamy metodą post
castagir
I tutaj zrobiłem błąd w formularzu, bo atrybuty złe podałem.
  1. <form method="post/get" action="skrypt.php">

Powinieneś wybrać sobie którąś z metod, post lub get. Tak jak przedmówca powiedział przy wysyłaniu formularzy najczęściej używa się post, bo wtedy dane są ukryte.
Pod "skrypt.php" podstawiasz adres i nazwę do swojego skryptu, który ma otrzymać i przetworzyć dane z formularza.
Jak to zrobisz, nie ma prawa nie działać.


Powinieneś się zabrać za jakąś porządną literaturę o PHP. To co tutaj przedstawiłeś(czyli formularz) jest podstawową właściwością PHP i praktycznie to jest podstawowe ćwiczenie do zrozumienia tego języka, które jest omawiane praktycznie w każdym kursie.
Proponuję "Vademecum Profesjonalisty, wydanie 4", wydawnictwa Helionu.
Pyton_000
Przecież On podstaw HTML nie zna a Wy mu chcecie PHP tłumaczyć?
Kloc
Dokladnie @Pyton_000 biggrin.gif za 5 dych zrobie ci to trudne zadanie i wytlumacze nawet tongue.gif
Kshyhoo
Cytat(Kloc @ 31.03.2015, 08:48:11 ) *
Dokladnie @Pyton_000 biggrin.gif za 5 dych zrobie ci to trudne zadanie i wytlumacze nawet tongue.gif

A czy autor wątku poszukuje płatnych korepetycji?
Kloc
No nie @Kshyhoo, ale czy forum jest od tego, aby uczyc na sile i to w dodatku podstaw?
Niech autor da cos od siebie.
Boshi
Tyle, że nie napisał, że szuka pomocy płatnej...
com
Od nauki sa kursy i ksiazki a nie posty na forum. My tu pomagamy a nie, tak samo jak nie odrabiamy za innych prac domowych. A skoro autor nie napisal ze szuka korepetycji i jest to w tym dziale to stosuj sie do panujacych tu zasad.
Sign
^Up
Bardzo dziękuję wszystkim, którzy pomogli wink.gif

Jeszcze mam jeden problem, gdy już sie zarejestrowalem, pisze, że prawidłowe dane,a jak chce sie zalogowac, to że wprowadizlem złe dane.
Nad inputami wyskakuje blad
  1. Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/signweb/public_html/skrypt/logowanie.php:10) in /home/signweb/public_html/skrypt/logowanie.php on line 11
  2.  
  3. Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/signweb/public_html/skrypt/logowanie.php:10) in /home/signweb/public_html/skrypt/logowanie.php on line 11

a 11 linijka to session_start();, a niżej
mysql_connect("localhost","sign****r","3****i");
mysql_select_db("*****");
O co może chodzic :C
Kshyhoo
Poszukaj, co oznacza błąd "headers already sent'...
Sign
Z tego co wyczytalem, tu musze session start przesunąc na początek, a ja go mam na początku.
Turson
No to pewnie masz BOM na początku jeszcze. Zakoduj plik w UTF-8 bez BOM
com
Lub inne biale znaki, albo cokolwiek co wysylasz do przegladarki smile.gif
Kloc
daj na samym poczatku ob_start(), a na koncu ob_end_flush()
zidek
Cytat(Sign @ 31.03.2015, 19:28:00 ) *
a 11 linijka to session_start();, a niżej

Cytat(Sign @ 31.03.2015, 19:32:26 ) *
Z tego co wyczytalem, tu musze session start przesunąc na początek, a ja go mam na początku.


Strasznie jesteś niezdecydowany. Od kiedy początek to 11 linijka?
Boshi
Proponuję przeczytać co napisał Turson... zapewne tam leży problem. Żadna funkcja ob_start() nie jest potrzebna.
Sign
bom nie ma
caly kod logowanie.php
  1. <!doctype html>
  2. <html xmlns="http://www.w3.org/1999/xhtml" lang="pl" xml:lang="pl">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <title>Logowanie</title>
  6. <link rel="stylesheet" href="style.css" />
  7. </head>
  8. <body>
  9.  
  10. <?php
  11. session_start();
  12. mysql_connect("localhost","signweb_user","3a8kygi");
  13. mysql_select_db("signweb_skrypt");
  14. ?>
  15.  
  16. <form method="POST" action="logowanie.php">
  17. <b>Login:</b> <input type="text" name="login"><br>
  18. <b>Hasło:</b> <input type="password" name="haslo"><br>
  19. <input type="submit" value="Zaloguj" name="loguj">
  20. </form>
  21.  
  22. </body>
  23. </html>
  24.  
  25. <?php
  26. function filtruj($zmienna)
  27. {
  28. if(get_magic_quotes_gpc())
  29. $zmienna = stripslashes($zmienna); //Usuwanie slashy
  30.  
  31. // Usuwanie spacji/znaków
  32. return mysql_real_escape_string(htmlspecialchars(trim($zmienna)));
  33. }
  34.  
  35. if (isset($_POST['loguj']))
  36. {
  37. $login = filtruj($_POST['login']);
  38. $haslo = filtruj($_POST['haslo']);
  39. $ip = filtruj($_SERVER['REMOTE_ADDR']);
  40.  
  41. // sprawdzamy czy login i hasło są dobre
  42. if (mysql_num_rows(mysql_query("SELECT login, haslo FROM uzytkownicy WHERE login = '".$login."' AND haslo = '".md5($haslo)."';")) > 0)
  43. {
  44. // uaktualniamy date logowania
  45. mysql_query("UPDATE `uzytkownicy` SET (`logowanie` = '".time()."') WHERE login = '".$login."';");
  46.  
  47. $_SESSION['zalogowany'] = true;
  48. $_SESSION['login'] = $login;
  49.  
  50. // zalogowany
  51.  
  52. }
  53. else echo "Podane błędne dane.";
  54. }
  55. ?>
com
Bo jest to co napisałem, czytaj wszystkie posty smile.gif

Do pierwszej lini przed <!doctype html> i bez zdanych spacji itd przed tym jak tu w tym htmlu smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.