ďťż

[php] Wyswietlanie zawartosci pliku tekstowego.

       

Podstrony


telcocafe

Jak w php wyswietlic zawartosc pliku tekstowego... zawartosc pliku to tylko jedna liczba. Szukałem na tym forum i jakos nie moglem znajsc nie wiem moze slepy jestem :P Jezeli dubluje temat to dajcie link gdzie to bylo. Acha prosze jasno bo z php raczej zielony jestem (jak widac zreszta po pytaniu).



nie chodzi o <? include ('plik.txt'); ?> ..?

moze nie zrozumialem?
Użytkownik yoyek edytował ten post 12 grudzień 2006, 20:52
file_get_contents + manual na php.net

Ok wyswuetla zawartosc pliku tak to wyglada: $content=file_get_contents("licznik.txt",FALSE,NULL,0,20);
echo $content;
A tak wyglada moj licznik klikniec:

<?php
$plik=$_GET['http://coler0.host.sk/skrzydla.mp3'];
if(file_exists($plik)) {
$zawartosc_licznika=implode('',file('licznik.txt'));
$zawartosc_licznika++;
$file=fopen('licznik.txt','w');
flock($file,2);
fwrite($file,$zawartosc_licznika);
flock($file,3);
fclose($file);
header('Location:'.$plik);
}
?>
I pytanie czemu nie dolicza do pliku tekstowego kolejnych klikniec, chmod zmienilem na 644. Co jeszcze mam zrobic?



Co to jest $plik=$_GET['http://coler0.host.sk/skrzydla.mp3'];? Masz taką zmienną przekazywaną przez GET?

no tu powinien byc chyba adres do pliku tzn tak mysalem :P jak nie to oswiec mnie jak to ma byc ten skrypt ma tez inicjowac pobieranie pliku.

$plik=$_GET['http://coler0.host.sk/skrzydla.mp3']; if(file_exists($plik)) { ...
Po pierwsze adresik masz w kluczu tablicy niby.... a to powinna być wartość raczej, bo sprawdzasz botem wartość (chyba ze w wartości masz to samo, chociaż wątpię, bo jak zmienną GET można nazwać w ten sposób...).
Po drugie daj link względny do pliku (z polskiego na nasze samą nazwę pliku)

EDIT: znów mnie uprzedzili...

EDIT 2:

no tu powinien byc chyba adres do pliku tzn tak mysalem tongue.gif jak nie to oswiec mnie jak to ma byc ten skrypt ma tez inicjowac pobieranie pliku.

$plik=$_GET['plik'];

a w adresie strony dajesz np. http://coler0.host.s...ik=skrzydla.mp3
Użytkownik kutar edytował ten post 12 grudzień 2006, 21:16
Wzglednego nie moge dac bo jest na innym serwerze niestety. to moze ktos zmodyfikuje ten moj skrypt i pokaze jak to powinno wygladac bo troche nie jarze...

Czyli, chyba<?php $plik='http://coler0.host.sk/skrzydla.mp3'; if(file_exists($plik)) { $zawartosc_licznika=implode('',file_get_contents('licznik.txt')) ; $zawartosc_licznika++; $file=fopen('licznik.txt','w'); flock($file,2); // to chyba nie jest konieczne? ale nie jestem pewien fwrite($file,$zawartosc_licznika); flock($file,3); // j. w. fclose($file); header('Location:'.$plik); } ?>

<?php $zawartosc_licznika=implode('',file('licznik.txt')); $zawartosc_licznika++; $file=fopen('licznik.txt','w'); flock($file,2); fwrite($file,$zawartosc_licznika); flock($file,3); fclose($file); header('Location:http://coler0.host.sk/skrzydla.mp3'); ?>
Może tak - bez sprawdzania obecności pliku na serwerze, bo nie wiem czy można sprawdzić obecność pliku na innym serwerze funkcją file_exists()

A flock() przy zapisie raczej powienien być. Bo co by było gdyby 2 kopie skryptu chciały dostępu do tego pliku w tym samym czasie... Kiedyś tego nie stosowałem to dostałem nauczke... ;P
Użytkownik kutar edytował ten post 12 grudzień 2006, 21:21
Zrboilem tak jak pisaliscie no i plik znajduje sie tam na serwie tyle ze jest problem przy klikaniu na odnosnik You don't have permission to access /skrzydla.mp3 on this server.
Zdaje sie ze nie mozna z zewnatrz linkowac do tego serwa :/
Moze idzie to jakos ominac?

Hmmm... A jak nazwałeś plik, który ma dodać 1 do licznika i nastepnie przekierować przeglądarke (najlepiej podaj linka) i zapokaż jeszcze całe źródło tego pliku

Plik nazwalem pobierz.php
Jego zrodlo:
<?php
$plik='http://coler0.host.sk/skrzydla.mp3';
$zawartosc_licznika=implode('',file_get_contents('licznik.txt'));
$zawartosc_licznika++;
$file=fopen('licznik.txt','w');
flock($file,2);
fwrite($file,$zawartosc_licznika);
flock($file,3);
fclose($file);
header('Location:'.$plik);
?>

Daj linka do pliku pobierz.php

http://croust.ovh.org/pobierz.php
// nie wiem co sie stalo ale teraz wszystko dziala!!
Dzieki wszystkim za pomoc!!
// i znowu nie dziala nie wiem co jest grane
Użytkownik coler0 edytował ten post 12 grudzień 2006, 21:54
U mnie się normalnie wyświetla okienko pobierania. Sprawdziłem Firefoxem i IE i nie było rzadnych problemów. Możesz jakoś przybliżyć sytuację kiedy pojawia się ten komunikat?

@EDIT: a jednak mnie uprzedziłes;]
Użytkownik kutar edytował ten post 12 grudzień 2006, 21:54
No walsnie ten problem ze u mnie tez ze dwa razy sie wyswietlilo a teraz znowu to samo co bylo :///
<a href="pobierz.php">.::Pobierz::.</a> -> To jest jeszcze moj link na stronie do tego pobierz.php
Jak wywoluje wlasnie ze strony to jest blad, jak wpisuje w przegladarke adres do pliku pobierz jest ok.
Moze tutaj jest blad?
Użytkownik coler0 edytował ten post 12 grudzień 2006, 22:01
Tutaj ewidentnie serwer blokuje linkowanie z innych serwisów. Ma to zabezpieczyć usługodawców darmowych hostingów przed umieszczaniem jedynie plików do downloadu. I właśnie w tym przypadku się sprawuje;] Co prawda możemy jakoś obchodzić to przez cURLA i wysyłanie spreparowanego REFERERA, ale prościej umieścić plik na innym serwie. Jeśli w grę wchodzi tylko ten jeden plik to proponuję umieścić to na serwerku, który otrzymałeś np z pocztą (WP, Onet, Interia). Możesz też się rozejrzeć za czymś większym. Ale skoro potrzebujesz tego tylko dla jednego pliku to mozna skorzystać przecież z tego co masz razem z kontem pocztowym;]

Napisz moze jak to ominac bo chcialbym zeby ten plik byl na tym serwie. Pokaz jak powinno wygladac uzycie tego cURLA przyda sie na przyszlosc.

<?php $zawartosc_licznika=implode('',file('licznik.txt')); $zawartosc_licznika++; $file=fopen('licznik.txt','w'); flock($file,2); fwrite($file,$zawartosc_licznika); flock($file,3); fclose($file); header('Content-Type: audio/mpeg3'); header('Content-Disposition: attachment; filename=skrzydla.mp3'); $c=curl_init('http://coler0.host.sk/skrzydla.mp3'); curl_setopt($c,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1) Gecko/20061010 Firefox/2.0'); curl_setopt($c,CURLOPT_REFERER,'http://coler0.host.sk/'); curl_exec($c); curl_close($c); ?>
Użytkownik kutar edytował ten post 12 grudzień 2006, 22:41
O to chodzilo jeszcze raz wielkie dzieki dla wszystkich teraz smiga tylko nie wiem czy licznik zlicza poprawnie ale sprobuje to sam zalatwic.
//liczniczek dziala wszystko gra i buczy:p
Użytkownik coler0 edytował ten post 12 grudzień 2006, 22:53
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.