Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Znów sesje
-Wieviór-
post 27.03.2004, 09:38:01
Post #1





Goście







Mam skrypt logowania i sesji... dziala mi :!:
Ale on jest dostosowany do jednego loginu i jednego hasla, a ja bym chcial zeby byl oparty na bazie danych, tzn. mam tabele uzytkownicy i tam mam pola "login" "haslo" i inne ale nie dotyczy.'
Czy moglibyscie mi zmienic ten skrypt na taki na baze?

index.php
[php:1:6c25ac14b2]
<html>
<body>
<form action="login.php" method="post">
login <input type="text" name="login"><br />
password<input type="password" name="password"> <br />
<input type="submit" value="loguj">
</form>
</body>
</html>
[/php:1:6c25ac14b2]

login.php
[php:1:6c25ac14b2]<?php
session_start();

//tu nalezalo by sie odwolac do bazy
if ($_POST['login'] == "user1" && $_POST['password'] == "123")
{
$_SESSION["LOGGED_USER_ID"]="user1";
header ("location: konto.php");
}
else
{
session_destroy();
header ("location: index.php");
}
?>[/php:1:6c25ac14b2]

konto.php
[php:1:6c25ac14b2]<?php
session_start();

if (!isset($_SESSION["LOGGED_USER_ID"]))
{
session_destroy();
header ("location: index.php");
}
else
{
print "<a href="logout.php"> logout </a>";
}
?>[/php:1:6c25ac14b2]

logout.php
[php:1:6c25ac14b2]<?php
session_start();
$_SESSION["LOGGED_USER_ID"]="";
session_destroy();
header ("location: index.php");
?>[/php:1:6c25ac14b2]
Go to the top of the page
+Quote Post
-Wieviór-
post 27.03.2004, 12:14:07
Post #2





Goście







HALLO!! laugh.gif
Go to the top of the page
+Quote Post
Ive
post 27.03.2004, 15:18:42
Post #3





Grupa: Zarejestrowani
Postów: 352
Pomógł: 1
Dołączył: 17.07.2003
Skąd: Kazanów

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


login.php:
[php:1:e944f0a076]<?php

//wyedytuj sobie te zmienne
$dbHost = 'host';
$dbUser = 'nazwa_usera_do_mysqla';
$dbHaslo = 'haslo_do_mysqla';
$dbName = 'nazwa_bazy';
//koniec edycji

mysql_connect("$dbHost","$dbUser","$dbHaslo") or die ("Nie można połączyć się z MySQL");
mysql_select_db("$dbName") or die ("Nie można połączyć się z bazą danych");

$query = mysql_query("SELECT * FROM `uzytkownicy` WHERE `username`='".$_POST['login']."' AND `haslo`='".$_POST['password']."'");
if(!$query) die("Błąd zapytania!");
$ile = mysql_num_rows($query);
if($ile<1) die("Podane dane są błędne!");

$_SESSION['LOGGED_USER_ID']=$_POST['login'];
header("Location: konto.php");
?>[/php:1:e944f0a076]

pisałem szybko ale powinno działać ;]

[EDIT]
w zmiennej $query podałem moje przykładowe nazwy pól w tabeli uzytkownicy. zmien je sobie do danych ustawionych u ciebie ;]
Go to the top of the page
+Quote Post
-Wieviór-
post 27.03.2004, 16:10:42
Post #4





Goście







Kod
Błąd zapytania!


ale wydaje sie ze bedzie dzialac tongue.gif
Go to the top of the page
+Quote Post
Ive
post 27.03.2004, 16:16:10
Post #5





Grupa: Zarejestrowani
Postów: 352
Pomógł: 1
Dołączył: 17.07.2003
Skąd: Kazanów

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


a pozmieniałeś te nazwy pól?
Go to the top of the page
+Quote Post
-Wieviór-
post 27.03.2004, 16:18:24
Post #6





Goście







tak
Go to the top of the page
+Quote Post
Ive
post 27.03.2004, 16:26:58
Post #7





Grupa: Zarejestrowani
Postów: 352
Pomógł: 1
Dołączył: 17.07.2003
Skąd: Kazanów

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


zmieniłem lekko kod. spróbuj teraz
Go to the top of the page
+Quote Post
-Wieviór-
post 27.03.2004, 16:37:47
Post #8





Goście







Skrypt tak jakby zostaje w miejscu, jak sie zaloguje to zostaje przy index.php, juz mam którys rz taki blad laugh.gif
Go to the top of the page
+Quote Post
Ive
post 27.03.2004, 16:40:00
Post #9





Grupa: Zarejestrowani
Postów: 352
Pomógł: 1
Dołączył: 17.07.2003
Skąd: Kazanów

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


a wstaw taki kodzik:
[php:1:37eff85d44]<?php
echo" Skrypt nie staje w miejscu ;] ";
?>[/php:1:37eff85d44]
po:
[php:1:37eff85d44]<?php
if($ile<1) die("Podane dane są błędne!");
?>[/php:1:37eff85d44]
Go to the top of the page
+Quote Post
-Wieviór-
post 27.03.2004, 19:57:28
Post #10





Goście







Skrypt nie staje w miejscu ;]
Warning: Cannot modify header information - headers already sent by (output started at c:usrkrasnalwwwtypowanienowe2login.php:18) in c:usrkrasnalwwwtypowanienowe2login.php on line 21

:?
Go to the top of the page
+Quote Post
czachor
post 27.03.2004, 20:06:37
Post #11





Grupa: Zarejestrowani
Postów: 897
Pomógł: 40
Dołączył: 16.12.2003
Skąd: Warszawa

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


Błąd z headerem genruje Ci ten fragment z "Skrypt nie staje w miejscu", po prostu to wykasuj albo wstaw ob_start(); na początek skryptu i ob_end_flush(); na koniec.


--------------------
how many SEO experts does it take to change a light bulb,lightbulb,light,bulb,lamp,lighting,switch,sex,xxx
5-Reasons-why-you-should-NEVER-fix-a-computer-for-free
Go to the top of the page
+Quote Post
Ive
post 27.03.2004, 20:25:07
Post #12





Grupa: Zarejestrowani
Postów: 352
Pomógł: 1
Dołączył: 17.07.2003
Skąd: Kazanów

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


no to trzeba było od razu pisac że ci ten komunikat wywala ;] bo teraz to praktycznie w każdym skrypcie w którym wysyłasz informacje do przeglądarki to musisz wstawić funkcję ob_start() na samym początku i ob_end_flush na samym końcu ;]
Pozdrawiam, Ive
Go to the top of the page
+Quote Post
-Wieviór-
post 28.03.2004, 15:43:40
Post #13





Goście







Tzn. Co gdzie i jak?? laugh.gif tongue.gif biggrin.gif
Go to the top of the page
+Quote Post
Chewolf
post 28.03.2004, 15:55:36
Post #14





Grupa: Zarejestrowani
Postów: 335
Pomógł: 0
Dołączył: 15.11.2003

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


[php:1:652a802f25]<?php
ob_start();
//wyedytuj sobie te zmienne
$dbHost = 'host';
$dbUser = 'nazwa_usera_do_mysqla';
$dbHaslo = 'haslo_do_mysqla';
$dbName = 'nazwa_bazy';
//koniec edycji

mysql_connect("$dbHost","$dbUser","$dbHaslo") or die ("Nie można połączyć się z MySQL");
mysql_select_db("$dbName") or die ("Nie można połączyć się z bazą danych");

$query = mysql_query("SELECT * FROM `uzytkownicy` WHERE `username`='".$_POST['login']."' AND `haslo`='".$_POST['password']."'");
if(!$query) die("Błąd zapytania!");
$ile = mysql_num_rows($query);
if($ile<1) die("Podane dane są błędne!");

$_SESSION['LOGGED_USER_ID']=$_POST['login'];
header("Location: konto.php");
ob_end_flush();
?>[/php:1:652a802f25]
Go to the top of the page
+Quote Post
-Wieviór-
post 28.03.2004, 15:55:36
Post #15





Goście







Dodalem na poczatek:
ob_start();

Na koniec:
ob_end_flush();

I znów stoi w miejscu, ale nie ma komunikatu a zostawilem echo... :?
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: 8.07.2025 - 09:32