Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Logowanie Do Forum Na Stronie Glownej
Bojakki
post 18.08.2004, 10:41:55
Post #1





Grupa: Zarejestrowani
Postów: 379
Pomógł: 0
Dołączył: 18.08.2004

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


Ostatnio znalazlem skrypcik, ktory pozwala na logowanie na forum nie tylko na stronie glownje, ale tez na na kazdej innej stronie php nie nalezacej do forum. Mam wiec 2 skrypciki:

Cytat
<?php
//kilka potrzebnych rzeczy:
define('IN_PHPBB', true);
$phpbb_root_path = './forum/';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

//ustawmy sesje i dane użytkownika
$userdata = session_pagestart($user_ip, PAGE_INDEX, $session_length);
init_userprefs($userdata);
?>


i

Cytat
<?php
define('IN_PHPBB', true);

$site_root_path = '/home/wowc/domains/wowc.net/public_html/'; //<-- Modify
$phpbb_root_path2 = '../forum/'; //<-- Modify
$phpbb_root_path = $site_root_path . $phpbb_root_path2;
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.php');
include($phpbb_root_path . 'config.php');

$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
?>



Oba maja podobne dzialanie, opisane na poczatku posta.
I w przypdku obu wyskakuje podobny blad, ktory mniej wiecej wyglada tak:

Cytat
Warning: Cannot modify header information - headers already sent by (output started at /home/wowc/domains/wowc.net/public_html/index2.php:5) in /home/wowc/domains/wowc.net/public_html/forum/includes/sessions.php on line 188

Warning: Cannot modify header information - headers already sent by (output started at /home/wowc/domains/wowc.net/public_html/index2.php:5) in /home/wowc/domains/wowc.net/public_html/forum/includes/sessions.php on line 189


linijki 188 i 189 w sessions.php to:
Cytat
setcookie($cookiename . '_data', serialize($sessiondata), $current_time + 31536000, $cookiepath, $cookiedomain, $cookiesecure);

setcookie($cookiename . '_sid', $session_id, 0, $cookiepath, $cookiedomain, $cookiesecure);


Mozna liczyc na jakies wyczerpujace wyjasnienie niepowodzenia mojego dzialania?
biggrin.gif


--------------------
Go to the top of the page
+Quote Post
beton__
post 18.08.2004, 11:32:55
Post #2





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 10.08.2004
Skąd: Tarnowskie Góry

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


Odpowiedz dziecinnie prosta:
Chciałes wysłać nagłowek w tym praypadku cookie po wyslaniu nagłowka własciwego <html><head> itd jest pare możliwosci przeniesc
  1. <?php
  2. setcookie($cookiename . '_data', serialize($sessiondata), $current_time + 31536000, $cookiepath, $cookiedomain, $cookiesecure); 
  3.  
  4. setcookie($cookiename . '_sid', $session_id, 0, $cookiepath, $cookiedomain, $cookiesecure); 
  5.  
  6. ?>
na poczatek (znaczy przed <html>) lub uzycie funkcji ob_start i ob_end_flush to powinno rozwiazac problem


--------------------
Warszat: WinXP SP1, Apache 2.0.50, PHP 5.0.1, MySQL 5.0.1alpha, EmEditor 3.33
W warsztacie: |WeB:LaNd| llllllllllllllllllll 15%
Others: IRC Plus 2000, TightVNC, BlackMoon FTP, Av
Go to the top of the page
+Quote Post
Bojakki
post 19.08.2004, 12:48:59
Post #3





Grupa: Zarejestrowani
Postów: 379
Pomógł: 0
Dołączył: 18.08.2004

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


Funkcja ob_start i ob_end_flush nie pomogla.
Przeniesc tej czesci skryptu nad html sie nie da gdyz cala ta strona (session.php) to skrypt.

Problemy sa z linjkami 305, 306, 188, 199

Na jednej z zagranicznych stron znalazlem taka propozycje:

Cytat
the only fix i have found for this problem is to...


1 - delete the sessions.php file

2 - replace the sessions.php clean original replacements. this may require you to download the files from the phpbb site if you didn't keep a local copy.


Podmienilem i tez nie pomoglo


Znalazlem tez gdzies zeby sprawidzic czy nie ma spacji po lub przed <?php, ?> i nie bylo. Teoretycznie powinno dzialac, ale tak nie jest

Ktos jescze ma jakas propozycje?

(jakby ktos chial zobaczyc pliks session to wrzuclem go pod adres: http://www.wowc.net/session.zip)

Ten post edytował Bojakki 19.08.2004, 12:50:14


--------------------
Go to the top of the page
+Quote Post
Parti
post 19.08.2004, 14:26:18
Post #4





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 22.07.2004

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


Cytat
(output started at /home/wowc/domains/wowc.net/public_html/index2.php:5)


To znaczy tyle, ze w 5 linijce index2.php wysylasz cos do przegladarki i po tej operacji nie mozna juz wyslac naglowkow. W tym miejscu jest blad!!
Go to the top of the page
+Quote Post
Bojakki
post 19.08.2004, 20:36:19
Post #5





Grupa: Zarejestrowani
Postów: 379
Pomógł: 0
Dołączył: 18.08.2004

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


Z ta linia 5 watpilwe bo tam akurat byly slowa kluczowe, potem wywalilem caly html i zostailem tylko ten krotki kod php i tez byla linijka 5, ze niby cos nie tak. Coz nie mam juz sily z tym kodem, znalazlem w sasiednim topicu taki o podobnym dzialaniu. tez blad wyskakuje, ale przynajmniej inny. Kod wyglada tak:

  1. <?php
  2.  
  3. $forma =<<<FORMA
  4. <form method=\"post\" action=\"./forum/login.php?sid=session_id()\">
  5. <b>Zaloguj</b>
  6. <br><br>
  7.  
  8. Użytkownik: <input type=\"text\" name=\"username\" size=\"10\" /><br>
  9. Hasło: <input type=\"password\" name=\"password\" size=\"10\" maxlength=\"32\" /><br>
  10. <input type=\"hidden\" name=\"redirect\" value=\"../strona.php\">
  11. Zaloguj mnie automatycznie przy każdej wizycie <input class=\"text\" type=\"checkbox\" 
  12.  
  13. name=\"autologin\" /><br>
  14. <input type=\"submit\" name=\"login\" value=\"Zaloguj\" />
  15. </form>
  16. FORMA;print($forma);
  17.  
  18. ?>

Poza nim nic nie ma na stronie, a wyskakuje taki blad:
Cytat
Parse error: parse error, unexpected $ in /home/wowc/domains/wowc.net/public_html/test.php on line 18

18 linijka to ostatnia linijka kodu, czyli zamkniecie: ?>

Chyba nic, nie pomyliem, w 5 linijce wpisalem scieszke do login.php (katalog forum jest podkatalogiem w stosunku do test.php), nizej w 11 linijce (redirect) utawia sie strone, na ktora ma sie przeniesc uzytkownik po zalogowaniu (tak to zrozumialem).

Jak ktos chce live zobaczyc blad to prosze sie udac pod: http://www.wowc.net/test.php
Oswieci mnie ktos? czy ja mam takieog pecha czy cos tu jest zpartaczone?


--------------------
Go to the top of the page
+Quote Post
cim
post 19.08.2004, 21:03:00
Post #6





Grupa: Zarejestrowani
Postów: 208
Pomógł: 28
Dołączył: 9.08.2004
Skąd: Stargard

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


hmm,... tak sie składa że ten kod który wysłałeś w ostatnim poście ja napisałem... i np. u mnie on działa...

a błąd jest dlatego że kiedy ujme kod w takgi php nie uwzględnia przejścia do nowego wiersza...

Kod
<?php
session_start();

$forma =<<<FORMA
<form method="post" action="./forum/login.php?sid=session_id()">
<b>Zaloguj</b>
<br><br>

Użytkownik: <input type="text" name="username" size="10" /><br>
Hasło: <input type="password" name="password" size="10" maxlength="32" /><br>
<input type="hidden" name="redirect" value="../strona.php">
Zaloguj mnie automatycznie przy każdej wizycie <input class="text" type="checkbox"

name="autologin" /><br>
<input type="submit" name="login" value="Zaloguj" />
</form>
FORMA;
print($forma);
?>


chodzi o przejście do nowego wiersza przed wywołaniem print`a - bo jeżeli zakończenie zmiennej i print są w tej samej linii to wyplówa właśnie 'parse error'...


--------------------
errare humanum est
Go to the top of the page
+Quote Post
Bojakki
post 19.08.2004, 21:19:20
Post #7





Grupa: Zarejestrowani
Postów: 379
Pomógł: 0
Dołączył: 18.08.2004

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


Super, juz dziala!
Mam tylko pytanie co trzeba dopisac by po zalogowaniu juz zamiast formularza bylo cos takiego:
Cytat
"Jestes zalogowany jako: "nick"
Wyloguj"


Tak samo jak na forum.

Poza tym jest taki jeden myk, ze jak wrzuce to miedzy html to wyskakuje blad:
Cytat
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /home/wowc/domains/wowc.net/public_html/index3.php:5) in /home/wowc/domains/wowc.net/public_html/index3.php on line 1148

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/wowc/domains/wowc.net/public_html/index3.php:5) in /home/wowc/domains/wowc.net/public_html/index3.php on line 1148

Formularz sie wyswiela i dziala, no ale blad to blad. Dodam ze jak wrzuce kod ponad znacznik <html> lub dam go na strone bez htmla to wszystko dziala. W 1148 linijce jest:
Cytat
session_start();


Ten post edytował Bojakki 19.08.2004, 22:19:54


--------------------
Go to the top of the page
+Quote Post
y3ti
post 20.08.2004, 12:43:59
Post #8





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 19.08.2004
Skąd: Pruszków

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


Widze, ze kilka razy miales juz problem ze zrozumieniem tego bledu. Nie martw sie ja tez czesto sie na to lapalem:

Kod
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /home/wowc/domains/wowc.net/public_html/index3.php:5) in /home/wowc/domains/wowc.net/public_html/index3.php on line 1148


Ostrzezenie: session_start() - Nie moge wyslac ciastka z sesja - naglowek zostal juz wyslany (rozmpoczety w /home/wowc/domains/wowc.net/public_html/index3.php:5) w /home/wowc/domains/wowc.net/public_html/index3.php on line 1148

Twoj blad jest w 5 linijce, poniewaz tam zostalo juz cos wyskane (wyswietlone). W 1148 lini Twojego kodu zostal zgloszony blad. Zgloszenie bledu <> przyczyna bledu.

Mozna to rozumiec tak: jestem wlasnie w trakcie wykonywania 1148 linijki. Nazywam sie session_start(). Cholera nie moge zrobic prawidlowo tego co zawsze robie, poniewaz ktos juz 5 linijce zaczol juz pisac w buforze, a ja do wykonania mojego dzialania musze miec czysto.
Go to the top of the page
+Quote Post
Bojakki
post 20.08.2004, 14:34:55
Post #9





Grupa: Zarejestrowani
Postów: 379
Pomógł: 0
Dołączył: 18.08.2004

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


No rozumiem komunikat tylko nie wiem co mam zrobic by session_start() nie mowil, ze ktos mu w buforze nabruzdzil mimo tego ze ta czastka php bedzie wpakowana gdzies w html (nie pasuje mi danie okienka logowania gdzies na samej gorze). Inaczej mowiac czy da sie by to polecenie bylo wykonywane wczesniej niz html, ktory jest przed nim:)


--------------------
Go to the top of the page
+Quote Post
cim
post 20.08.2004, 16:53:59
Post #10





Grupa: Zarejestrowani
Postów: 208
Pomógł: 28
Dołączył: 9.08.2004
Skąd: Stargard

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


Cytat(Bojakki @ 2004-08-20 14:34:55)
No rozumiem komunikat tylko nie wiem co mam zrobic by session_start() nie mowil, ze ktos mu w buforze nabruzdzil mimo tego ze ta czastka php bedzie wpakowana gdzies w html (nie pasuje mi danie okienka logowania gdzies na samej gorze). Inaczej mowiac czy da sie by to polecenie bylo wykonywane wczesniej niz html, ktory jest przed nim:)

na samym początku daj taki kodzik:

  1. <?php
  2. ?>


ta funkcja rozpocznie buforowanie i wyśle do przeglądarki treść strony dopiero wtedy gdy interpreter php dojdzie do końca pliku


--------------------
errare humanum est
Go to the top of the page
+Quote Post
Bojakki
post 22.08.2004, 20:40:41
Post #11





Grupa: Zarejestrowani
Postów: 379
Pomógł: 0
Dołączył: 18.08.2004

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


Mam prosbe do kogos kto ma chwile czasu
Chce ulepszyc system logowania na stronach nie nalezacych do forum. Wpakowalem nieco zmodyfikowany kod, znaleziony na innym topicu z tego forum, wyglada on tak:
  1. <?php 
  2.  
  3. $forma =<<<FORMA 
  4. <form method=\"post\" action=\"./forum/login.php?sid=session_id()\"> 
  5. Login: <input type=\"text\" name=\"username\" size=\"9\" /><br> 
  6. Hasło: <input type=\"password\" name=\"password\" size=\"11\" maxlength=\"32\" /><br> 
  7. <input type=\"hidden\" name=\"redirect\" value=\"../index3.php\"> 
  8. Autologin<input class=\"text\" type=\"checkbox\" 
  9.  
  10. name=\"autologin\" /> 
  11. <input type=\"submit\" name=\"login\" value=\"Zaloguj\" /> 
  12. </form><br> 
  13. FORMA;print($forma); 
  14.  
  15. ?>

Teraz chodzi o to by, gdy osoba nie jest zarejestrowana na stronie to oprocz pol do wypelnienia danych pojawilo sie "Rejestruj", a gdy sie ktos zaloguje to zeby to zniklo a w to miejsce pojawilo sie "Jestes zarejestrownay jako [Nick] Wyloguj" Prawdopodobnie bedzie trzeba tu zasosowac warunek IF. Bardzo bym prosil o rozbudowanie tego kodu wlasnie w ten sposob, mysle ze przyda sie nie tylko mi i ucieszy sie wiele osob. Znacie sie dobrze na sprawie wiec chyba nie ebdziecie mieli problemow:D

Ps. Na stronach mam wystartowane sesje phpBB wiec tego elementu nie trzeba tu dawac.


--------------------
Go to the top of the page
+Quote Post
bigZbig
post 24.08.2004, 12:57:54
Post #12





Grupa: Zarejestrowani
Postów: 740
Pomógł: 15
Dołączył: 23.08.2004
Skąd: Poznań

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


  1. <?php
  2. $login = '
  3. <form method="post" action="./forum/'.append_sid("login.php").'">
  4. Login: <input type="text" name="username" size="9" /><br>
  5. Hasło: <input type="password" name="password" size="11" maxlength="32" /><br>
  6. <input type="hidden" name="redirect" value="..'.$_SERVER[PHP_SELF].'" />
  7. Autologin<input class="text" type="checkbox" name="autologin" />
  8. <input type="submit" name="login" value="Zaloguj" />
  9. </form><br>
  10. Tu się możesz <A href="./forum/profile.php?mode=register">zarejestrować</A>.';
  11.  
  12. $logout = '
  13. <form method="post" action="./forum/'.append_sid("login.php").'">
  14. Witaj: <b>'.$userdata[username].'</b><br>
  15. <input type="hidden" name="redirect" value="..'.$_SERVER[PHP_SELF].'" />
  16. <input type="submit" name="logout" value="Wyloguj" />
  17. </form><br>';
  18.  
  19. $form = ($userdata['session_logged_in']) ? $logout : $login;
  20.  
  21. print($form);
  22. ?>


Ten post edytował bigZbig 24.08.2004, 14:29:16


--------------------
bigZbig (Zbigniew Heintze) | blog.heintze.pl
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: 29.03.2024 - 16:58