Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Blad w skypcie i sesjach.
The Night Shadow
post
Post #1





Grupa: Zarejestrowani
Postów: 495
Pomógł: 2
Dołączył: 5.02.2006
Skąd: Wrocław

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


Nie wiem dlaczego, ale po kliknięciu w formlarzu na wyślij wpis do księgi gosci jest wysyłany, następuje przekierowanie by nie było możliwości ponownego dopisania wpisu, ale pojawia sie problem. Skrypt zachowuje się tak, jakby zniknęła sesja lub też jakby nie widział zmiennej $_SESSION["zalogowany"]
W momencie kiedy kliknę (np w Operze) na wstecz a następne odśwież, okazuje się, że sesja nadal jest. Dlaczego tak się dzieje? Gdzie jest błąd tudzież co zrobić by się tego błed pozbyć..?


HTML
<?
session_start();
if ($_SESSION["zalogowany"]=="tak")
{ ?>
<TABLE>
<TR>
<td style="border-left-style: solid; border-right-style: solid; border-top-style: solid; border-bottom-style: solid; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 1px; border-right-width: 1px; width: 400; padding: 10px; margin: 10px;" valign="top">
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=4,0,2,0" width="400" height="307">
<param name=movie value="flash/1.swf">
<param name=quality value=high>
<embed src="flash/1.swf" quality=high pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="400" height="307">
</embed>
</object><br /><br />
<? $ssend = strip_tags(htmlspecialchars(stripslashes(trim($_POST['send'])), ENT_QUOTES));
$mysql_host = '********;
$mysql_login = o******
$mysql_haslo = '1********ar3k';
$mysql_baza = 'o*********ia';
$twoj_adres = "*************";
if ($baza = mysql_connect($mysql_host, $mysql_login, $mysql_haslo))
{
if (mysql_select_db($mysql_baza))
{
$data = time();
$zapytanie = mysql_query("SELECT * FROM ksiega ORDER BY 'szept_data' DESC");
while($wiersz=mysql_fetch_array ($zapytanie))
{
$miesiac = date('m', $wiersz['szept_data']);
if ($miesiac=='1') {$miesiacslownie='stycznia';}
else if ($miesiac=='2') { $miesiacslownie='lutego'; }
else if ($miesiac=='3') { $miesiacslownie='marca'; }
else if ($miesiac=='4') { $miesiacslownie='kwietnia'; }
else if ($miesiac=='5') { $miesiacslownie='maja'; }
else if ($miesiac=='6') { $miesiacslownie='czerwca'; }
else if ($miesiac=='7') { $miesiacslownie='lipca'; }
else if ($miesiac=='8') { $miesiacslownie='sierpnia'; }
else if ($miesiac=='9') { $miesiacslownie='września'; }
else if ($miesiac=='10') { $miesiacslownie='października'; }
else if ($miesiac=='11') { $miesiacslownie='listopada'; }
else if ($miesiac=='12') { $miesiacslownie='grudnia'; }
$ddzien = date('d', $wiersz['szept_data']);
$rrok = date('Y', $wiersz['szept_data']);
$ggodzina = date('H:i:s', $wiersz['szept_data']);
$pytanie = mysql_query("SELECT * FROM logowanie WHERE id='".$wiersz['szept_id_uzytkownika']."'");
$pole = mysql_fetch_assoc($pytanie); ?>
<table width="400">
<tr>
<td width="200" valign="top" align="left">
Szepcząc: <? echo "".$pole['login'].""; ?><br />
E-mail: <A HREF="MAILTO:<? echo "".$pole['email'].""; ?>">
<? echo "".$pole['email'].""; ?>
</A><br />
Gadu: <A href="gg:<? echo "".$pole['gadu'].""; ?>">
<? echo "".$pole['gadu'].""; ?> <img src="http://www.gadu-gadu.pl/users/status.asp?id=<? echo "".$pole['gadu'].""; ?>" border="0" width="12" height="12">
</A><br /><br />
Ip: <? echo "".$wiersz['szept_ip'].""; ?><br />
Host: <? echo "".$wiersz['szept_host'].""; ?><br /><br />
<? echo "$ddzien $miesiacslownie $rrok o godz.: $ggodzina"; ?>
</td>
<td width="200" valign="top" align="left">
<? echo "".nl2br($wiersz['szept']).""; ?>
</td>
</tr>
</table><br />
<table width="400">
<tr>
<td>
<center>
<br />. . .
</center><br /><br /><br />
</td>
</tr>
</table>
<? }
if($ssend=='wyslij')
{
$tresc = strip_tags(htmlspecialchars(stripslashes(trim($_POST['szept'])), ENT_QUOTES));
$aadres = strip_tags(htmlspecialchars(stripslashes(trim($_POST['adres'])), ENT_QUOTES));
$ahost = strip_tags(htmlspecialchars(stripslashes(trim($_POST['host'])), ENT_QUOTES));
$aprzegladarka = strip_tags(htmlspecialchars(stripslashes(trim($_POST['przegladarka'])), ENT_QUOTES));
$date = time();
$zapytanie = mysql_query("INSERT INTO ksiega SET szept_id_uzytkownika='".$_SESSION["id"]."', szept='$tresc', szept_data='$date', szept_ip='$aadres', szept_host='$ahost', szept_przegladarka='$aprzegladarka'");
Header ('Location: [URL=http://www.ogien.webd.pl/ksiega.php');]http://www.ogien.webd.pl/ksiega.php');[/URL]
}
else
{ ?>
<form method="post" action="ksiega.php" id="wysylanie" style="display: inline;">
<center>
<table border="0" cellspacing="1" cellpadding="1">
<tr>
<td valign="top">
Treść:
</td>
<td>
<input type="hidden" name="send" value="wyslij" />
<input type="hidden" name="adres" value="<? echo "".$_SERVER['REMOTE_ADDR'].""; ?>" />
<input type="hidden" name="host" value="<? echo "".gethostbyaddr($_SERVER['REMOTE_ADDR']).""; ?>" />
<input type="hidden" name="przegladarka" value="<? echo "".$_SERVER['HTTP_USER_AGENT'].""; ?>" />
<textarea type="text" name="szept" rows="10" cols="35"></textarea>
</td>
</tr>
<tr>
<td>
</td>
<td align="right">
<a href="#" onclick="document.getElementById('wysylanie').submit();" onMouseOver="overlib('<table><tr><td><center>...by zerwać<br />więzy milczenia.</center></td></tr></table>', FGCOLOR, '#222222', BGCOLOR, '#000000', TEXTCOLOR, '#CCCCCC', STATUS, 'Dymek zwykły', VAUTO, WRAP)" onMouseOut="nd();">
<b>Wyślij</b>
</a>
</td>
</tr>
</table>
</center>
</form>
<? }
}
else
{ ?
>
<span>
<center>
Nie można połączyć się z bazą - spróbuj ponownie za chwilę...
</center>
</span>
<? }
}
else
{ ?
>
<span>
<center>
Nie można połączyć się z serwerem MySQL - spróbuj ponownie za chwilę...
</center>
</span>
<? } ?>
</td>
<td valign="top">
<br /><br /><br /><br />
<a href="http://www.ogien.webd.pl/ksiega.php" onMouseOver="overlib('<table><tr><td><center>...by pozostawić kolejną cząstkę siebie.</center></td></tr></table>', FGCOLOR, '#181818', BGCOLOR, '#000000', TEXTCOLOR, '#CCCCCC', STATUS, 'Dymek zwykły', VAUTO, WRAP)" onMouseOut="nd();">
Szepty
</a><br />
<form method="post" action="rejestracja.php" id="pw" style="display: inline;">
<input type="hidden" name="opcja" value="pw" />
<a href="#" onclick="document.getElementById('pw').submit();" onMouseOver="overlib('<table><tr><td><center>...by zaistnieć w sercach innych.</center></td></tr></table>', FGCOLOR, '#222222', BGCOLOR, '#000000', TEXTCOLOR, '#CCCCCC', STATUS, 'Dymek zwykły', VAUTO, WRAP)" onMouseOut="nd();">
Skrzynka PW
<? if ($baza = mysql_connect($mysql_host, $mysql_login, $mysql_haslo))
{
if (mysql_select_db($mysql_baza))
{
$wwwynik = mysql_query("SELECT * FROM priv_tresc WHERE privtresc_id_odbiorcy='".$_SESSION["id"]."' and privtresc_status='nieprzeczytana'");
$wilosc = mysql_num_rows($wwwynik);
$wwwwynik = mysql_query("SELECT * FROM priv_tresc WHERE (privtresc_id_nadawcy='".$_SESSION["id"]."' or privtresc_id_odbiorcy='".$_SESSION["id"]."')");
$wwilosc = mysql_num_rows($wwwwynik);
if ($wilosc==0)
{
echo
"($wilosc/$wwilosc)";
}
else
{
echo
"(<font color=\"#CC0000\">$wilosc</font>/$wwilosc)";
}
}
else
{ ?>
<span>
<center>
Nie można połączyć się z bazą - spróbuj ponownie za chwilę...
</center>
</span>
<? }
}
else
{ ?
>
<span>
<center>
Nie można połączyć się z serwerem MySQL - spróbuj ponownie za chwilę...
</center>
</span>
<? } ?>
</a>
</form><br />
<a href="index.php?login=koniec" onMouseOver="overlib('<table><tr><td><center>...by zatoczyć koło i odejść.</center></td></tr></table>', FGCOLOR, '#181818', BGCOLOR, '#000000', TEXTCOLOR, '#CCCCCC', STATUS, 'Dymek zwykły', VAUTO, WRAP)" onMouseOut="nd();">
Wyloguj się
</a><br /><br /><br /><br />
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=4,0,2,0" width="500" height="800">
<param name=movie value="http://blaskognia.ovh.org/2.swf">
<param name=quality value=high>
<embed src="http://blaskognia.ovh.org/2.swf" quality=high pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="500" height="800">
</embed>
</object>
</td>
</tr>
</table>
<? }
else
{
die();
}
?>


Ten post edytował The Night Shadow 5.03.2006, 19:16:24


--------------------
Programista Stron i Serwisów WWW oraz Aplikacji Internetowych
Specjalista ds. Pozycjonowania Aplikacji Internetowych
Copywriter
Go to the top of the page
+Quote Post
piotrekkr
post
Post #2





Grupa: Zarejestrowani
Postów: 386
Pomógł: 25
Dołączył: 28.09.2005

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


a to przekierowanie gdzie przenosi?? z powrotem na ta sama strone??
Go to the top of the page
+Quote Post
The Night Shadow
post
Post #3





Grupa: Zarejestrowani
Postów: 495
Pomógł: 2
Dołączył: 5.02.2006
Skąd: Wrocław

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


Tak, dokładnie na tą samą.

  1. <?php
  2. Header ('Location: http://www.ogien.webd.pl/ksiega.php');
  3. ?>


--------------------
Programista Stron i Serwisów WWW oraz Aplikacji Internetowych
Specjalista ds. Pozycjonowania Aplikacji Internetowych
Copywriter
Go to the top of the page
+Quote Post
piotrekkr
post
Post #4





Grupa: Zarejestrowani
Postów: 386
Pomógł: 25
Dołączył: 28.09.2005

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


wogole jak patrze na ten kod to dla mnie jakas sieczka ogolnie. moglbys poprostu napisac na jakiej zasadzie on dziala i wywalic troche tagow html z tego lisingu?? Bo to jest nieczytelne
Go to the top of the page
+Quote Post
The Night Shadow
post
Post #5





Grupa: Zarejestrowani
Postów: 495
Pomógł: 2
Dołączył: 5.02.2006
Skąd: Wrocław

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


Problem został przeze mnie już rozwiązany. Dla zainteresowanych:

Pdany skrypt działał w następujący sposób. Wyświetlana jest strona z wszystkimi wpisami do księgi gości. Pod nimi znajduje się formularz, który po wypełnieniu ma dodawać nowy wpis. W momencie kiedy użytkownik kliknie wyślij w tym samym pliku zmienna $ssend przyjmowala wartosc "wyslij" i zamiast wyswietlac formularz dodawala odpowiednie dane do bazy. Nastepnie by nie bylo możliwości odświerzenia strony, a więc ponownego dodania komentarza następowało przekierowanie na tą samą stronę i t włąśnie jest haczyk. Kiedy wpisać http://itd. sesje są gubione, ale keidy wpisać sam plik np.: ksiega.php wszystko jest w porzadku. Schemat:

WPISY DO KSIGI

JEŚLI $SSEND=='WYSLIJ'

---- WSTAWIA DANE DO BAZY PRZEKIEROWUJAC NA TA SAMA STRONE, A WIEC KSIEGA.php ----

W PRZECIWNYM WYPADKU

---- FORMULARZ ----


A co do sieczki... użyłem OVERLIB i one stasznie dżo tekst ponad miare dodają.

Ten post edytował The Night Shadow 5.03.2006, 20:22:31


--------------------
Programista Stron i Serwisów WWW oraz Aplikacji Internetowych
Specjalista ds. Pozycjonowania Aplikacji Internetowych
Copywriter
Go to the top of the page
+Quote Post
piotrekkr
post
Post #6





Grupa: Zarejestrowani
Postów: 386
Pomógł: 25
Dołączył: 28.09.2005

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


a nie mogles poprostu zrobic funkcji ktora pod koniec sprawdzala czy ktos juz dodal wpis czy jeszcze nie i w zaleznosci od wyniku wyswietlala formularz lub nie?questionmark.gif
Go to the top of the page
+Quote Post
The Night Shadow
post
Post #7





Grupa: Zarejestrowani
Postów: 495
Pomógł: 2
Dołączył: 5.02.2006
Skąd: Wrocław

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


Na jedno by wyszło, a potrzebne by było dodatkowe zapytanie, w którym sprawdzałby w bazie datę dodania wpisu... po co to? Skoro w łatwy sposób można dodać i natchmiast przekierować... Skrypt księgi jest tak mało rozbudowany, zę ma to naprawde niewielki wpływ na wydajność.


--------------------
Programista Stron i Serwisów WWW oraz Aplikacji Internetowych
Specjalista ds. Pozycjonowania Aplikacji Internetowych
Copywriter
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 Aktualny czas: 21.08.2025 - 08:08