Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

4 Stron V   1 2 3 > »   
Reply to this topicStart new topic
> [PHP][MYSQL]Rejestracja i logowanie itd., Again
MateuszS
post
Post #1





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


Hey! To znowu ja ;] Chcialem napisac skrypt rejestracji użytkownika. Mam bazę "login" tabelę o nazwie "tabela" a w niej 3 rekordy: ID, Login, Haslo.

[ 3ccd php]
[/php]

Po próbie rejestracji wywala mi błąd:

Kod
[color="red"]Out of range value adjusted for column 'id' at row 1

[/color]

Ten post edytował MateuszScirka 25.12.2008, 11:36:16
Powód edycji: zmieniłem bbcode (cysiaczek)
Go to the top of the page
+Quote Post
Cysiaczek
post
Post #2





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Jaka jest wartość ostatniego pola id w bazie i jakie ma ono typ?
Go to the top of the page
+Quote Post
ddiceman
post
Post #3





Grupa: Zarejestrowani
Postów: 326
Pomógł: 121
Dołączył: 23.07.2008
Skąd: Wrocław

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


zmien
  1. <?php
  2. $zapytanie = mysql_query("INSERT INTO `tabela` ('id', `login`, `haslo`)
  3.   VALUES ('', '".$uzytkownik."', '".$haslo."')");
  4. ?>

na
  1. <?php
  2. $zapytanie = mysql_query("INSERT INTO `tabela` ('id', `login`, `haslo`)
  3.   VALUES (NULL, '".$uzytkownik."', '".$haslo."')");
  4. ?>

poza tym zwroc uwage, ze do Twojego skryptu mozna wpisac puste haslo (2 razy puste)
Go to the top of the page
+Quote Post
MateuszS
post
Post #4





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


Po zamienieniu kodu

Kod
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''id', `login`, `haslo`) VALUES (NULL, 'Mateusz', 'lalala')' at line 1


Cos z tym NULL chyba trzeba zrobic ale nie wiem....

http://img228.imageshack.us/img228/6540/42155802bv1.th.jpg
Go to the top of the page
+Quote Post
seba22
post
Post #5





Grupa: Zarejestrowani
Postów: 293
Pomógł: 4
Dołączył: 28.01.2005

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


  1. mysql_query("INSERT INTO `tabela` (login,haslo) VALUES ('$uzytkownik','$haslo')") OR die (mysql_error());



pamiętaj o ustawieniu ID -> AUTO INCREMENT
Go to the top of the page
+Quote Post
Cysiaczek
post
Post #6





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Matko! Ile mam pytać - dane o Twojej tabeli poproszę!
@ddiceman - i ten null, to co miał niby naprawić?
Go to the top of the page
+Quote Post
MateuszS
post
Post #7





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


Cysiaczek podalem ci te dane w screenie link w moim poscie powyzej

Seba22, po probie ustawienia w PHPMYADMIN auto_icostam

Kod
Błąd

zapytanie SQL:

ALTER TABLE `tabela` CHANGE `id` `id` INT( 1 ) NOT NULL AUTO_INCREMENT

MySQL zwrócił komunikat: Dokumentacja
#1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key


a bez tego auto costam, gdy probuje zarejestrowac uzytkownika. (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Kod
Field 'id' doesn't have a default value
Go to the top of the page
+Quote Post
Cysiaczek
post
Post #8





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




thumbnaila podałeś - lupy nie mam (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif)

Daj autoincrement jak Ci powiedział ~seba22
Go to the top of the page
+Quote Post
seba22
post
Post #9





Grupa: Zarejestrowani
Postów: 293
Pomógł: 4
Dołączył: 28.01.2005

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


Cytat(MateuszScirka @ 24.12.2008, 15:01:04 ) *
Cysiaczek podalem ci te dane w screenie link w moim poscie powyzej

Seba22, po probie ustawienia w PHPMYADMIN auto_icostam

Kod
Błąd

zapytanie SQL:

ALTER TABLE `tabela` CHANGE `id` `id` INT( 1 ) NOT NULL AUTO_INCREMENT

MySQL zwrócił komunikat: Dokumentacja
#1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key


a bez tego auto costam, gdy probuje zarejestrowac uzytkownika. (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Kod
Field 'id' doesn't have a default value


wykonaj to
  1. <?php
  2. ALTER TABLE tablea ADD PRIMARY KEY (id);
  3. ?>


A potem auto increment, i powinno hulać...
Go to the top of the page
+Quote Post
MateuszS
post
Post #10





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


Kod
   $zapytanie = mysql_query("INSERT INTO `tabela` ('id', 'login', 'haslo')
   VALUES ('', '".$uzytkownik."', '".$haslo."')");


Kod
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''id', 'login', 'haslo') VALUES (Mateusz', '1')' at line 1


Niestety, ustawilem ten primary key itd ale dalej sie to robi
Go to the top of the page
+Quote Post
seba22
post
Post #11





Grupa: Zarejestrowani
Postów: 293
Pomógł: 4
Dołączył: 28.01.2005

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


Teraz zgłasza błąd w składni.


Spróbuj tak...

  1. $zapytanie = mysql_query("INSERT INTO `tabela` ('login', 'haslo')
  2. VALUES ('$uzytkownik','$haslo')");
Go to the top of the page
+Quote Post
MateuszS
post
Post #12





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


Przykro mi... nie dziala (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) Probowalem juz z tymi " ' " itd ale nie wychodzi, nie mam pojecia co jest nie tak.
Go to the top of the page
+Quote Post
seba22
post
Post #13





Grupa: Zarejestrowani
Postów: 293
Pomógł: 4
Dołączył: 28.01.2005

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


Jaki błąd, bo samo "nie działa" to mało...

Wyrzuc przez echo, treść zapytania, i wrzuć ją recznie przez phpmyadmina, i sprawdz na czym się wyłoży (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)


Jak tego nie umiesz, zrobić, to daj mi drop tabeli, to Ci to machnę...
Tylko muszę wiedziec na czym pracujesz (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
Cysiaczek
post
Post #14





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Mieszasz kolego. Tu żadnej filozofii nie ma. Nadaj autoincrement na pole ID i długość wartości na większą niż 1. Daj 8.
Skoro masz ID 10, to się nie mieści, bo maks to 1-9, skoro długość wartości to 1, prawda?

Pozdrawiam
Go to the top of the page
+Quote Post
MateuszS
post
Post #15





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


Cytat(Cysiaczek @ 24.12.2008, 21:16:20 ) *
<br />Mieszasz kolego. Tu żadnej filozofii nie ma. Nadaj autoincrement na pole ID i długość wartości na większą niż 1. Daj 8.<br />Skoro masz ID 10, to się nie mieści, bo maks to 1-9, skoro długość wartości to 1, prawda?<br /><br />Pozdrawiam<br />
<br /><br /><br />

Mialem ustawione autoincrement. Zrobilem to w PHPMyAdmin. Sprobowalem tez z tym ID lecz nadal nie dziala.

Seba22
Sprobowalem wrzucic cokolwiek recznie przez Phpmyadmin

Kod
INSERT INTO `tabela` ('id', 'login', 'haslo') VALUES ('', '.Mateusz', '12345')


Co dalo

Kod
Błąd

zapytanie SQL:

INSERT INTO `tabela` ( 'id', 'login', 'haslo' )
VALUES (
'', '.Mateusz', '12345'
)

MySQL zwrócił komunikat: Dokumentacja
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''id', 'login', 'haslo') VALUES ('', '.Mateusz', '12345')' at line 1


Nie wiem czy o to Ci chodzilo.
Go to the top of the page
+Quote Post
seba22
post
Post #16





Grupa: Zarejestrowani
Postów: 293
Pomógł: 4
Dołączył: 28.01.2005

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


Cytat(MateuszScirka @ 24.12.2008, 21:24:10 ) *
<br /><br /><br />

Mialem ustawione autoincrement. Zrobilem to w PHPMyAdmin. Sprobowalem tez z tym ID lecz nadal nie dziala.

Seba22
Sprobowalem wrzucic cokolwiek recznie przez Phpmyadmin

Kod
INSERT INTO `tabela` ('id', 'login', 'haslo') VALUES ('', '.Mateusz', '12345')


Co dalo

Kod
Błąd

zapytanie SQL:

INSERT INTO `tabela` ( 'id', 'login', 'haslo' )
VALUES (
'', '.Mateusz', '12345'
)

MySQL zwrócił komunikat: Dokumentacja
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''id', 'login', 'haslo') VALUES ('', '.Mateusz', '12345')' at line 1


Nie wiem czy o to Ci chodzilo.



Daj dropa tabeli, i wklej kod... bo padne, przy tak prostym zapytaniu się wykłada że się pociąć można...
Go to the top of the page
+Quote Post
MateuszS
post
Post #17





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


To to zapytanie sie wykłada. A drop to jest w WoWie z mobów. Raczej w większości śmiecie ale czasami jakiś epik padnie. A do questów to już wogóle nie lecą ity pow. 60 levela.

Hmm dziwne ;D

DROP TABLE tabela; xDxD (IMG:http://forum.php.pl/style_emoticons/default/haha.gif)

To jak go zrobić ;> dropa
Go to the top of the page
+Quote Post
decha-design
post
Post #18





Grupa: Zarejestrowani
Postów: 415
Pomógł: 46
Dołączył: 26.05.2007
Skąd: Sandomierz

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


Cytat(MateuszScirka @ 24.12.2008, 23:22:06 ) *
To to zapytanie sie wykłada. A drop to jest w WoWie z mobów. Raczej w większości śmiecie ale czasami jakiś epik padnie. A do questów to już wogóle nie lecą ity pow. 60 levela.

Hmm dziwne ;D

DROP TABLE tabela; xDxD (IMG:http://forum.php.pl/style_emoticons/default/haha.gif)

To jak go zrobić ;> dropa


tutaj pasuje tylko jedno określenie ... 'ja pierdole' - przepraszam, ale musiałem ...

MANUAL

poza tym, może
  1. INSERT INTO tabela (id, login, haslo) VALUES (NULL, 'Mateusz', '12345')

poza tym seba, chyba nie o drop ci chodziło tylko export? (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif)

Ten post edytował decha-design 24.12.2008, 23:26:40
Go to the top of the page
+Quote Post
MateuszS
post
Post #19





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


o export to juz kojarze poza tym insert into probowalem
Go to the top of the page
+Quote Post
potreb
post
Post #20





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

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


Kolego, tutaj niektórzy zrezygnowali z wigilii, a ty wałkujesz to samo.
Eksportuj tabele z która masz problem, wklej tu kod SQL, i PHP i wtedy wszyscy poznają w czym problem. Dodatkowo stosuj dla zapytań or die(mysql_error());

$zapytanie = mysql_query("INSERT INTO `tabela` ('login', 'haslo')
VALUES ('$uzytkownik','$haslo')") or die(mysql_error());

Wtedy pokaże ci błąd.
Poczytaj też o podstawach. Poszukaj innych systemów rejestracji na tym forum, bo było ich wiele.

Ten post edytował potreb 24.12.2008, 23:31:59
Go to the top of the page
+Quote Post
decha-design
post
Post #21





Grupa: Zarejestrowani
Postów: 415
Pomógł: 46
Dołączył: 26.05.2007
Skąd: Sandomierz

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


Cytat(MateuszScirka @ 24.12.2008, 23:29:15 ) *
o export to juz kojarze poza tym insert into probowalem
bardziej chodziło mi o sprobowanie TEGO zapytania, może ono działa (IMG:http://forum.php.pl/style_emoticons/default/sleep.gif) '

A co do export / drop ... to drop raczej usuwa tabelę (IMG:http://forum.php.pl/style_emoticons/default/haha.gif)
Go to the top of the page
+Quote Post
seba22
post
Post #22





Grupa: Zarejestrowani
Postów: 293
Pomógł: 4
Dołączył: 28.01.2005

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


Przepraszam, oczywiście miałem na myśli export tabeli, nie wiem co mnie popieprzyło że napisałem drop ( mam nadzieję że sobie nic nie skasowałeś ).

Gdzieś w jakimś sofcie miałem " Drop table to disk" i mi zapisywało export ^^ -> echhh ^^


Wklejaj exporta, z mysql-a i patrzymy.
Go to the top of the page
+Quote Post
MateuszS
post
Post #23





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


Napisalem DROP i skasowalem, tak myslalem ze to delete ale i tak ta tabela byla prosta, 2 min i jest spowrotem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) A oto dane o ktore prosiliscie:

http://www.speedyshare.com/179547919.html - backup tabeli

Puki co moj kod wyglada tak: nie chcialem nic zmieniac.

Kod
<html>
<head>
    <title>Rejestracja</title>
    <meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
</head>
<body bgcolor="black" alink="white" vlink="white" link="white">    

<center>
<br /><br /><br /><br /><br />
<table>
    <tr>
        <td>
        <center>
        <font color="red">

<?php

include("baza.php");

$uzytkownik = $_POST['uzytkownik'];
$haslo = $_POST['haslo'];
$haslo1 = $_POST['rehaslo'];


if(( $haslo != $haslo1) OR empty($uzytkownik) OR empty($haslo) OR empty($haslo1))
{
    echo 'Podane przez Ciebie dane są nieprawidłowe.<br />';
    echo '<a href="rejestracja.html">Spróbuj ponownie.</a>';
}
else
{
    
   $zapytanie = mysql_query("INSERT INTO `tabela` ('id', 'login', 'haslo') VALUES ('', '".$uzytkownik."', '".$haslo."')");
    
    if(!$zapytanie)
    {
        echo mysql_error();
    }
    else
    {
        echo 'Rejestracja zakończona pomyślnie. Możesz się zalogować';
        echo '<a href="index.html">Powrót</a>';
    }    
}
?>
        
        </font>
        </center>
        </td>
    </tr>
</table>
</center>    
</body>
</html>
Go to the top of the page
+Quote Post
decha-design
post
Post #24





Grupa: Zarejestrowani
Postów: 415
Pomógł: 46
Dołączył: 26.05.2007
Skąd: Sandomierz

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


na bank błąd masz tutaj
  1. ('id', 'login', 'haslo')
powinno być
  1. (`id`, `login`, `haslo`)
... zamiast ' powinny być ` (te spod tyldy ~)...

a struktura wygląda dobrze ... o.O'

Ten post edytował decha-design 25.12.2008, 10:45:01
Go to the top of the page
+Quote Post
seba22
post
Post #25





Grupa: Zarejestrowani
Postów: 293
Pomógł: 4
Dołączył: 28.01.2005

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


Wrzuć to:

  1. -- phpMyAdmin SQL Dump
  2. -- version 3.1.1
  3. --
  4. -- Host: localhost:3306
  5. -- Czas wygenerowania: 25 Gru 2008, 10:57
  6. -- Wersja serwera: 5.0.67
  7. -- Wersja PHP: 5.2.8-0.dotdeb.1
  8.  
  9. SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
  10.  
  11. --
  12. -- Baza danych: `37_w`
  13. --
  14.  
  15. -- --------------------------------------------------------
  16.  
  17. --
  18. -- Struktura tabeli dla `tabela`
  19. --
  20.  
  21. CREATE TABLE IF NOT EXISTS `tabela` (
  22. `id` int(10) NOT NULL AUTO_INCREMENT,
  23. `login` varchar(255) NOT NULL,
  24. `haslo` varchar(255) NOT NULL,
  25. PRIMARY KEY (`id`)
  26. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
  27.  
  28. --
  29. -- Zrzut danych tabeli `tabela`
  30. --



I dodaj wpis:

  1. INSERT INTO `baza`.`tabela` (
  2. `id` ,
  3. `login` ,
  4. `haslo`
  5. )
  6. VALUES (
  7. NULL , 'test', 'test'
  8. );
Go to the top of the page
+Quote Post
MateuszS
post
Post #26





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


Out of range value adjusted for column 'id' at row 1 znowu ;/

Ok zaraz zobacze

Seba nie mialem tabeli "baza" wiec usunalem ten kawalek i dodalem do 'tabela' i weszlo czyli wpisujac do SQL w phpmyadmin dziala normalnie ale rejestracja nie dziala dalej

Nie moge kazdego uzytkownika osobno do bazy dodawac ;] Cos zle w PHP kodzie pewnie
Go to the top of the page
+Quote Post
piotrooo89
post
Post #27


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




a na 100% masz poprawnie skonfigurowane połączenie z bazą?
Go to the top of the page
+Quote Post
MateuszS
post
Post #28





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


Kod
<?php

include("baza.php");

?>


baza.php
Kod
<?php

$polaczenie = mysql_connect('localhost', 'root', 'root');
$db = mysql_select_db('login', $polaczenie);

?>
Go to the top of the page
+Quote Post
seba22
post
Post #29





Grupa: Zarejestrowani
Postów: 293
Pomógł: 4
Dołączył: 28.01.2005

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


Ma na 100 % bo SQL odpowiada błędem, czyli próbuje wykonać zapytanie, inaczej dostał by "Accces Dymanie".

Żeby się nie rozpisywać, tu masz kod który przed chwilą sprawdziłem z tabelą którą Ci podałem.

  1. <?php
  2. $login="test";
  3. $haslo="test";
  4. mysql_query("INSERT INTO `tabela` (login,haslo) VALUES ('$login','$haslo')") or die (mysql_error());
  5. ?>


Wrzucaj go w skrypt, i powiedz czy śmiga.
Go to the top of the page
+Quote Post
MateuszS
post
Post #30





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


smiga (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) juz wiem co przerobic zaraz zmodyfikuje kod i powiem czy dziala

Jeeaaaaa

Kod
<html>
<head>
    <title>Rejestracja</title>
    <meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
</head>
<body bgcolor="black" alink="white" vlink="white" link="white">    

<center>
<br /><br /><br /><br /><br />
<table>
    <tr>
        <td>
        <center>
        <font color="red">

<?php

include("baza.php");

$login = $_POST['uzytkownik'];
$haslo = $_POST['haslo'];
$haslo1 = $_POST['rehaslo'];

$zapytanie = mysql_query("INSERT INTO `tabela` (login,haslo) VALUES ('$login','$haslo')") or die (mysql_error());

if($haslo != $haslo1 or empty($haslo) or empty($haslo1) or empty($login))
{
    echo 'Wprowadziłeś nie poprawne dane';
}    

elseif ($zapytanie)
{
    echo 'Brawo. Teraz możesz się zalogować!<br />';
    echo '<center><a href="index.html">Powrót</a></center>';
}


?>
        
        </font>
        </center>
        </td>
    </tr>
</table>
</center>    
</body>
</html>


Jestescie wspaniali, dzieki wam serdeczne ale zapewniam was ze jeszcze sie odezwe ;];];] Dziekuje jeszcze raz.
Go to the top of the page
+Quote Post
seba22
post
Post #31





Grupa: Zarejestrowani
Postów: 293
Pomógł: 4
Dołączył: 28.01.2005

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


Zabezpiecz się przed SQL injection i XSS.

Przefiltruj zmienne przed dodaniem takim czymś:

$haslo=mysql_escape_string(htmlspecialchars($haslo));


Bo inaczej, twoja radośc będzie trwała tylko kilka godzin (IMG:http://forum.php.pl/style_emoticons/default/haha.gif)

Ten post edytował seba22 25.12.2008, 11:31:35
Go to the top of the page
+Quote Post
MateuszS
post
Post #32





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


Zrobione ;] Teraz logowanie. Chodzi o to ze raczej nikt nie bedzie chcial atakowac tej strony bo to tzw strona testowa. Ale dzieki, na przyszlosc bede wiedzial. Prosze nie zamykac tematu jak cos tu bede pisal o dalszych klopotach zeby nie robic new topica

No dobra wrocilem (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Mam takie cuś

Nie jest to dobrze skoro wywala mi blad
Kod
<html>
<head>
    <title>Logowanie</title>
</head>
<body vlink="white" alink="white" link="white" bgcolor="black">    
<br /><br /><br /><br />
<center>

<?php

include("baza.php");

$login = $_POST['uzytkownik'];
$haslo = $_POST['haslo'];

$haslo=mysql_escape_string(htmlspecialchars($haslo));

$zapytanie = mysql_query("SELECT `login`,`haslo` FROM `tabela` WHERE `login`=('$login'), `haslo`=('$haslo')")  

if (empty($login) or empty($haslo))
{
    echo 'Nie możesz się zalogować z pustych pól<br />';
    echo '<center><a href="logowanie.html">Spróbuj ponownie</a></center>';
}

elseif (!$zapytanie)
{
    echo 'Wprowadzone przez Ciebie dane są nie prawidłowe<br />';    
    echo '<center><a href="logowanie.html">Spróbuj ponownie</a></center>';
}
elseif ($zapytanie)
{
    echo 'Brawo udało Ci się';
}    
    
?>

</center>

</body>
</html>


Blad cos z IF ale nie widze go.
Kod
Parse error: syntax error, unexpected T_IF in C:\xampp\htdocs\ankieta\logowanie.php on line 20


Takie logowanie to ponoć sie na sesjach robi ;] (IMG:http://forum.php.pl/style_emoticons/default/ohmy.gif)
Go to the top of the page
+Quote Post
Lion_87
post
Post #33





Grupa: Zarejestrowani
Postów: 850
Pomógł: 120
Dołączył: 15.02.2007
Skąd: Łódź

Ostrzeżenie: (10%)
X----


Nie wiem ale może spróbuj dać średnik na końcu linii gdzie masz zapytanie.
Go to the top of the page
+Quote Post
MateuszS
post
Post #34





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


Fakt ale mam zaciemnie dziś... tyle że coś jest źle z $zapytanie (do bazy) zaraz sie pobawie, sam pisalem wiec moze byc blad

chyba bede potrzebowal jednak pomocy (IMG:http://forum.php.pl/style_emoticons/default/wstydnis.gif) (IMG:http://forum.php.pl/style_emoticons/default/wstydnis.gif) (IMG:http://forum.php.pl/style_emoticons/default/wstydnis.gif)

Kod
$zapytanie = mysql_query("SELECT (login,haslo)
FROM `tabela`
WHERE (login='$login') AND (haslo='$haslo')");
tu jest cos zle

Ten post edytował MateuszScirka 25.12.2008, 21:51:29
Go to the top of the page
+Quote Post
seba22
post
Post #35





Grupa: Zarejestrowani
Postów: 293
Pomógł: 4
Dołączył: 28.01.2005

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


Achh, ponuraku a można by tak:



  1. <?php
  2. $q = mysql_query("SELECT * FROM `uzytkownicy` WHERE login = '$login' AND haslo = '$haslo'") or die (mysql_error()); // queruqka usercia
  3.        $r = mysql_num_rows($q); // liczymy rowy
  4.  
  5.        if ($r == 1)
  6. {
  7. echo('Zalogowany');
  8. }
  9. else
  10. {
  11. echo('Bledne dane');
  12. }
  13. ?>


Ten post edytował seba22 25.12.2008, 21:57:23
Go to the top of the page
+Quote Post
MateuszS
post
Post #36





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


OK udalo mi sie ;P Samemu ;]

Kod
$zapytanie = mysql_query("SELECT login,haslo
FROM `tabela`
WHERE (login='$login') AND (haslo='$haslo')");


Mniej wiecej tak to ma wygladac ;]

Ten post edytował MateuszScirka 25.12.2008, 21:59:41
Go to the top of the page
+Quote Post
piotrooo89
post
Post #37


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




a tu jest moje logowanie, może Ci się przyda.
Go to the top of the page
+Quote Post
MateuszS
post
Post #38





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


Dzieki ;] A ten mam jeszcze pytanie

Pomozecie napisac skrypt ktory by obrazowal wyniki testu Mniej wiecej tak:

1. [login] - poprawnych odpowiedzi x na x i tu jakas petla
2. [login jakiegos innego ziomka] - -||-
3
4
Go to the top of the page
+Quote Post
piotrooo89
post
Post #39


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




robisz w bazie w której bedziesz trzymał np ID jakiegoś kolesia i jego odpowiedzi. np. dobre i błędne. później SELECT'em wybierasz ilość interesujących Cię danych. ja bym coś w ten deseń zrobił.
Go to the top of the page
+Quote Post
MateuszS
post
Post #40





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


PS jak zrobic tez zeby nie dalo sie wejsc do testu jesli sie nie zalogowales ? bo wystarczy wpisac adres w przegladarce i kolo wchodzi bez zalogowania (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
piotrooo89
post
Post #41


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




w moim skrypcie (linku który Ci podałem) masz tam napisane jak sprawdzić czy ktoś się zalogował.
Go to the top of the page
+Quote Post
MateuszS
post
Post #42





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


Kod
<?php
    ob_start();
    session_start();

    if(!session_is_registered("uzytkownik"))
    {
        header("Location: login.php");
    }
    ob_end_flush();
?>


Jak tu zinterpretowac "uzytkownik" oraz czy trzeba cos dodac do tego skryptu? ;>

Przepraszam za to ze tak ciagne za jezyk ale dzis caly dzien sie z glupim zapytaniem meczylem (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) a chce to juz miec za soba i na przyszlosc wszystko wiedziec


A i czy gdy w logowaniu nie zastosowalem sesji ten skrypt nie bedzie dzialal?

Ten post edytował MateuszScirka 25.12.2008, 22:45:25
Go to the top of the page
+Quote Post
piotrooo89
post
Post #43


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




no jest to sesja którą rejestruje w czasie pozytywnego logowania do bazy... jeśli nie ma takiej zarejestrowanej sesji przenosi nas do strony logowania.
Go to the top of the page
+Quote Post
MateuszS
post
Post #44





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


Kod
<html>
<head>
    <title>Logowanie</title>
</head>
<body vlink="white" alink="white" link="white" bgcolor="black">    
<br /><br /><br /><br />
<center>
<font color="blue">

<?php

include("baza.php");

$login = $_POST['uzytkownik'];
$haslo = $_POST['haslo'];

$haslo=mysql_escape_string(htmlspecialchars($haslo));

$zapytanie = mysql_query("SELECT login,haslo
FROM `tabela`
WHERE (login='$login') AND (haslo='$haslo')");

if (empty($login) or empty($haslo))
{
    echo 'Nie możesz się zalogować z pustych pól<br />';
    echo '<center><a href="logowanie.html">Spróbuj ponownie</a></center>';
}

elseif (!$zapytanie)
{
    echo 'Wprowadzone przez Ciebie dane są nie prawidłowe<br />';    
    echo '<center><a href="logowanie.html">Spróbuj ponownie</a></center>';
}
elseif ($zapytanie)
{
    echo '<META HTTP-EQUIV="Refresh" CONTENT="1;URL=ankieta.html">';
}    

?>

</font>
</center>

</body>
</html>


Caly moj skrypt, bez sesji, a gdy dodalem to do kodu ankiety (ktora ma byc uruchomiona po logowaniu) wywala
Kod
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\xampp\htdocs\ankieta\ankieta.php:1) in C:\xampp\htdocs\ankieta\ankieta.php on line 3

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\ankieta\ankieta.php:1) in C:\xampp\htdocs\ankieta\ankieta.php on line 3

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\ankieta\ankieta.php:1) in C:\xampp\htdocs\ankieta\ankieta.php on line 7
fghfhf
Go to the top of the page
+Quote Post
piotrooo89
post
Post #45


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




na moim blogu masz również rozwiązanie tego problemu... poszukaj tu też było kilka razy (sorry kilkadziesiąt razy)
Go to the top of the page
+Quote Post
MateuszS
post
Post #46





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


Zastosowalem sie do tego z headerem ale mimo to sie tak dzieje...
Go to the top of the page
+Quote Post
piotrooo89
post
Post #47


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




dodaj na samym początku i zadbaj o to aby nic przed tym nie było (znaki, również białe spacje, tabulatory i entery)
Go to the top of the page
+Quote Post
MateuszS
post
Post #48





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


Sory (bez BOM) - zle to zrozumialem ;P Przepraszam

Dziala idealnie ;] Teraz trzeba sie zalogowac zeby mozna bylo wejsc na strone ;];]

Hee tyle ze po zalogowaniu tez kaze sie logowac oO ;D Cos jest jednak zle...
Go to the top of the page
+Quote Post
piotrooo89
post
Post #49


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




dobrą stronę header'em przekazujesz? pokaż kod logowania bo tak nic nie wywnioskujemy.
Go to the top of the page
+Quote Post
MateuszS
post
Post #50





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


Kod logowania jest powyzej (logowanie.php)

a oto to co zrobiłem w ankieta.php
Kod
<?php
    ob_start();
    session_start();

    if(!session_is_registered("uzytkownik"))
    {
        header("Location: logowanie.php");
    }

    ob_end_flush();
?>

<html>
<head>
    <title>Das testen!</title>
    <meta http-equiv="Content-type" content="text/html; charset=UTF-8" />    
</head>
<body alink="white" vlink="white" link="white" bgcolor="black">    
<form action="wynik.php" method="POST">

    <center>
    <font size="6" face="verdana" color="white">Test na "mondrość". Zapraszam</font>
    </center>
    
    <font color="white">
        <p>1. Co jesz gdy jesteś głodny?</p>
        <ol>
            <li><input type="radio" name="p1" value="1" />
                Zupę.</li>
            <li><input type="radio" name="p1" value="2" />    
                Cokolwiek.</li>
            <li><input type="radio" name="p1" value="3" />
                Nie jem nic.</li>
        </ol>
            
        <p>        
        


</form>
</body>
</html>

Niedokończone
Go to the top of the page
+Quote Post
piotrooo89
post
Post #51


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




pewnie nie masz zarejestrowanej tej sesji i dlatego...
Go to the top of the page
+Quote Post
MateuszS
post
Post #52





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


i? ;D

Pomozesz zmodyfikowac kod? Nigdy na sesjach nie operowałem. (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) What I should do?
Go to the top of the page
+Quote Post
piotrooo89
post
Post #53


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




pokaż jak robisz logowanie, wraz z rejestracją sesji to dość ważne.
Go to the top of the page
+Quote Post
MateuszS
post
Post #54





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


Wszystko co mam

logowanie.php (system logowania)
Kod
<html>
<head>
    <title>Logowanie</title>
    <meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
</head>

<body bgcolor="black" alink="white" vlink="white" link="white">

    <a href="index.html"> Powrót </a>

<form action="logowanie.php" method="POST">
<center>

<br /><br /><br />
<table border="1" cellpadding="13">
    <tr>
        <td>
        <center>
            <font size="5" face="arial" color="blue">Zaloguj się</font>
        </center> <br /><br />
            <p>
            <font size="4" face="Verdana" color="white">
            <input type="text" size="15" name="uzytkownik" maxlength="12" /> Nazwa użytkownika </p>
            <p>
            <input type="password" size="15" name="haslo" maxlength="12" /> Hasło </p><br /><br />
            <center>
            <input type="submit" value=" Zaloguj ">
            </center>
            </p>
            
        
        
        </td>
    </tr>    
</table>
</center>
</form>

</body>
</html>


rejestracja.php (rejestrowanie uzytkownika w bazie)
Kod
<html>
<head>
    <title>Rejestracja</title>
    <meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
</head>
<body bgcolor="black" alink="white" vlink="white" link="white">    

<center>
<br /><br /><br /><br /><br />
<table>
    <tr>
        <td>
        <center>
        <font color="red">

<?php

include("baza.php");

$login = $_POST['uzytkownik'];
$haslo = $_POST['haslo'];
$haslo1 = $_POST['rehaslo'];

$haslo=mysql_escape_string(htmlspecialchars($haslo));

$zapytanie = mysql_query("INSERT INTO `tabela` (login,haslo) VALUES ('$login','$haslo')") or die (mysql_error());

if($haslo != $haslo1 or empty($haslo) or empty($haslo1) or empty($login))
{
    echo 'Wprowadziłeś niepoprawne dane! <br />';
    echo '<center><a href="rejestracja.html">Spróbuj ponownie</a></center>';
}    

elseif ($zapytanie)
{
    echo 'Brawo. Teraz możesz się zalogować!<br />';
    echo '<center><a href="index.html">Powrót</a></center>';
}


?>
        
        </font>
        </center>
        </td>
    </tr>
</table>
</center>    
</body>
</html>


ankieta.php (dostęp wyłącznie po zalogowaniu)
Kod
<?php
    ob_start();
    session_start();

    if(!session_is_registered("uzytkownik"))
    {
        header("Location: logowanie.php");
    }

    ob_end_flush();
?>

<html>
<head>
    <title>Das testen!</title>
    <meta http-equiv="Content-type" content="text/html; charset=UTF-8" />    
</head>
<body alink="white" vlink="white" link="white" bgcolor="black">    
<form action="wynik.php" method="POST">

    <center>
    <font size="6" face="verdana" color="white">Test na "mondrość". Zapraszam</font>
    </center>
    
    <font color="white">
        <p>1. Co jesz gdy jesteś głodny?</p>
        <ol>
            <li><input type="radio" name="p1" value="1" />
                Zupę.</li>
            <li><input type="radio" name="p1" value="2" />    
                Cokolwiek.</li>
            <li><input type="radio" name="p1" value="3" />
                Nie jem nic.</li>
        </ol>
            
        <p>2. Ile wiatraków jest w Holandii?</p>
        <ol>
            <li><input type="radio" name="p2" value="1" />
            A lot.</li>
            <li><input type="radio" name="p2" value="2" />
            4769 wiatraków wszystkich rodzajów.</li>
            <li><input type="radio" name="p2" value="3" />
            Nikt ich liczby nie oszacował.</li>
        </ol>    
        
        <p>3. Jaka z poniższych gier jest najbrutalniejsza?</p>
        <ol>
            <li><input type="radio" name="p3" value="1" />
            Kółko i krzyżyk.</li>
            <li><input type="radio" name="p3" value="2" />
            The Sims 2: Zestaw Świąteczny.</li>
            <li><input type="radio" name="p3" value="3" />
            Gra w karty</li>
        </ol>    


</form>
</body>
</html>


Do tego są proste formularze HTML. To wszystko co mam nic więcej nie mam, no jeszcze mogę zrzucić backupa bazy SQL. Nic wiecej nie mam
Go to the top of the page
+Quote Post
piotrooo89
post
Post #55


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




popraw logowanie tak jak ja podałem na blogu. musisz to na jednej stronie zrobić bo inaczej będzie się "zapętlać". tam masz wszystko napisane...


//EDIT
zrobiłem Ci to
  1. <?php
  2.    ob_start();
  3.    session_start();
  4.    $login = $_POST['loguj'];
  5.    if($login)
  6.    {
  7.        $user = $_POST['uzytkownik'];
  8.        $haslo = $_POST['haslo'];
  9.  
  10.        $sql = mysql_query("SELECT * FROM admin WHERE user='$user' AND pass='$haslo'");
  11. if(@mysql_num_rows($sql))
  12.        {
  13.            session_register("uzytkownik");
  14.            header("Location: ankieta.php");
  15.        exit;
  16.        }
  17.        else
  18.        {
  19.            $message="Nieprawidłowa nazwa użytkownika lub hasło.";
  20.        }
  21.    }
  22.    ob_end_flush();
  23. ?>
  24. <html>
  25. <head>
  26.    <title>Logowanie</title>
  27.    <meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
  28. </head>
  29.  
  30. <body bgcolor="black" alink="white" vlink="white" link="white">
  31.  
  32.    <a href="index.html"> Powrót </a>
  33.  
  34. <form action="logowanie.php" method="POST">
  35. <center>
  36.  
  37. <br /><br /><br />
  38. <table border="1" cellpadding="13">
  39.    <tr>
  40.        <td>
  41.        <center>
  42.            <font size="5" face="arial" color="blue">Zaloguj się</font>
  43.        </center> <br /><br />
  44.            <p>
  45.            <font size="4" face="Verdana" color="white">
  46.            <input type="text" size="15" name="uzytkownik" maxlength="12" /> Nazwa użytkownika </p>
  47.            <p>
  48.            <input type="password" size="15" name="haslo" maxlength="12" /> Hasło </p><br /><br />
  49.            <center>
  50.            <input type="submit" value=" Zaloguj ">
  51.            </center>
  52.            </p>
  53.        </td>
  54.    </tr>    
  55. </table>
  56. </center>
  57. </form>
  58. </body>
  59. </html>


pozmieniaj sobie tylko nazwy tabel i ewentualnie kluczy w $_POST.

Ten post edytował piotrooo89 25.12.2008, 23:30:54
Go to the top of the page
+Quote Post
MateuszS
post
Post #56





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


Kod
<html>
<head>
    <title>Logowanie</title>
</head>
<body vlink="white" alink="white" link="white" bgcolor="black">    
<br /><br /><br /><br />
<center>
<font color="blue">

<?php

ob_start();
session_start();

include("baza.php");

$login = $_POST['uzytkownik'];
$haslo = $_POST['haslo'];

$haslo=mysql_escape_string(htmlspecialchars($haslo));

$zapytanie = mysql_query("SELECT login,haslo
FROM `tabela`
WHERE (login='$login') AND (haslo='$haslo')");

if(!session_is_registered("uzytkownik"))
{
    header("Location: logowanie.php");
}
exit;

if (empty($login) or empty($haslo))
{
    echo 'Nie możesz się zalogować z pustych pól<br />';
    echo '<center><a href="logowanie.html">Spróbuj ponownie</a></center>';
}

elseif (!$zapytanie)
{
    echo 'Wprowadzone przez Ciebie dane są nie prawidłowe<br />';    
    echo '<center><a href="logowanie.html">Spróbuj ponownie</a></center>';
}
elseif ($zapytanie)
{
    echo 'k';
}    




ob_end_flush();


?>

</font>
</center>

</body>
</html>


Nie działa. Nie wiem co mam robić... mówicie do mnie ale to jakos nie dociera... ja chyba potrzebuje jakiegoś gotowca. Dało by sie zmodyfikowac te moje powyzszy kody (z poprzedniego postu) tak zeby to dzialalo?

Podziwiam Cie Piotrooo89 i doceniam twoją pomoc jednak, mimo dokładnego opisu w Blogu itp. to dalej nie chce działać.

Przynajmniej headery działaja juz ;]
Go to the top of the page
+Quote Post
piotrooo89
post
Post #57


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




ale Twój przykład nie jest taki jak mój... przeanalizuj go na spokojnie... nie możesz po zarejestrowaniu sesji przeładowywać z powrotem na stronę logowania, musisz to zrobić nas stronę docelową tzn w Twoim wypadku ankieta.php. popatrz również na układ kodu nie jest on przypadkowy. pomyśl trochę sam.
Go to the top of the page
+Quote Post
MateuszS
post
Post #58





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


Myslalem kombinowalem.

logowanie.php - NIE DZIALA
Kod
<?php

ob_start();
session_start();

include("baza.php");

$login = $_POST['uzytkownik'];
$haslo = $_POST['haslo'];

$haslo=mysql_escape_string(htmlspecialchars($haslo));

$zapytanie = mysql_query("SELECT login,haslo
FROM `tabela`
WHERE (login='$login') AND (haslo='$haslo')");

if ($zapytanie)
{
    session_register("uzytkownik");
    header("Location: ankieta.php");

}

else
{    
    echo 'Wprowadzone przez Ciebie dane są nie prawidłowe<br />';    
    echo '<center><a href="logowanie.html">Spróbuj ponownie</a></center>';
}

ob_end_flush();


?>




ankieta.php
Kod
<?php
    ob_start();
    session_start();

    if(!session_is_registered("uzytkownik"))
    {
        header("Location: logowanie.php");
    }
    ob_end_flush();
?>


Co nie wpisze w loginie czy hasle i tak mnie przezuci do ankiety. Myslenie i kombinowanie nie pomoglo, analizowalem twoj kod, zrobilem co moglem.... Jest jeszcze chyba gorzej niz bylo (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
bobo168
post
Post #59





Grupa: Zarejestrowani
Postów: 201
Pomógł: 9
Dołączył: 23.08.2006

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


A po co Ci te nawiasy w "WHERE" ?
Go to the top of the page
+Quote Post
MateuszS
post
Post #60





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


To nie ma nic do rzeczy, tak ma byc i tak dziala (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) reszta nie dziala, warunek nie dziala itd ;/

Blad jest z uzyciem sesji na pewno i moze header() ale nie wiem jak to poprawic bo nie mam z tym doswiadczenia, troche kombinowalem ale wyszlo jeszcze gorzej
Go to the top of the page
+Quote Post
Tajgeer
post
Post #61





Grupa: Zarejestrowani
Postów: 290
Pomógł: 48
Dołączył: 11.05.2008
Skąd: Kielce

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


Kod
<?php
       ob_start();
       session_start();
    
       include("baza.php");
      
       $login = $_POST['uzytkownik'];
       $haslo = $_POST['haslo'];
      
       $haslo=mysql_escape_string(htmlspecialchars($haslo));
      
       $zapytanie = mysql_query("SELECT `haslo` FROM `tabela` WHERE `login`='$login'") or die("Podany użytkownik nie istnieje");
       $wynik = mysql_fetch_row($zapytanie);
       $password = $wynik[0];
      
       if ($haslo==$password) {

           session_register("uzytkownik");
           header("Location: ankieta.php");
      
       } else {  
    
           echo 'Wprowadzone przez Ciebie dane są nie prawidłowe';    
           echo '<center><a href="logowanie.html">Spróbuj ponownie</a></center>';
       }
      
       ob_end_flush();
      
      
       ?>


Spróbuj z takim skryptem.

Ten post edytował Tajgeer 26.12.2008, 12:04:02
Go to the top of the page
+Quote Post
MateuszS
post
Post #62





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


Nie przyjmuje poprawnych passow. Poza tym nawet nie wpisujac nic mozna sie zalogowac na ankiete... ;/
Go to the top of the page
+Quote Post
Tajgeer
post
Post #63





Grupa: Zarejestrowani
Postów: 290
Pomógł: 48
Dołączył: 11.05.2008
Skąd: Kielce

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


Uaktualniłem skrypt w moim wcześniejszym poście. Sprawdź.
Go to the top of the page
+Quote Post
MateuszS
post
Post #64





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


Po zalogowaniu sie i gdy biore np wstecz i znowu zaloguj to moge logowac sie bez hasla bez niczego... Przdalo by sie jakies wylogowanie albo cos
Go to the top of the page
+Quote Post
Tajgeer
post
Post #65





Grupa: Zarejestrowani
Postów: 290
Pomógł: 48
Dołączył: 11.05.2008
Skąd: Kielce

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


Nie lepiej zrobić logowanie w oparciu o ciasteczka (jako wartość podawany jest na przykład dynamicznie generowany ciąg znaków, który znajduje się również w bazie danych) ?
Później jeśli ktoś wejdzie na stronę logowania to sprawdzamy obecność ciasteczka - jeśli istnieje i dane się zgadzają (tzn wartość cookie oraz wartość podana w bazie danych) to przekierować na ankieta.php (tam również dodać sprawdzanie żeby ktoś nie wszedł bezpośrednio), jeśli nie - pokazać formularz logowania.
Tak samo w pliku ankieta.php. Jeśli ciasteczko istnieje i jego wartość zgadza się z wartością wpisaną w bazie danych - pokazać ankietę. W przeciwnym wypadku przekierowanie na stronę logowania i wio (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Ten post edytował Tajgeer 26.12.2008, 12:34:31
Go to the top of the page
+Quote Post
MateuszS
post
Post #66





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


Walnalem kod HTML w PHP w logowanie.php tak zeby od razu po zalogowaniu przenioslo na ankiete. Jak sie wszystko uda wykonczyc wklepie tu adres strony a potem bede mogl przerabiac swobodnie z sesjami itp.

Nie potrafie tego jeszcze, w oparciu o cookies ;]

Ten post edytował MateuszScirka 26.12.2008, 12:34:17
Go to the top of the page
+Quote Post
Tajgeer
post
Post #67





Grupa: Zarejestrowani
Postów: 290
Pomógł: 48
Dołączył: 11.05.2008
Skąd: Kielce

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


Czas najwyższy poczytać trochę o cookie. Odpowiednio napisany skrypt logowania (np. w ten sposób, jaki ja podałem) okazuje się bardzo bezpieczny, jeśli dodatkowo damy opcję, że przy każdym wylogowaniu z serwisu generowany jest nowy ciąg znaków, następnie zapisywany w bazie danych i przy kolejnym logowaniu ustawiany jako wartość ciasteczka.

Ten post edytował Tajgeer 26.12.2008, 12:37:12
Go to the top of the page
+Quote Post
MateuszS
post
Post #68





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


Tak bedzie trzeba zrobic (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Puki co sprobuje jakos dokonczyc to co robie... (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Jest mozliwe takie cos ze np Loguje sie nickiem: Mateusz a potem przy porownywaniu wynikow z ankiety i punktacji pisalo "Mateusz - Punktow 10" gdzie Mateusz to login.

(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

I jeszcze jedno pytanie:

Jak zrobić żeby koleś bez zalogowania nie mogl widziec strony? Pododawalem te sesje itd ale to nic nie daje....
Go to the top of the page
+Quote Post
Tajgeer
post
Post #69





Grupa: Zarejestrowani
Postów: 290
Pomógł: 48
Dołączył: 11.05.2008
Skąd: Kielce

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


Kod
<?php
if(isset($_SESSION['uzytkownik'])) {

// kod dla użytkownika, który jest zalogowany

} else {

// kod dla niezalogowanego

}
?>


Ten post edytował Tajgeer 26.12.2008, 18:46:26
Go to the top of the page
+Quote Post
MateuszS
post
Post #70





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


A wiecie co tu może być źle?

Kod
$zapytanie = mysql_query("UPDATE tabela SET punktacja='$wynik' WHERE login='$_SESSION[uzytkownik]',haslo='$_SESSION[haslo]',punktacja='$wynik'");


Pisze ze dodalo rekordy ale po sprawdzeniu w bazie nic sie nie zmienilo... Jak cos moge podac wiecej danych

Tajgeer, coś nie tak jest bo cały czas wywala mi kod dla niezalogowanego mimo że się probowalem zalogowac. Na pewno to jest dobry kod
?
Go to the top of the page
+Quote Post
Tajgeer
post
Post #71





Grupa: Zarejestrowani
Postów: 290
Pomógł: 48
Dołączył: 11.05.2008
Skąd: Kielce

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


Może tak ?

Kod
<?php
$login = $_SESSION['uzytkownik'];
$haslo = $_SESSION['haslo'];
$zapytanie = mysql_query("UPDATE `tabela` SET `punktacja`='$wynik' WHERE `login`='$login' AND `haslo`='$haslo'");
?>
Go to the top of the page
+Quote Post
phpion
post
Post #72





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




@MateuszScierka:
Do łączenia warunków używa się AND a nie przecinka. Możliwe, że wystarczy poprawić tylko to.
Go to the top of the page
+Quote Post
MateuszS
post
Post #73





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


Tajgeer probowalem juz tak. Jednak wtedy wkradl mi sie byk. Twoj kod pieknie to naprawił. Dziekuje.

Phpion: owszem, mój błąd dzięki.


Teraz tylko została kwestia tego że:
1. Po zalogowaniu przenosi mnie do ankieta.php gdzie mam wypełnić ją. Chcę aby zawsze gdy ktoś bez logowania wlepia ten link http://..../ankieta.php zawsze go przenosilo do strony logowania z "tabliczką" : Aby obejrzec ta witryne musisz sie zalogowac. Wczesniejszy kod Tajgeera nie bardzo chcial zadzialac albo ja go nie potrafilem uzyc.

logowanie.php
Kod
<?php
ob_start();

session_start();

include("baza.php");

$login = $_POST['uzytkownik'];
$haslo = $_POST['haslo'];

$_SESSION['uzytkownik'] = $login;
$_SESSION['haslo'] = $haslo;

$haslo = mysql_escape_string(htmlspecialchars($haslo));

$zapytanie = mysql_query("SELECT login,haslo
FROM `tabela`
WHERE (login='$login') AND (haslo='$haslo')");

if (empty($login) or empty($haslo))
{    
    echo '<br /><br/>';
    echo '<body bgcolor="black" alink="white" vlink="white" link="white"><font color="white"><center>Wprowadzone przez Ciebie dane są nie prawidłowe<br />';    
    echo '<center><a href="logowanie.html">Spróbuj ponownie</a></center>';
}

elseif ($zapytanie)
{
    session_register("uzytkownik");
    header("Location: ankieta.php");

}



ob_end_flush();


?>

</form>
</font>
</center>

</body>
</html>



ankieta.php
Kod
<html>
<head>
    <title>Das testen!</title>
    <meta http-equiv="Content-type" content="text/html; charset=UTF-8" />    
</head>
<body alink="white" vlink="white" link="white" bgcolor="black">    
<form action="wynik.php" method="POST">


    <center>
    <font size="6" face="verdana" color="white">Test na "mondrość". Zapraszam</font>
    </center>

<table>
<tr>
    <td width="500">
    
    <font color="white">
        <p>1. Co jesz gdy jesteś głodny?</p>
        <ol>
            <li><input type="radio" name="p1" value="1" />
                Zupę.</li>
            <li><input type="radio" name="p1" value="2" />    
                Cokolwiek.</li>
            <li><input type="radio" name="p1" value="3" />
                Nie jem nic.</li>
        </ol>
            
        <p>2. Ile wiatraków jest w Holandii?</p>
        <ol>
            <li><input type="radio" name="p2" value="1" />
            A lot.</li>
            <li><input type="radio" name="p2" value="2" />
            4769 wiatraków wszystkich rodzajów.</li>
            <li><input type="radio" name="p2" value="3" />
            Nikt ich liczby nie oszacował.</li>
        </ol>    
        
        <p>3. Jaka z poniższych gier jest najbrutalniejsza?</p>
        <ol>
            <li><input type="radio" name="p3" value="1" />
            Kółko i krzyżyk.</li>
            <li><input type="radio" name="p3" value="2" />
            The Sims 2: Zestaw Świąteczny.</li>
            <li><input type="radio" name="p3" value="3" />
            Gra w karty</li>
        </ol>    

        <p>4. Największa planeta w galaktyce Drogi Mlecznej to:</p>
        <ol>    
            <li><input type="radio" name="p4" value="1" />    
            Księżyc.</li>
            <li><input type="radio" name="p4" value="2" />
            Nie wiadomo.</li>
            <li><input type="radio" name="p4" value="3" />
            Jowisz.</li>
        </ol>    
            
        <p>5. Prosta przecięta drugą prostą tworzą 4:</p>
        <ol>    
            <li><input type="radio" name="p5" value="1" />    
            Odcinki.</li>
            <li><input type="radio" name="p5" value="2" />
            Proste.</li>
            <li><input type="radio" name="p5" value="3" />
             Proste półproste.</li>
        </ol>    
        
        <p>6. Ta głupia strona jest po to by:</p>
        <ol>    
            <li><input type="radio" name="p6" value="1" />    
            Bo ma być</li>
            <li><input type="radio" name="p6" value="2" />
            Nie wiadomo.</li>
            <li><input type="radio" name="p6" value="3" />
            Bo tak mi się zachciało.. tzn mu.</li>
        </ol>    
        
        </font>
        
        </td>
        <td width="500">
            
            <font color="white">
        
        <p>7. 2 plus 2 razy 2 = x gdzie:</p>
        <ol>    
            <li><input type="radio" name="p7" value="1" />    
            x = 8</li>
            <li><input type="radio" name="p7" value="2" />
            x:{5;7}</li>
            <li><input type="radio" name="p7" value="3" />
            x = 0</li>
        </ol>
        
        <p>8. Co to jest "nic"? </p>
        <ol>    
            <li><input type="radio" name="p8" value="1" />    
            Pół litra na dwóch.</li>
            <li><input type="radio" name="p8" value="2" />
            Pół litra na siebie.</li>
            <li><input type="radio" name="p8" value="3" />
            Brak czegokolwiek.</li>
        </ol>
        
        <p>9. Jetseś pilotem samolotu. W łodzi wsiadło 46 osób, a wysiadło 17.W poznaniu wysiadło 9. Ile pilot ma lat?</p>
        <ol>
            <li><input type="radio" name="p9" value="1" />    
            100.</li>
            <li><input type="radio" name="p9" value="2" />
            A co to pilot?</li>
            <li><input type="radio" name="p9" value="3" />
            Tyle co ja.</li>
        </ol>
        
        <p>10. Co mówi kasa sklepowa do kalkulatora? </p>
        <ol>
            <li><input type="radio" name="p10" value="1" />    
            Możesz na mnie liczyć.</li>
            <li><input type="radio" name="p10" value="2" />
            Jesteś cool.</li>
            <li><input type="radio" name="p10" value="3" />
            Czy ty myślisz?</li>    
        </ol>
        
        <p>11. Ile buraków wejdzie do litrowego słoika?</p>
        <ol>
            <li><input type="radio" name="p11" value="1" />    
            Zależy jakie buraki.</li>
            <li><input type="radio" name="p11" value="2" />
            10.</li>
            <li><input type="radio" name="p11" value="3" />
            Mniej niż 0</li>
        </ol>

        <p>12. Co robi zapalony internauta, jak pozna fajną dziewczynę?</p>
        <ol>
            <li><input type="radio" name="p12" value="1" />    
            Invituje go do Party lub Raid Group.</li>
            <li><input type="radio" name="p12" value="2" />
            Dodaje ją do ulubionych</li>
            <li><input type="radio" name="p12" value="3" />
            Wchodzą na kurnik.pl i grają w kalambury.</li>
        </ol>        
    

    </td>
    </tr>
</table>    
<br />
<center><input type="submit" value="Porównaj wyniki" size="15" /></center>

</form>
</body>
</html>


+ jeszcze

Kod
<?php

ob_start();
include("baza.php");

$zapytanie = mysql_query("SELECT login,punktacja FROM tabela");
    echo '<center><table border="1">';
while ($row = mysql_fetch_assoc($zapytanie))
{
    echo '<tr>';
    echo '<td>'.$row['Nick'].'</td>';
    echo '<td>'.$row['Punktacja'].'</td>';
    echo '</tr>';
}
echo '</table>';
ob_end_flush();

?>


Gdzie popełniłem błąd ? oO

Kod
    echo '<td>'.$row['Nick'].'</td>';
    echo '<td>'.$row['Punktacja'].'</td>';

To sciagnalem i troche mi sie nie podoba..

A oto co udalo mi sie dzieki temu tematowi zrobic ;]

http://www.test-inteligencja.yoyo.pl/index.html
Go to the top of the page
+Quote Post

4 Stron V   1 2 3 > » 
Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 10.10.2025 - 02:16