ďťż
Podstrony
|
telcocafeDzień dobry. Mam problem. W numerze 5/05 w przydatnych kodach był artykuł o systemie downloadu.<?php function pobierzDane($id) { $dane = file('download.txt'); foreach($dane as $linijka) { $pozycja=explode('|', $linijka); if ($pozycja[0]==$id) return trim($pozycja[1]); } } if (isset($_GET['id'])) $id=$_GET['id']; else $id=''; $nazwaPelna = pobierzDane($id); $nazwaPliku = substr($nazwaPelna, strrpos($nazwaPelna, '/') + 1, strlen($nazwaPelna)); if (file_exists($nazwaPelna)) { $plik = fopen($nazwaPelna,'r'); $rozmiar = filesize($nazwaPelna); $zawartosc = fread($plik, $rozmiar); fclose($plik); header("Content-Type: application/octet-stream"); header("Content-Length: $rozmiar;"); header("Content-Disposition: attachment; filename=$nazwaPliku"); echo $zawartosc; } else { echo 'nie ma pliku'; } Nie chciałem, aby ściągał mi plik to go przekształciłem(nie umiem php, tylko kombinowałem). <?php function pobierzDane($id) { $dane = file('users.txt'); foreach($dane as $linijka) { $pozycja=explode('|', $linijka); if ($pozycja[0]==$id) return trim($pozycja[1]); } } if (isset($_GET['id'])) $id=$_GET['id']; else $id=''; $nazwaPelna = pobierzDane($id); $nazwaPliku = substr($nazwaPelna, strrpos($nazwaPelna, '/') + 1, strlen($nazwaPelna)); if (file_exists($nazwaPelna)) { $plik = fopen($nazwaPelna,'r'); $rozmiar = filesize($nazwaPelna); $zawartosc = fread($plik, $rozmiar); fclose($plik); echo $zawartosc; } else { echo 'nie ma pliku'; } W pliku users.txt mam ścieżki skryptów, które chciałm zamieśćić, a dokładnie plik logowania(ten prostrzy :) ) (według sposobu eksperta). Jak kliknę na stronkę http://hubert.h1.pl/prog/user.php?id=1 to zmiast logowania http://hubert.h1.pl/prog/2.php tylko jkieś krzaki. Gdzie jest błąd ? U mnie takie krzaki były gdy zapomniałem uruchomić interpretera PHP, a jak uruchomiłem to znikły i było poprawnie. Weim, ale nie wiem jak uruchomić tego interpretera PHP bo się na PHP nie znam :( . Norrmalnie jest włączony. Użytkownik Petermechanic edytował ten post 01 luty 2006, 13:10 A skrypt jest pod rozszerzeniem .PHP? Może trzeba mieć na serwerze .PHTML Użytkownik Capitan V edytował ten post 01 luty 2006, 13:12 tak. Te pliki mają rozszerzenie .php . Wszystko chodzi pooprawnie nawet forum na tym koncie ;) oprócz tego sryptu :( Użytkownik Petermechanic edytował ten post 01 luty 2006, 13:12 No to sbróbuj zrobić bez ?id=1. Użytkownik Capitan V edytował ten post 01 luty 2006, 13:13 http://hubert.h1.pl/prog/2.php chodzi poprawnie, hasło: test, login : test, ale coś z tym plikiem user.php jest nie tak :/ Użytkownik Petermechanic edytował ten post 01 luty 2006, 13:15 A wpisałeś początek sesji? Jak tak no to nie wiem co jest. SESJA powinna być w każdym pliku twojej strony. No to nie wiem o to jest :huh: Użytkownik Capitan V edytował ten post 01 luty 2006, 13:23 Kod pliku 2.php (tego testowego)? <?php session_start(); session_register("jest_adminem"); $plik_skryptu = "2.php"; function naglowek($tytul){ echo "<html>"; echo "<head>"; echo "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-2\" />"; echo "<meta http-equiv=\"content-language\" content=\"pl\">"; echo "<title>{$tytul}</title>"; echo "<body>"; } function pokaz_okno_log($komunikat) { global $plik_skryptu; echo "<p>{$komunikat}</p>"; echo "<form name=\"logowanie\" action=\"{$plik_skryptu}\" method=\"post\">"; echo "Login: <input type=\"text\" name=\"login\"><br>"; echo "Hasło: <input type=\"password\" name=\"haslo\"><br>"; echo "<input type=\"hidden\" name=\"strona\" value=\"sprawdz\">"; echo "<input type=\"submit\" value=\"Zaloguj\"></form>"; } function stopka(){ echo "</body>"; echo "</html>"; } if(empty($_SESSION['jest_adminem'])) { $_SESSION['jest_adminem'] = "nie"; } if($HTTP_POST_VARS["strona"] == "") { $strona = $HTTP_GET_VARS["strona"]; } else { $strona = $HTTP_POST_VARS["strona"]; } if($strona == "") { if($_SESSION['jest_adminem'] == "tak") { ?> Test Stronki. <a href=<?=$plik_skryptu?>?strona=wyloguj>Wyloguj</a>. <br> <? } else { naglowek("Uzytkownik nie jest zalogowany!"); pokaz_okno_log("Aby ogl±dać tę stronę musisz być zalogowany!"); stopka(); } } elseif($strona == "sprawdz") { if($HTTP_POST_VARS["login"] == "test" && $HTTP_POST_VARS["haslo"] == "test") { $_SESSION['jest_adminem'] = "tak"; naglowek("Login i hasło poprawne!"); echo "<p>Zalogowanie zakończone sukcesem.<br>"; echo "Można już otworzyć <a href=\"{$plik_skryptu}\">tajn± podstronę</a></p>"; stopka(); } else { $_SESSION['jest_adminem'] = "nie"; naglowek("Bł±d logowania"); pokaz_okno_log("Zalogowanie się nie powiodło. Spróbuj jeszcze raz."); stopka(); } } elseif($strona == "wyloguj") { $_SESSION['jest_adminem'] = "nie"; naglowek("Wylogowanie"); echo "<p>Nast±piło wylogowanie. <a href=\"{$plik_skryptu}\">PrzejdÄ˝ na stronę główn±</a></p>"; stopka(); } ?> Użytkownik Petermechanic edytował ten post 01 luty 2006, 13:21 Ok po 10 min patrzenia w kod i myślenia co chciałeś osiągnąc popatrzyłem na users.txt. Hehe... skrypt działa bez zarzutu, tak jak powinienen. Wczytuje zawartość pliku 2.php i to działa ładnie. :P A tak serio to: <?php function pobierzDane($id) { $dane = file('users.txt'); foreach($dane as $linijka) { $pozycja=explode('|', $linijka); if ($pozycja[0]==$id) return trim($pozycja[1]); } } if (isset($_GET['id'])) $id=$_GET['id']; else $id=''; $nazwaPelna = pobierzDane($id); $nazwaPliku = substr($nazwaPelna, strrpos($nazwaPelna, '/') + 1, strlen($nazwaPelna)); if (file_exists($nazwaPelna)) { include($nazwaPelna); } else { echo 'nie ma pliku'; } Choć tak szczerze pomysł by wczytywać strone z pliku konfiguracyjnego nie należy do najlepszych. Weim ,le mi właśnie o to chodziło i nie wiem ,dlaczego pokazuje mi takie krzaki :( Proszę o pomoc. Użytkownik Petermechanic edytował ten post 01 luty 2006, 14:56 Witam, mam problem z tym samym systemem dowloadu. W skrypcie chyba nie ma błędu: <?php function pobierzDane($id){ Â $dane = file('filess.txt'); Â Â foreach($dane as $linijka) { Â $pozycja=explode('|', $linijka); Â if ($pozycja[0]==$id) Â Â return trim($pozycja[1]); Â } } if (isset($_GET['id'])) $id=$_GET['id']; else $id=''; $nazwaPelna = pobierzDane($id); $nazwaPliku = substr($nazwaPelna, Â Â strrpos($nazwaPelna, '/')+1, Â Â strlen($nazwaPelna)); if (file_exists($nazwaPelna)) { $plik = fopen($nazwaPelna, 'r'); $rozmiar = filesize($nazwaPelna); $zawartosc = fread($plik, $rozmiar); fclose($plik); header("Content-Type: application/octet-stream"); header("Content-Length: $rozmiar;"); header("Content-Disposition: attachment; filename=$nazwaPliku"); echo $zawartosc; } else{ Â echo 'nie ma pliku'; } ?> A problem jest tego typu, że kiedy chce ściągnąc jakis plik na próbe to ściąga tylko małą jego częśc. Np z pliku o rozmiarze 27 mb sciagnal około 3,5 kb. Dlaczego?? Prosze o pomoc Użytkownik tonyyy20 edytował ten post 05 luty 2006, 16:15 To jest duży kod używaj [ codebox],[ /codebox]. To jest skrypt z eksperta? Ten właśnie skrypt mi poprawnie dizałał(z eksperta, chyba). Użytkownik Petermechanic edytował ten post 05 luty 2006, 13:23 To jest duży kod używaj [ codebox],[ /codebox]. To jest skrypt z eksperta? Ten właśnie skrypt mi poprawnie dizałał(z eksperta, chyba). To nie wiem, dalczego nie działa bo mu mnie jest wszystko w porządku (chyba) |
|||
Sitedesign by AltusUmbrae. |