![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zablokowani Postów: 655 Pomógł: 0 Dołączył: 28.11.2003 Skąd: Zagórz Ostrzeżenie: (80%) ![]() ![]() |
napisaem skrypt do logowania mniej wiecej najwazniejejsza jego czesc wyglada tak:
login.php [php:1:984db7506e]<?php if($_GET[mode] == spr) { if(!isset($_POST[login])) { echo"Nie masz dostępu do tego modułu"; } else { mysql_connect("127.0.0.1", "root", "krasnal") or die ("nie mozna polaczyc sie z baza"); mysql_select_db(rcx) or die ("nie mozna wybrac bazy"); session_start(); if($_POST['submit']) { $wyszukaj = mysql_query("SELECT * FROM users WHERE login='$_POST[login]' AND haslo='$_POST[pass]'"); $wynik = mysql_num_rows($wyszukaj); if(empty($_POST[login])) { echo "nie podano loginu<br>"; } if(empty($_POST[pass])) { echo "nie podano hasla<br>"; } elseif($wynik == 1) { $_SESSION['log'] = $login; } elseif(isset($_POST[login]) && $_POST[pass]) { echo "Niepoprawne dane"; } } if($_SESSION['log']) { /*Wstwaic ID*/ echo "Witaj <b>".$_SESSION['log']."</b> na stronie !<br><a href='form_login.php?mode=a_profil&id=$id'>aktualizuj swuj profil</a><br><a href=login.php?mode=wyloguj>wyloguj</a>"; } } } elseif($_GET[mode] == wyloguj) { session_start(); unset($_SESSION['log']); echo"zostales wylogowany kliknij aby powrucic <a href=login.php>TUTAJ</a>"; } else { echo" <form action=logowanie/login.php?mode=spr method='POST'> Login: <input type='text' name='login'> Hasło: <input type='text' name='pass'> <input type='submit' name='submit' value='Zaloguj'> </form> ... ?>[/php:1:984db7506e] plik ten includuje do pliku head.inc.php, nastepnie plik head.inc.php do index.php. i tu pojawia sie problem, a nawet dwa: 1. po includzie, login.php do head.inc.php, a potem do index.php, url'e zmieniaja mi sie jak by byly z poziomu pliku index.php, czy nie da sie tego uniknac?? (ale z tym sobie poradzilem, zmieniajac po prostu url'e ) 2. w index.php pojawia mi sie jak powinien formularz do logowania z pliku login.php, i po kliknieciu na ZALOGUJ, chce zeby w razie zaogowania, formularz zmienilo, na info ze zalogowalo, a teraz zamienia mi cala strone... w czym popelniam blad (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 245 Pomógł: 0 Dołączył: 9.09.2002 Ostrzeżenie: (0%) ![]() ![]() |
Bazą jest plik, w którym includujesz. Oczywiście możesz sobie z tym poradzić. Sprawdzaj gdzie jesteś i dodawaj opowiednią część [manual:568cbe3655]dirname[/manual:568cbe3655]()
|
|
|
![]()
Post
#3
|
|
Grupa: Zablokowani Postów: 655 Pomógł: 0 Dołączył: 28.11.2003 Skąd: Zagórz Ostrzeżenie: (80%) ![]() ![]() |
8O to sie odnosi do pierwszego problemu czy drugiego, jak bys mogl janiej (IMG:http://forum.php.pl/style_emoticons/default/laugh.gif)
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 245 Pomógł: 0 Dołączył: 9.09.2002 Ostrzeżenie: (0%) ![]() ![]() |
Cytat 8O to sie odnosi do pierwszego problemu czy drugiego, jak bys mogl janiej (IMG:http://forum.php.pl/style_emoticons/default/laugh.gif)
@1: Jeżeli w index.php masz [php:1:23f1149328]<?php include('katalog/plik.php') ?>[/php:1:23f1149328], a w plik.php znów dajesz include, to ścieżkę obliczasz z poziomu index.php, więc jeżeli ten drugi plik jest na tym samym poziomie co plik.php, to ścieżka nadal powinna być 'katalog/drugi.php' . Zawsze możesz zdefiniować sieżkę bazową i od niej obliczać ścieżkę do pliku. A nawet nie definiować. Dla informacji wywołaj sobie kod: [php:1:23f1149328]<?php print_r ($_SERVER); ?>[/php:1:23f1149328] @2: To nie do końca rozumiem jak zmienia się strona, ale zastanów się, czy $_SESSION['log'] ma szansę być ustawiona. Może nie mam racji, ale przejrzałem kod pobieżnie. Uporządkuj go trochę, chyba sprawdzanie czy $_GET['mode'] jest równe spr i do tego czy ustawione jest $_POST['login'] to chyba o jedno za dużo. Po za tym sprawdzenie czy jesteś zalogowany nie ppowinno byc uzależnione od wypełnienia formularza. |
|
|
![]()
Post
#5
|
|
Grupa: Zablokowani Postów: 655 Pomógł: 0 Dołączył: 28.11.2003 Skąd: Zagórz Ostrzeżenie: (80%) ![]() ![]() |
1. jak mam zdefiniowac ta sciezke ?
2. zaznaczylem ze to najwazniejsza czesc kodu, ale prosciej, jak zrobiz zeby po zalogowaniu, zamiast formularza pojawiala sie info o zalogowaniu, ale zeby reszta indexu zostala niezmieniona, oczywsicie z przeladowaniem. dla tego kodu co wkleilem. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 245 Pomógł: 0 Dołączył: 9.09.2002 Ostrzeżenie: (0%) ![]() ![]() |
Cytat 1. jak mam zdefiniowac ta sciezke ?
2. zaznaczylem ze to najwazniejsza czesc kodu, ale prosciej, jak zrobiz zeby po zalogowaniu, zamiast formularza pojawiala sie info o zalogowaniu, ale zeby reszta indexu zostala niezmieniona, oczywsicie z przeladowaniem. dla tego kodu co wkleilem. @1: w wersji najprostszej, wszystkie include dołączaj jakby były z poziomu index.php @2: rozumiem, że login jest zaincludowany w index.php, nie przekierowywuj na login.php?mode=spr tylko na $_SERVER['PHP_SELF'] a zamiast $_GET['mode'] użyj $_POST['mode'] - zmienną mode daj jako pole ukryte formularza. I wyrzuć to session_start() gdzieś na początek (to już uwaga edycyjna). |
|
|
![]()
Post
#7
|
|
Grupa: Zablokowani Postów: 655 Pomógł: 0 Dołączył: 28.11.2003 Skąd: Zagórz Ostrzeżenie: (80%) ![]() ![]() |
1. ale mam je w roznych katalogach. nie moge ich dac na jeden poziom
2. zmienilem i blad wywala Kod Warning: session_start(): Cannot send session cookie - headers already sent by (output started at c:usrkrasnalwwwrcx-portalindex.php:14) in c:usrkrasnalwwwrcx-portallogowanielogin.php on line 15
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at c:usrkrasnalwwwrcx-portalindex.php:14) in c:usrkrasnalwwwrcx-portallogowanielogin.php on line 15 a na dole pokazuje ze zalogowalo mnie teraz kod wyglada tak [php:1:114af85578]<?php if($_POST[mode] == spr) { if(!isset($_POST[login])) { echo"Nie masz dostępu do tego modułu"; } else { mysql_connect("127.0.0.1", "root", "krasnal") or die ("nie mozna polaczyc sie z baza"); mysql_select_db(rcx) or die ("nie mozna wybrac bazy"); session_start(); if($_POST['submit']) { $wyszukaj = mysql_query("SELECT * FROM users WHERE login='$_POST[login]' AND haslo='$_POST[pass]'"); $wynik = mysql_num_rows($wyszukaj); if(empty($_POST[login])) { echo "nie podano loginu<br>"; } if(empty($_POST[pass])) { echo "nie podano hasla<br>"; } elseif($wynik == 1) { $_SESSION['log'] = $login; } elseif(isset($_POST[login]) && $_POST[pass]) { echo "Niepoprawne dane"; } } if($_SESSION['log']) { /*Wstwaic ID*/ echo "Witaj <b>".$_SESSION['log']."</b> na stronie !<br><a href='form_login.php?mode=a_profil&id=$id'>aktualizuj swuj profil</a><br><a href=login.php?mode=wyloguj>wyloguj</a>"; } } } elseif($_GET[mode] == wyloguj) { session_start(); unset($_SESSION['log']); echo"zostales wylogowany kliknij aby powrucic <a href=login.php>TUTAJ</a>"; } else { echo" <form action='$_SERVER[PHP_SELF]' method='POST'> Login: <input type='text' name='login'> Hasło: <input type='text' name='pass'> <input type='hidden' name='mode' value='spr'> <input type='submit' name='submit' value='Zaloguj'> </form> <a href='$_SERVER[PHP_SELF]'>zarejestruj sie</a> | <a href='logowanie/form_login.php?mode=zapomnialem_pass'>zapomnialem hasla</a> "; } ?>[/php:1:114af85578] |
|
|
![]()
Post
#8
|
|
Grupa: Zablokowani Postów: 655 Pomógł: 0 Dołączył: 28.11.2003 Skąd: Zagórz Ostrzeżenie: (80%) ![]() ![]() |
prubowalem gdzie indziej dac sesion_start() ale nie pomoglo (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) co w takim razie jest zle (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 16:39 |