![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 38 Pomógł: 0 Dołączył: 8.09.2003 Skąd: olsztyn Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Mam taki scrypt (troche pomieszany, bo jeden z pierwszych) ![]() Proszę pomóżcie ![]() scrypt: [php:1:d26c988b9b]<?php include("config.php"); session_start(); echo"Numer sesji: "; print session_id(); session_register ("login"); session_register ("haslo"); $hasla = array (''.$_POST["login"].'' => ''.$_POST["haslo"].''); #end $wynik = mysql_query("select * from admini"); while ($rekord = mysql_fetch_array ($wynik)) { $id = $rekord[0]; $date=$rekord[1]; $login = $rekord[2]; $haslo = $rekord[3]; $ggg = $rekord[4]; } $wynik = mysql_query("select * from hhnews order by id desc"); //instrukcja logowania if (($_POST["login"]) && ($_POST["haslo"])) { if ($hasla[$_POST["login"]] == $_POST["haslo"]) { echo"<br><a href="wyloguj.php">Wyloguj</a>"; //loginy i hasla $_SESSION["login"] = $_POST["login"]; $_SESSION["login"] = $_POST["haslo"];// //panel echo"<table border=1 width=555><tr><td width=17>Id</td><td width=150>Tytuł</td><td width=85>Autor</td><td>Data dodania</td><td width=50>Edytuj</td><td width=50>Skasuj</td></tr>"; while ($rzad = mysql_fetch_array($wynik)) { echo"<table border=1 width=555> <tr><td width=17>$rzad[id]</td><td width=150>$rzad[title]</td><td width=85>$rzad[autor]</td><td>$rzad[date]</td><td width=50><a href=edytuj.php?id=$rzad[id]>Edytuj</a></td><td width=50><a href=ed.php?co=skasuj&id=$rzad[id]>skasuj</td></tr> </table>"; } //instrukcja kasowania if($co=='skasuj') { $wynik=mysql_query ("DELETE FROM hhnews WHERE id='$id';"); } //instrukcja dodawania if ($co == 'dodaj') { if ($title && $text && $autor) { mysql_query("INSERT INTO hhnews VALUES('', now(), '$title','$text','$autor')"); } else{ echo"uzupelnij wszystkie pola"; } } elseif ($co == 'pokaz_dodaj') { } echo'<br><br><br>Dodaj newsa:<br><form action="ed.php" method="post"> <input type="hidden" name="co" value="dodaj"> <table><tr><td>tytuł</td><td><input type="text" name="title" value='.$rzad[title].'></td></tr> <tr><td>treść newsa:</td><td><input type="text" name="text" value='.$rzad[text].'></td></tr> <tr><td>autor</td><td><input type="text" name="autor" value='.$rzad[autor].'></td></tr></table> <input type="submit" VALUE="dodaj"></form>'; // jesli zostaly podane zle dane przy logowaniu }else { echo("zle dane!"); } //formularz logowania } else { echo'<form action="ed.php" method="post"> <table><tr><td>Login:</td><td><input type="text" name="login" value="'.$_POST["login"].'"></td></tr> <tr><td>Haslo:</td><td><input type="password" name="haslo" value="'.$_POST["haslo"].'"></td></tr><tr><td><input type="submit" value="wyslij" ></td></tr></table></form>'; } ?>[/php:1:d26c988b9b] |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 764 Pomógł: 3 Dołączył: 30.04.2003 Ostrzeżenie: (0%) ![]() ![]() |
ogolny schemat postepowania jest taki:
wykorzystujesz do tego ciasteczka (zapoznaj sie z tym m.in. z funkcja [manual:12c1871fd1]setcoockie()[/manual:12c1871fd1]) oczywiscie tworzysz dodatkowe pole w formularzu (checkbox) - jezeli uzytkownik zaznaczy je (sprawdzasz przy uzyciu instrukcji): [php:1:12c1871fd1]<?php if ($_POST['NazwaPolaWFormularzu'] == 'on') ?>[/php:1:12c1871fd1] to ustawiasz ciasteczko w ktorym zapisujesz nazwe uzytkownika i np. poddane dzialaniu funkcji [manual:12c1871fd1]md5()[/manual:12c1871fd1] haslo na koniec na poczatku kazdego skryptu sprawdzasz czy po stronie uzytkownika zostalo ustawione ciastko i sprawdzasz poprawnosc zapisanych w nim danych (porownujesz na przyklad z tym co masz w bazie danych) i jezeli jest ok to rejestrujesz to automatycznie logujesz... ps. ide po jakies ciastka bo tak sama kawe pic to troche glupio... ![]() |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 38 Pomógł: 0 Dołączył: 8.09.2003 Skąd: olsztyn Ostrzeżenie: (0%) ![]() ![]() |
a czy nie da się tego zrobić na sesjach?
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 764 Pomógł: 3 Dołączył: 30.04.2003 Ostrzeżenie: (0%) ![]() ![]() |
w momencie gdy wywolujesz funkcje [manual:48a0c195f7]session_start()[/manual:48a0c195f7] juz w tej chwili korzystasz z sesji... to co ja Ci proponuje jest uzupelnieniem tego co juz napisales.... wiec tak czy siak operujesz na sesji...
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 38 Pomógł: 0 Dołączył: 8.09.2003 Skąd: olsztyn Ostrzeżenie: (0%) ![]() ![]() |
właśnie nie wiem dlaczego ale to co mam to nie działa... :/
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 358 Pomógł: 0 Dołączył: 3.07.2003 Skąd: Szczecin->niebuszewo->*(next to window) Ostrzeżenie: (0%) ![]() ![]() |
Cytat [php:1:1f5aae25a5]<?php
$_SESSION["login"] = $_POST["login"]; $_SESSION["login"] = $_POST["haslo"];// ?>[/php:1:1f5aae25a5] nie powinno byc tak?: [php:1:1f5aae25a5]<?php $_SESSION["login"] = $_POST["login"]; $_SESSION["haslo"] = $_POST["haslo"]; ?>[/php:1:1f5aae25a5] -------------------- Jeśli życie to kara to nieźle nabroiłem ;-)
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 764 Pomógł: 3 Dołączył: 30.04.2003 Ostrzeżenie: (0%) ![]() ![]() |
ok, napisalem Ci tutaj przykladowy skrypcik logowania...
wybacz, ale nie testowalem go tylko napisalem od reki... mysle, ze nie powinno byc tutaj wiekszych bledow... przeanalizuj go sobie i napisz rownolegly to tego co ja proponuje (NIE skopiuj go gdyz moga byc tak jakies literowki czy cos) masz napisane komentarze wiec w razie blednego dzialania masz wskazowke co jak to zrobic poprawnie. formularz logowania [xml:1:bbad80f977] <form action='loguj.php' method="post"> Podaj nazwe uzytkownika: <input type="text" name="user" /><br /> Podaj haslo: <input type="text" name="haslo" /><br /> Zaloguj mnie automatycznie<input type="checkbox" name="autolog" /> <input type="submit" value="logowanie" /> </form> [/xml:1:bbad80f977] kod php [php:1:bbad80f977]<?php //sprawdzam czy uzytkownik jest zarejestrowany if (!$_SESSION['uzytkownik']) { //sprawdzam czy uzytkownik wypelnij wszystkie pola w formularzu if ($_POST['user'] && $_POST['haslo']) { //dodaje przed wyslaniem do bazy danych stosowne znaki $_POST['user'] = addslashes($_POST['user']); $_POST['haslo'] = addslashes($_POST['haslo']); //nawiazuje polaczenie z serwerem bazy danych - tutaj MySQL $polaczenie = @mysql_pconnect('host', 'uzytkownik', 'haslo'); //sprawdzam czy zostalo ustawione polaczenie if ($polaczenie) { @mysql_select_db('nazwaTwojejBazyDanych'); //tworze zapytanie //zakladam, ze nazwa tabeli w ktorej przechowujesz informacje to: uzytkownicy //nazwa pola, gdzie sa przechowywane nazwy uzytkownikow to: uzytkownik //nazwa pola, gdzie sa przechowywane hasla uzytkownikow: to haslo //haslo jest haszowane funkcja MD5() $zapytanie = "SELECT * FROM uzytkownicy WHERE uzytkownik = '".$_POST['user']."' AND haslo = '".md5($_POST['haslo'])."'"; //wysylam zapytanie do bazy danych $wynikZapytania = mysql_query($zapytanie); //sprawdzam czy zostal zwrocony rekord z bazy danych if (mysql_num_rows($wynikZapytania) == 1) { $_SESSION['uzytkownik'] = $_POST['user']; //sprawdzam czy uzytkownik zaznaczyl pole autologowanie if ($_POST['autolog'] == 'on') { //ustawiam ciastko o nazwie uzytkownika na jeden miesiac setcookie('autolog', $_POST['uzytkownik'], time() + 2592000); setcookie('klucz', md5($_POST['haslo']), time() + 2592000); } } else { echo 'Podales niepoprawne dane.'; } } else { echo 'Nie mozna nawizac polaczenia z serwerem bazy danych.'; } } } else { echo 'Jestes zalogowany.'; } //funcja sprawdzajaca czy danych uzytkownik powinien zostac automatycznie zalogowany //bedzie ona umieszczona na poczatku kazdego skryptu function sprawdzAutologowanie() { //sprawdzam, czy w ciasteczku sa odpowiednie dane if ($_COOKIE['autolog'] && $_COOKIE['klucz']) { //polaczenie z serwerem bazy danych zostalo juz wczesniej nawiazane $zapytanie = "SELECT * FROM uzytkownicy WHERE uzytkownik = '".$_COOKIE['autolog']."' AND haslo = '".$_COOKIE['haslo']."'"; $wynikZapytania = mysql_query($zapytanie); if (mysql_num_rows($wynikZapytania) == 1) { //jezeli uzyskalem pozytywny wynik z bazy danych rejestruje uzytkownika $_SESSION['uzytkownik'] = $_COOKIE['uzytkownik']; return true; } } else { //zwracam false gdyz uzytkownik nie moze zostac automatycznie zalogowany return false; } } ?>[/php:1:bbad80f977] |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 21.06.2025 - 20:04 |