Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Strona dziwnie się wyświetla
Forum PHP.pl > Forum > PHP
firex
Piszę tutaj, bo temat dotyczy i PHP i wyświetlania.
www.innyportal.cba.pl/info/info.php
^strona wyświetla się podwójnie

kod PHP (część, która jest za to odpowiedzialna)
Kod
$file=file_get_contents('dane1');
$file.=file_get_contents('dane1');
$file.=file_get_contents('dane1');
$file.=file_get_contents('dane1');
$file.=file_get_contents('dane1');
echo '<p style="display: none;">'.$file.'</p>';
wczytuję tu 5 razy plik o długości 500 000 bajtów, a następnie wyświetlam
batman
Zgaduję, że użyłeś funkcji ob_end_flush(), do wyczyszczenia bufora. Zamiast tego użyj ob_end_clean() i powinno być ok.
firex
bufora w ogóle nie użyłem...
batman
Mógłbym przysiąc, że zamiast file_get_contents, widziałem ob_get_contents. Pewnie zmęczenie winksmiley.jpg
W jakim celu pobierasz dane kilkakrotnie przez file_get_contents? Tutaj szukałbym przyczyny Twoich problemów.
firex
Cytat(batman @ 23.10.2007, 07:59:21 ) *
W jakim celu pobierasz dane kilkakrotnie przez file_get_contents? Tutaj szukałbym przyczyny Twoich problemów.

kilkakrotne było nieprzemyślane, bo nic nie dawało. teraz wygląda to tak:
Kod
$file=file_get_contents('dane1');
$rozm=(strlen($file)/1024);

for($i=0;$i<5;++$i)
{
  $czas1=explode(' ', microtime());
  echo '<p style="display: none;">'.$file.'</p>';
  $czas2=explode(' ', microtime());
  //ob_end_flush()
  $czas=$czas2[1]-$czas1[1];
  
  $szybk[]=round($rozm/$czas, 2);
}
robię tester szybkości łącza, kilkukrotnie sprawdzam (pętla), bo wtedy wynik jest dokładniejszy (pobieram 5 wyników i podaję średnią)
problem chyba leży w echo, echuje dane, bo to jedyny sposób jaki mi przyszedł na myśl, żeby sprawdzić szybkość (samo wczytanie do zmiennej nic nie dało, nie obciążyło skryptu - a musi, żeby sprawdzić czas)

questionmark.gif

questionmark.gif
batman
W podanym przez Ciebie fragmencie kodu wyświetlasz zawartość pliku 5 razy. Nie ma tutaj nic, co pozwoliłoby stwierdzić dlaczego strona wyświetla się dwukrotnie.
firex
Kod
<? header('Content-type: text/html; charset=iso-8859-2');
$agent=explode('/', trim($_SERVER['HTTP_USER_AGENT']));?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="Description" content="Tu podaj opis twojej strony" />
<meta name="Keywords" content="wyraz1, wyraz2, wyraz3..." />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
<title>Informacje o tobie :: Tester szybko¶ci ł±cza :: Speed test</title>
<style type="text/css">
h1{text-align: center;}
h2{font-size: 20px;}
p{margin:0;}
p span{display:block;}
abbr{cursor: help;}
img{border: none;}
#w3c{float:right;}
#load{display: none; margin: 10px; color: #505050; font-weight: bold;}
label{display: block;}
input{width:270px;}
#ip1,#ip2{display:inline; font-weight: bold;}
#ip1{color: red;}
#ip2{color: green;}
</style>
<script type="text/javascript">
document.getElementById("load").style.display = "block"
</script>
</head>

<body>

<?
$IP=trim($_SERVER['REMOTE_ADDR']);

echo '<p>Przychodzisz z adresu: <a href="'.$_SERVER['HTTP_REFERER'].'">'.$_SERVER['HTTP_REFERER']."</a></p>\n";
echo '<p>Przegl±darka: '.$_SERVER['HTTP_USER_AGENT'].'</p>';
echo '<p id="ip">IP: '.$IP;
if($IP=='127.0.0.1'){echo ' <span id="ip1">IP lokalne - localhost</span></p>';}elseif($IP>'10.0.0.0' && $IP<'10.255.255.255' || $IP>'172.16.0.0' && $IP<'172.31.255.255' || $IP>'192.168.0.0' && $IP<'192.168.255.255'){echo ' <span id="ip1">Wewnętrzne :: Internal</span>';}else{echo ' <span id="ip2">Zewnętrzne :: External</span></p>';}
echo '<p>HOST: '.gethostbyaddr($_SERVER['REMOTE_ADDR'])."</p>\n";
echo '<p>Port: '.$_SERVER['REMOTE_PORT']."</p>\n";

echo '<h2>Tester szybko¶ci ł±cza :: Speed test</h2>
<p id="load">Trwa testowanie szybko¶ci twojego ł±cza...</p>';

if($agent[0]!='W3C_Validator'){

$file=file_get_contents('dane1');
$rozm=(strlen($file)/1024);

for($i=0;$i<5;++$i)
{
  $czas1=explode(' ', microtime());
  echo '<p style="display: none;">'.$file.'</p>';
  $czas2=explode(' ', microtime());

  $czas=$czas2[1]-$czas1[1];
  
  $szybk[]=round($rozm/$czas, 2);
}

foreach($szybk as $ln)
{
    $wsz=$wsz+$ln;
}
$wsz=$wsz/count($szybk);

$szybk=$wsz;
$szybk2=round($szybk*8, 2);
echo '<p>Szybko¶ć ł±cza:<span>'.$wsz.' <abbr title="Kilobajtów na sekundę">KB/s</abbr></span><span><big>'.$szybk2.' <abbr title="Kilobitów na sekundę">kb/s</abbr></big></span></p>';

}

?>
  
<script type="text/javascript">
document.getElementById("load").style.display = "none"
</script>
  
</body>
</html>
<?  ?>
batman
W podanym przez Ciebie kodzie nie ma nigdzie podwójnego wyświetlania danych. Na lokalnym serwerze wszystko się dobrze wyświetliło - czyli raz. W źródle strony widać wyraźnie, że jedna strona została wyświetlona dwukrotnie. Dlaczego? Nie mam pojęcia.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.