Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem ze skryptem
Forum PHP.pl > Forum > Przedszkole
Anonymous
Witam, stworzyłem skrypt do newsów, oto jego kod:

[php:1:85f955aa82]

<!--HEADER-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//PL">
<HTML>
<HEAD>

<TITLE>Newsy</TITLE>
<script>
function resett(){if(document.forma.tresc.value=="Tre&para;ć newsa..."){document.forma.tresc.value="";}}
</script>
</HEAD>
<BODY>
<!--/HEADER-->
<div align=center>
<?
IF($akcja=="news"){

IF(isset($dodaj)){

$data1 = date("d-m-Y_H-i");
$plik = fopen("data/$data1.txt","w+");
$dopisz = fwrite($plik, $tresc);
fclose($plik);
echo "<b><center>News dodany</center></b>";

} ELSE {

echo "<form name='forma' action='news.php?akcja=news' method='post'><table border=1 width=80%>";
echo " <tr>";
echo " <td>";
echo " <b><font face=verdana STYLE='FONT-SIZE: 12px'>Tre&para;ć newsa</font></b>";
echo " </td>";
echo " </tr>";
echo " <tr>";
echo " <td>";
echo " <textarea name=tresc OnMouseDown='resett();' STYLE='width: 100%; HEIGHT: 200px'>Tre&para;ć newsa...</textarea>";
echo " </td>";
echo " </tr>";
echo " <tr>";
echo " <td>";
echo " <center><input type='submit' name='dodaj'></center>";
echo " </td>";
echo " </tr>";
echo "</table></form>";

}
}

IF($akcja=="lista"){



$dir = "data";
$sep=chr(92);


if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while ($file = readdir($dh)) {
if (($file<>".")&&($file<>"..")){
$file2=explode(".",$file);

$i++;
$tablica[$i]=$file2[0];

}}}
closedir($dh);
}

$total = sizeof($tablica);
for($i=0; $total > $i; $i++){
rsort($tablica);

$plik = fopen("data/$tablica[$i].txt","r");
$tresc = fread($plik,filesize("data/$tablica[$i].txt"));
fclose($plik);

echo "<table border=1 width=80%>";
echo "<tr><TD><b>Temat:</b></TD></tr>";
echo "<tr><TD>";
IF(strlen($tresc)<=200){

$kiedy=explode("_",$tablica[$i]);
$kiedy[1]=str_replace("-",":",$kiedy[1]);

echo "$tresc</tr></td><tr><td><b><font face=verdana STYLE='FONT-SIZE: 9px'>Dodano dnia:</b> $kiedy[0] 0 <b> o godzinie: </b> $kiedy[1]</font></tr></td>";

} ELSE {
$lght=strlen($tresc);
$nowa_tresc=substr($tresc,0,200);
$kiedy=explode("_",$tablica[$i]);
$kiedy[1]=str_replace("-",":",$kiedy[1]);

echo "$nowa_tresc...<tr><td><font face=verdana STYLE='FONT-SIZE: 9px'><a href=news.php?akcja=more&czas=$tablica[$i]>więcej ></a></font></tr></td>";
echo "<tr><td><font face=verdana STYLE='FONT-SIZE: 9px'>Dodano dnia:</b> $kiedy[0] 0 <b> o godzinie: </b> $kiedy[1]</font></td></tr>";
}
echo "</td></tr>";
echo "</table><br>";
}


}
IF($akcja=="more"){

$plik = fopen("data/$czas.txt","r");
$tresc = fread($plik,filesize("data/$czas.txt"));
fclose($plik);

$kiedy=explode("_",$czas);
$kiedy[1]=str_replace("-",":",$kiedy[1]);


echo "<table border=1 width=80%>n<tr>n<td>n";
echo "<font face=verdana STYLE='FONT-SIZE: 12px'>$tresc</font>";
echo "<tr><td><b><font face=verdana STYLE='FONT-SIZE: 9px'>Dodano dnia:</b> $kiedy[1] <b> o godzinie: </b> $kiedy[1]</font>n</tr>n</td>n";
echo "</tr></td></table>";
}

?>
</div>
<!--FOOTER-->
</BODY>
</HTML>
<!--/FOOTER-->

[/php:1:85f955aa82]

jednak cały czas na innym serwie wyświetla mi błąd

Notice: Undefined variable: tablica in /home/igor/public_html/newsy/news.php on line 70

umnie wszystko działa, tylkko tam... Wie ktos może co jest nietak ?
Jojo
dopisz na początku skryptu:
[php:1:fb67c7bbe1]<?php
error_reporting( E_ALL^E_NOTICE );
?>[/php:1:fb67c7bbe1]
scanner
Cytat
dopisz na początku skryptu:
[php:1:e67792798b]<?php
   error_reporting( E_ALL^E_NOTICE );
?>[/php:1:e67792798b]
NIe sztuką jest maskowac niechlujstwo. Sztuką jest go unikać.
Przed problematyczna tablića należy sprawdzić, czy $tablica jest ustawiona (seria funkcji is_* ) i jełsi nie, albo pominąc fragment kodu, albo ustawic zmienną na jakieś domyslne wartośći.
Anonymous
Cytat
dopisz na początku skryptu:
[php:1:a0071b7108]<?php
   error_reporting( E_ALL^E_NOTICE );
?>[/php:1:a0071b7108]


Teraz to wcale niedziała sad.gif (powinien wyświetlić listę newsów a niewyświetla)

Oto adres tego skryptu: http://igo.homeftp.net/newsy/news.php?akcja=lista
Jojo
scanner: W zasadzie to masz rację... smile.gif

Szakal: Sądzę, że dodanie poniżej
[php:1:b0148529ea]<?php
IF($akcja=="lista")
?>[/php:1:b0148529ea]
kodu
[php:1:b0148529ea]<?php
$tablica = array();
?>[/php:1:b0148529ea]
powinno pomóc. Nie powinien wtedy wyświetlać tego notice.

Nie mam pojęcia dlaczego ustawienie error_reporting nie działa. Możesz spróbowac rozwiązać problem powyższym kodem.
Anonymous
Cytat
scanner: W zasadzie to masz rację... smile.gif  

Szakal: Sądzę, że dodanie poniżej
[php:1:a5bec5127c]<?php
   IF($akcja=="lista")
?>[/php:1:a5bec5127c]
kodu
[php:1:a5bec5127c]<?php
   $tablica = array();
?>[/php:1:a5bec5127c]
powinno pomóc. Nie powinien wtedy wyświetlać tego notice.

Nie mam pojęcia dlaczego ustawienie error_reporting nie działa. Możesz spróbowac rozwiązać problem powyższym kodem.


Dało mi to tyle, ze niema błędu, ale listy newsów nadal niewyświetla sad.gif((
Szakal
A jak dodawać pozycję do tablicy poprzez pętle z wykorzystaniem array questionmark.gif Ja osobiście niewiem jak się zato zabrać

próbowałem tak:

[php:1:209ccabec3]<?php
while ($file = readdir($dh)) {
$i++;
$tablica[$i]="pozycja nr. $i";
}
?>[/php:1:209ccabec3]

Jak to zrobić zapomocą array ?
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.