![]() |
![]() |
![]()
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
![]() ![]() ![]() 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> Logowanie: </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> </td>"; } else { $ob->logowanie($login,$haslo); $imienazwisko=$ob->imienazwisko; session_register("imienazwisko"); if($ob->co==1) { echo " Zalogowany:<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> Logowanie: </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> </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 ![]() } ?> </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 ) ![]() 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]        $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>    <a href=index1.php>NIE</a>"; } else printf("Nie masz uprawnień do wykonania tej operacji ![]() } 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 ![]() } } ?> |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 453 Pomógł: 22 Dołączył: 20.09.2004 Skąd: Kraków - NH - Ostrzeżenie: (0%) ![]() ![]() |
Jeśli użytkownik użyje session_register() do zarejestrowania zmiennej sesyjnej, $HTTP_SESSION_VARS/$_SESSION nie będą zawierały tych zmiennych w tablicy dopóki nie zostanie ona odczytana z miejsca przechowywania sesji (np. do czasu następnego wywołania)." title="Zobacz w manualu PHP" target="_manual
lub Jeśli użytkownik użyje session_register() do zarejestrowania zmiennej sesyjnej, $HTTP_SESSION_VARS/$_SESSION nie będą zawierały tych zmiennych w tablicy dopóki nie zostanie ona odczytana z miejsca przechowywania sesji (np. do czasu następnego wywołania)." title="Zobacz w manualu PHP" target="_manual tak mi się wydaje że to jest problemem. na kolejnych stronach dawaj tylko session_start() i potem używaj zmiennych $_SESSION["zmienna"]. -------------------- Warsztat: Windows 7 Pro 64bit | Apache 2.2 | PHP 5.2 | MySQL 5.0 | PHPmyadmin 2.6.4
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 214 Pomógł: 0 Dołączył: 3.04.2004 Skąd: Legionowo Ostrzeżenie: (0%) ![]() ![]() |
Czy jest sens umieszczania tylu linii kodu w jednym poście? Nie mogłeś tego wrzucić na jakiś serwer i dać do ściągnięcia?
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 72 Pomógł: 0 Dołączył: 17.02.2005 Ostrzeżenie: (0%) ![]() ![]() |
Udało mi sie wkońcu znaleść przyczyne mojego problemu. W pliku klasa.php w funkcji pokaz_ogloszenia jest nastepujaca linijka:
Kod printf("<tr><td><a href='$row[9]' target=_new><img src='$row[9]' width=100 height=100></a></td><td>$row[2]</td></tr>"); W tej postaci jaka widać powyżej z jakiegos powodu zmienne sesyjne znikaja po odswiezeniu/powrocie do strony na ktorej jest uzyta ta funkcja. A jesli przeprowadze mala modywfukacje: Kod printf("<tr><td><a href='$row[9]' target=_new><img src=$row[9] width=100 height=100></a></td><td>$row[2]</td></tr>"); to wszystko działa proawidłowo ![]() |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 214 Pomógł: 0 Dołączył: 3.04.2004 Skąd: Legionowo Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 72 Pomógł: 0 Dołączył: 17.02.2005 Ostrzeżenie: (0%) ![]() ![]() |
No nistety przy Twoim sposobie wywal bład składni:
Kod Parse error: parse error in c:\usr\krasnal\www\moje\klasa.php on line 86
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 214 Pomógł: 0 Dołączył: 3.04.2004 Skąd: Legionowo Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 72 Pomógł: 0 Dołączył: 17.02.2005 Ostrzeżenie: (0%) ![]() ![]() |
Błedu juz nie ma ale nic to nie pomaga:(
Wlasnie zaówazyłem jeszcze jedna sprawe. Problem istnieje tylko pod IE, na inncy przegladarkach skrypt działa bez zadnych problemów. Ten post edytował mk83 1.04.2005, 09:49:11 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 25.07.2025 - 10:13 |