Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Jakieś cuda z sesjami
mk83
post
Post #1





Grupa: Zarejestrowani
Postów: 72
Pomógł: 0
Dołączył: 17.02.2005

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


Pisze sobie prosty skrypt obsługujący baze ogłoszeń. Wszystko szło gładko do mometu w ktorym zrobiłem tak zeby na strnie wyśwetlane były po 2 ogłoszenia z bazy danych, po naciśnięciu linka next kolejne dwa, a po nacisnięciu linka wstecz poprzednie dwa. Chyba wiadomo o co chodzi (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) . Teraz moze po koleji. Pierwsza strona to index.php na ktorej znajduje sie formulaz do logowania oraz wyswietlane sa ogloszenia z bazy danych bez mozliwoasci ich usuniecia czy edycji (ale to akurat jest malo istotne ). I na tej pierwszej stronie wszystko działa bez zadnych problemów. Nastepnie po zalogowaniu uruchamia sie strona index1.php, na ktorej nastepuje rejestracja zmiennych sesyjnych 'login' i 'haslo' . Tu tez sa wyswietlane ogloszenia z bazy danych tyle ze juz z mozliwoscia ich edycji. Przechodzac wreszcie do sedna sprawy, naciskając w link next za pierwszym razem wszystko jest ok, pojawiaja sie kolejne dwa ogloszenia, ale po nacisnieciu go po raz drugi jakims cudem usuwane sa zmienne sesyjne (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif) ! Od dwuch dni probuje dojsc czemu sie tak dzieje i dalej nie moge znalesc rozwiazania. Moze popełniam jakiśbanalny błąd ale naprawde nie mam pojęcia jaki (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif) !

PLIK index.php:

Kod
<?
session_start();
session_unregister("login");
session_unregister("haslo");
session_unregister("imienazwisko");
include("klasa.php"); $ob=new ogloszenie;
?>

<HTML><HEAD>



<STYLE TYPE="text/css">
<!--

BODY {
        FONT-WEIGHT: normal;
        FONT-SIZE: 11px;
        COLOR: #1f396a;
        FONT-STYLE: normal;
        FONT-FAMILY: Tahoma, Verdana,  Geneva, Arial, Helvetica, sans-serif;
  SCROLLBAR-FACE-COLOR: white;
  SCROLLBAR-HIGHLIGHT-COLOR: #CCECFF;
  SCROLLBAR-SHADOW-COLOR: #CCECFF;
  SCROLLBAR-3DLIGHT-COLOR: #CCECFF;
  SCROLLBAR-ARROW-COLOR: #CCECFF;
  SCROLLBAR-TRACK-COLOR: #FFFFFF;
  #CCFFFFSCROLLBAR-DARKSHADOW-COLOR: #CCECFF;
}

TD {
        FONT-WEIGHT: normal;
        FONT-SIZE: 11px;
        COLOR: #1f396a;
        FONT-STYLE: normal;
        FONT-FAMILY: Tahoma, Verdana,  Geneva, Arial, Helvetica, sans-serif;
}

A:link{text-decoration:none; font-family: Thoma; color:black; font-size:11px}
A:visited{text-decoration:none; font-family: Thoma; color:black; font-size:11px}
A:active{text-decoration:underline; font-family: Thoma; color:brown; font-size:11px}
A:hover{text-decoration:underline; font-family: Thoma; color:brown; font-size:11px}

-->
</STYLE>




</HEAD>
<BODY>
<center>
<br><br>

<table boredr=0 cellspacing=0 cellpaddiang=0>
<tr><td width=800 height=0.5 bgcolor="gray">
</td></tr>
</table>
<table boredr=0 cellspacing=0>
<form action=index1.php method=POST>
<tr><td width=800  bgcolor="#F5F5F6" class=text12 noWrap valign=top>
<code><b>&nbspLogowanie: </b>
<input type=text name=login value=login>
<input type=password name=haslo value=haslo>
<input type=submit value=GO>
</td>
</form>
</tr>
</table>
<table boredr=0 cellspacing=0 cellpaddiang=0>
<tr><td width=800 height=0.5 bgcolor="gray">
</td></tr>
</table>
<br>
<table boredr=0 cellspacing=0 cellpaddiang=0>
<tr><td width=800 height=0.5 bgcolor="gray">
</td></tr>
</table>
<table boredr=0 cellspacing=0>
<tr><td width=800  bgcolor="#F5F5F6" class=text12 noWrap valign=top>
<center>  <b><code><br>
<a href="index.php?x=wszystkie">WSZYSTKIE</a> | <a href="index.php?x=kupie">KUPIE</a> | <a href="index.php?x=sprzedam">SPRZEDAM</a> | <a href="index.php?x=zamienie">ZAMIENIE</a> | <a href="index.php?x=wynajme">WYNAJME</a> | <a href="index.php?x=inne">INNE</a> | <a href="index1.php?x=archiwum">ARCHIWUM<a/>
<br><br>
<?
$ob->pokaz_ogloszenia($x,0,$i,$i_max,$krok);

?>

  
</td>
</tr>
</table>
<table boredr=0 cellspacing=0 cellpaddiang=0>
<tr><td width=800 height=0.5 bgcolor="gray">
</td></tr>
</table>

</BODY></HTML>



PLIK index1.php

Kod
<? include("klasa.php"); $ob=new ogloszenie;
session_start();
session_register("login");
session_register("haslo");
session_unregister("login_db");
session_unregister("id");
?>

<HTML><HEAD>



<STYLE TYPE="text/css">
<!--

BODY {
        FONT-WEIGHT: normal;
        FONT-SIZE: 11px;
        COLOR: #1f396a;
        FONT-STYLE: normal;
        FONT-FAMILY: Tahoma, Verdana,  Geneva, Arial, Helvetica, sans-serif;
  SCROLLBAR-FACE-COLOR: white;
  SCROLLBAR-HIGHLIGHT-COLOR: #CCECFF;
  SCROLLBAR-SHADOW-COLOR: #CCECFF;
  SCROLLBAR-3DLIGHT-COLOR: #CCECFF;
  SCROLLBAR-ARROW-COLOR: #CCECFF;
  SCROLLBAR-TRACK-COLOR: #FFFFFF;
  #CCFFFFSCROLLBAR-DARKSHADOW-COLOR: #CCECFF;
}

TD {
        FONT-WEIGHT: normal;
        FONT-SIZE: 11px;
        COLOR: #1f396a;
        FONT-STYLE: normal;
        FONT-FAMILY: Tahoma, Verdana,  Geneva, Arial, Helvetica, sans-serif;
}

A:link{text-decoration:none; font-family: Thoma; color:black; font-size:11px}
A:visited{text-decoration:none; font-family: Thoma; color:black; font-size:11px}
A:active{text-decoration:underline; font-family: Thoma; color:brown; font-size:11px}
A:hover{text-decoration:underline; font-family: Thoma; color:brown; font-size:11px}

-->
</STYLE>




</HEAD>
<BODY alink=1f396a link=1f396a vlink=1f396a>
<center>
<br><br>
<table boredr=0 cellspacing=0 cellpaddiang=0>
<tr><td width=800 height=0.5 bgcolor="gray">
</td></tr>
</table>
<table boredr=0 cellspacing=0>
<form action=index1.php method=POST>
<tr><td width=450  bgcolor="#F5F5F6" class=text12 noWrap valign=top> <code><b>
<?
if(!$login || !$haslo )
{
echo "Nie podałes loginu lub hasła!!! | <a href=index.php>Powrot</a>";
echo "<td width=350  bgcolor=#F5F5F6 class=text12 noWrap align=right>&nbsp</td>";
}
else
{
$ob->logowanie($login,$haslo);
$imienazwisko=$ob->imienazwisko;
session_register("imienazwisko");
if($ob->co==1)
{
echo "&nbspZalogowany:<font color=#FF6600> ".$login."</font>";
?>
</td>
<td width=350  bgcolor="#F5F5F6" class=text12 noWrap align=right><code><b>
<?
if($login==administrator) printf(" <a href=panel.php>Panel administracyjny</a> | <a href=dodaj_ogloszenie.php>Dodaj ogłoszenie</a> | <a href=index.php>Wyloguj</a>");
else printf("<a href=dodaj_ogloszenie.php>Dodaj ogłoszenie</a> | <a href=index.php>Wyloguj</a>");
}
else
{
session_unregister("login");
session_unregister("haslo");
session_unregister("imienazwisko");
?>
<code><b>&nbspLogowanie: </b>
<input type=text name=login value=login>
<input type=password name=haslo value=haslo>
<input type=submit value=GO>
</td>
</form>
<td width=350  bgcolor="#F5F5F6" class=text12 noWrap align=right>&nbsp</td>
<?
}
?>
</tr>
</table>
<table boredr=0 cellspacing=0 cellpaddiang=0>
<tr><td width=800 height=0.5 bgcolor="gray">
</td></tr>
</table>
<br>
<table boredr=0 cellspacing=0 cellpaddiang=0>
<tr><td width=800 height=0.5 bgcolor="gray">
</td></tr>
</table>
<table boredr=0 cellspacing=0>
<tr><td width=800  bgcolor="#F5F5F6" class=text12 noWrap valign=top>
<?
if($ob->co==1)
{
?>
<center>  <b><code><br>
<a href="index1.php?x=wszystkie">WSZYSTKIE</a> | <a href="index1.php?x=kupie">KUPIE</a> | <a href="index1.php?x=sprzedam">SPRZEDAM</a> | <a href="index1.php?x=zamienie">ZAMIENIE</a> | <a href="index1.php?x=wynajme">WYNAJME</a> | <a href="index1.php?x=inne">INNE</a>  | <a href="index1.php?x=archiwum">ARCHIWUM<a/>
<br><br>
<?

$ob->pokaz_ogloszenia($x,1,$i,$i_max,$krok);
}



else echo "<code><b>Podałes nieprawidłowy login lub hasło (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif) !";
}
?>
</td>
</tr>
</table>
<table boredr=0 cellspacing=0 cellpaddiang=0>
<tr><td width=800 height=0.5 bgcolor="gray">
</td></tr>
</table>

</BODY></HTML>



PLIK klasa.php

Kod
<?
class ogloszenie
{
var $host="localhost";
var $login="root";
var $haslo="krasnal";
var $nazwa="ogloszenia";
var $co;
var $imienazwisko;



function ogloszenie()
{
$db=mysql_connect($this->host,$this->login,$this->haslo);
mysql_select_db($this->nazwa,$db);
}



function logowanie($login,$haslo)
{
$z=mysql_query("SELECT * FROM urzytkownicy WHERE login='$login'");
$row=mysql_fetch_array($z);
$this->imienazwisko=$row[3]." ".$row[4];
if($haslo==$row['haslo']) return $this->co=1;
else return $this->co=0;
}



function dodaj_ogloszenie($login,$a1,$a2,$a3,$tytul,$tresc,$kat,$imienazwisko,$grafika)
{
//sprawdzanie czy urzytkownik poprawnie wypełnił formularz
if(!$tytul) { echo "Nie podałes tytułu ogłoszenia!!!<br>"; $ok=1; }
if(!$tresc) { echo "Nie podałe treci ogłoszenia!!!<br>"; $ok=1; }
if((($a1=="on") && ($a2=="on") && ($a3=="on")) || (($a1=="on") && ($a2=="on")) || (($a1=="on") && ($a3=="on")) || (($a2=="on") && ($a3=="on"))) { echo "Możesz zaznaczyc tylko jedną opcje ( 4,7, lub 10 dni ) (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif) !!<br>"; $ok=1; }
if(!$a1 && !$a2 && !$a3) { echo "Wybierz przez ile dni ma być wyswietlane twoje ogłoszenie.<br>"; $ok=1; }
if($ok!==1)
{
if($a1=="on") $ile=345600; // 4 dni
if($a2=="on") $ile=604800; // 7 dni
if($a3=="on") $ile=864000; // 10 dni
switch($kat)
{
case 0: { $kategoria="kupie"; break; }
case 1: { $kategoria="sprzedam"; break; }
case 2: { $kategoria="zamienie"; break; }
case 3: { $kategoria="wynajme"; break; }
case 4: { $kategoria="inne"; break; }
}
if(is_uploaded_file($_FILES['grafika']['tmp_name']))
{
$sciezka="grafika/".$_FILES['grafika']['name'];
if(move_uploaded_file($_FILES['grafika']['tmp_name'],$sciezka))
{
@chmod($sciezka,666);  // zmiana uprawnien dodawanego pliku
}
}
else if(!$grafika) echo " "; else printf("<font color=red>Nie mozna było dodać grafiki!!!</font><br>");

$data_dodania=time();
$data_zakonczenia=time()+$ile;
mysql_query("INSERT INTO baza_ogloszen(tytul,tresc,login,imienazwisko,data_dodania,tryb,data_zakonczenia,kategoria,
rafika) VALUES('$tytul','$tresc','$login','$imienazwisko','$data_dodania','aktywny','$data_zakonczenia','$kategoria','$sciezka')");
echo "Dodano nowe ogłoszenie do bazy.";
}
}



function pokaz_ogloszenia($x,$tryb,$i,$i_max,$krok)
{
if($krok==next || !$krok)
{
if(!$i) $i=0;
if(!$i_max) $i_max=2;
else $i_max=$i_max+2;
}
elseif($krok==wstecz)
{
if(!$i) $i=0;
else $i=$i-4;
if(!$i_max) $i_max=2;
else $i_max=$i_max-2;
}

if($x=='wszystkie' || !$x) $z=mysql_query("SELECT * FROM baza_ogloszen ORDER BY data_zakonczenia");
else $z=mysql_query("SELECT * FROM baza_ogloszen WHERE kategoria='$x' ORDER BY data_zakonczenia");

$last=mysql_num_rows($z);
if($i<0) { $i=0; $i_max=2; }
if($i>$last) { $i=$last-1; $i_max=$last+1;}

mysql_data_seek($z,$i);


for($i;$i<$i_max;$i++)
{
$row=mysql_fetch_array($z);
$data_d=date("d-m-Y",$row[5]);
$dni_do_konca1=$row[7]-time()-86400;
$dni_do_konca=date("j",$dni_do_konca1);
if($tryb==1) { $tresc="<a href=usun.php?login_db=$row[3]&id=$row[0]>USUN</a> | <a href=edit.php?login_db=$row[3]&id=$row[0]&tytul=$row[1]&tresc=$row[2]>EDYTUJ</a>"; $adres='index1.php'; } else $adres='index.php';
printf("<table border=1>");
printf("<tr><td>$row[1]&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp $tresc </td></tr>");
printf("<tr><td><a href='$row[9]' target=_new><img src='$row[9]' width=100 height=100></a></td><td>$row[2]</td></tr>");
printf("<tr><td>Ogloszenie zamieszczone przez: $row[4] | Dnia: $data_d | Kategoria: $row[8] | Dni do końca: $dni_do_konca");
printf("</table><br><br>");
}
printf("<a href=$adres?i=$i&i_max=$i_max&krok=wstecz>WSTECZ</a> | <a href=$adres?i=$i&i_max=$i_max&krok=next>NEXT</a>");
}


function usowanie_ogloszenia($login_db,$login,$id,$czy_usunac)
{
session_register("login_db");
session_register("id");
if($login==$login_db || $login=='administrator')
{
if($czy_usunac==1)
{
mysql_query("DELETE FROM baza_ogloszen WHERE id='$id'");
echo "Ogloszenie zostało usunięte prawidłowo.";
}
else echo " Czy napewno chcesz usunąć to ogłoszenie ? <br><Br>  <a href=usun.php?czy_usunac=1>TAK</a> &nbsp&nbsp <a href=index1.php>NIE</a>";
}
else printf("Nie masz uprawnień do wykonania tej operacji (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif) !!");
}



function edycja_ogloszenia($login_db,$login,$id,$tytul,$tresc,$czy_edytowac)
{
session_register("id");
if($login==$login_db || $login=='administrator')
{
if($czy_edytowac==1)
{
mysql_query("UPDATE baza_ogloszen SET tytul='$tytul' , tresc='$tresc' WHERE id='$id'");
echo "Ogłoszenie zostało zmienione.";
}
else
{
printf("<form action=edit.php?czy_edytowac=1 method=POST>");
?>
Tytuł ogłoszenia: <br><bR>
<? printf("<input type=text name=tytul value=$tytul><br>"); ?>
<br>
Tresć ogłoszenia:<br><Br>
<? printf("<TEXTAREA NAME=tresc COLS=50 ROWS=7>$tresc</TEXTAREA> "); ?>
<br><Br>
<input type=submit value="Edytuj ogłoszenie">
</form>
<?
}
}
else printf("Nie masz uprawnień do wykonania tej operacji (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif) !!");
}



}
?>
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 16:05