Strona 1 z 1

[PHP][Problem] Błąd składni w dziwnym miejscu

: śr sty 25, 2006 9:14 am
autor: VieriX
[php]
<?php
if(file_exist("c:/temp/sn_cookieA.sn"))
{
$plikA=fopen("c:/temp/sn_cookieA.sn", "r+");
$iloscA=fgets($plikA, "1");
fclose($plikA);
if($iloscA=0)
{
//WYSWIETL BANNER A i
echo 'BANNER A';
$plikAA=fopen("c:/temp/sn_cookieA.sn", "w");
fwrite($plikAA, "1");
fclose($plikAA);

$plikBB=fopen("c:/temp/sn_cookieA.sn", "w");
fwrite($plikBB, "0");
fclose($plikBB);
}
else
{
$plikB=fopen("c:/temp/sn_cookieB.sn", "r+");
$iloscB=fgets($plikB, "1");
fclose($plikA);
if($iloscB=0)
{
//WYSWIETL BANNER B i
echo 'BANNER B';

$plikAA=fopen("c:/temp/sn_cookieA.sn", "w");
fwrite($plikAA, "0");
fclose($plikAA);

$plikBB=fopen("c:/temp/sn_cookieA.sn", "w");
fwrite($plikBB, "1");
fclose($plikBB);
}
else
{
$plik_utworz=fopen("c:/temp/sn_cookieA.sn", "w");
$plik_utworz2=fopen("c:/temp/sn_cookieB.sn", "w");
echo 'Funkcja zostanie wyświetlona przy kolejnych odwiedzinach. Dziękujemy!';
fclose($plik_utworz);
fclose($plik_utworz2);
}
?>
[/php]

Blad skladni w wierszu 46. Czy ktoś potrafiłby mi pomóc?? Oznaczyłem specjalnie wiersze, aby nie było kłopotu.

//edit
Zresza niepotrzebnie bo wiersze oznacza

Kod: Zaznacz cały

[php][/php]
8)

Z góry dziekuje
Pozdrawiam
Vieri

Re: [PHP][Problem] Błąd składni w dziwnym miejscu

: śr sty 25, 2006 10:59 am
autor: Hawk
Nie do konca rozumiem ten kod ale moze chodzic o brak klamerki } przed else w linii 37 (albo inaczej mowiac niezamkniety if z linii 2).

Dodatkowo w zly sposob sprawdzasz warunki. Zapis typu $iloscA=0 spowoduje przypisanie do $iloscA wartosci 0. Sprawdzania rownosci dokonuje sie za pomoca ==. Mysle, ze w tym wypadku moglbys rowniez uzyc konstrukcji if($iloscA) - dla wartosci 0 $iloscA bedzie postrzegana jako falsz co spowoduje ominiecie tej instrukcji, natomiast kazda inna wartosc spowoduje jej wykonanie.

Re: [PHP][Problem] Błąd składni w dziwnym miejscu

: śr sty 25, 2006 11:44 am
autor: VieriX
Ok, dziekuje sprawdze. O wynikach poinformuje :-D

Pozdrawiam
Vieri

//edit

No to sprawa wyglada tak:
Dodałem klamerkę i bład przeskoczył na linijkę 38, dalej problem ze skladnia.
W if'ach zmienilem = na ==, choc wydaje mi sie, ze jedno = wystarcza (w roznych innych skryptach tak to jest notowane).

Moze troche o zalorzeniu skryptu:
Skrypt ma wyświetlać na przemian bannerB i bannerB. Na przemian tzn. za jednym zaladowaniem strony widac bannerA a za drugim (lub po odswiezeniu) bannerB. Nie kozystam z bazy mysql bo to zbyt duzy stopien wtajemniczenia dla mnie, a pozatym mam strasznie malo czasu (ambitny jestem, moze za rok bym to zrobil). Przyzwyczajenia w kodzie mam z Basica, w ktorym programowanie wiadomo jak wygladalo, stad to ulozenie kodu takie "nastepujace po sobie".

Aha. Kod wyglada teraz tak: (duzo sie nie zmieniło :P )

[php]<?php
<?php
if(file_exist("c:/temp/sn_cookieA.sn"))
{
$plikA=fopen("c:/temp/sn_cookieA.sn", "r+");
$iloscA=fgets($plikA, "1");
fclose($plikA);
if($iloscA==0)
{
//WYSWIETL BANNER A i
echo 'BANNER A';
$plikAA=fopen("c:/temp/sn_cookieA.sn", "w");
fwrite($plikAA, "1");
fclose($plikAA);

$plikBB=fopen("c:/temp/sn_cookieA.sn", "w");
fwrite($plikBB, "0");
fclose($plikBB);
}
else
{
$plikB=fopen("c:/temp/sn_cookieB.sn", "r+");
$iloscB=fgets($plikB, "1");
fclose($plikA);
if($iloscB==0)
{
//WYSWIETL BANNER B i
echo 'BANNER B';

$plikAA=fopen("c:/temp/sn_cookieA.sn", "w");
fwrite($plikAA, "0");
fclose($plikAA);

$plikBB=fopen("c:/temp/sn_cookieA.sn", "w");
fwrite($plikBB, "1");
fclose($plikBB);
}
}
else
{
$plik_utworz=fopen("c:/temp/sn_cookieA.sn", "w");
$plik_utworz2=fopen("c:/temp/sn_cookieB.sn", "w");
echo 'Funkcja zostanie wyświetlona przy kolejnych odwiedzinach. Dziękujemy!';
fclose($plik_utworz);
fclose($plik_utworz2);
}
?>

?>[/php]

Re: [PHP][Problem] Błąd składni w dziwnym miejscu

: śr sty 25, 2006 12:04 pm
autor: Hawk
[php]<?php
if(file_exists("c:/temp/sn_cookieA.sn")) {
$plikA=fopen("c:/temp/sn_cookieA.sn", "r+");
$iloscA=fgets($plikA, "1");
fclose($plikA);
if($iloscA==0) {
//WYSWIETL BANNER A i
echo 'BANNER A';
$plikAA=fopen("c:/temp/sn_cookieA.sn", "w");
fwrite($plikAA, "1");
fclose($plikAA);

$plikBB=fopen("c:/temp/sn_cookieA.sn", "w");
fwrite($plikBB, "0");
fclose($plikBB);
} else {
$plikB=fopen("c:/temp/sn_cookieB.sn", "r+");
$iloscB=fgets($plikB, "1");
fclose($plikA);
}
if($iloscB==0) {
//WYSWIETL BANNER B i
echo 'BANNER B';
$plikAA=fopen("c:/temp/sn_cookieA.sn", "w");
fwrite($plikAA, "0");
fclose($plikAA);

$plikBB=fopen("c:/temp/sn_cookieA.sn", "w");
fwrite($plikBB, "1");
fclose($plikBB);
}
} else {
$plik_utworz=fopen("c:/temp/sn_cookieA.sn", "w");
$plik_utworz2=fopen("c:/temp/sn_cookieB.sn", "w");
echo 'Funkcja zostanie wyświetlona przy kolejnych odwiedzinach. Dziękujemy!';
fclose($plik_utworz);
fclose($plik_utworz2);
}
?>[/php]

Teraz juz dziala, a przynajmniej nie wyrzuca bledow skladni :). Miales jeszcze jeden blad na poczatku - nie ma funkcji file_exist, powinno byc file_exists. Co do operatorow rownosci - http://www.leon.w-wa.pl/texts/kurs/operatory.php.

Re: [PHP][Problem] Błąd składni w dziwnym miejscu

: śr sty 25, 2006 12:04 pm
autor: rafcio8405
Jest różnica między = a ==

Jeden znak równania oznacza przypisanie wartości, a dwa znaki równania oznaczają równość. Jest to częsty błąd :!:

Re: [PHP][Problem] Błąd składni w dziwnym miejscu

: śr sty 25, 2006 12:09 pm
autor: VieriX
Super. Ślicznie dziekuje. Dalej mecze sie sam. Jak bede mial problemy jeszcze jakies - napisze. Chyba mi nie odmowicie :lol:

Pozdrawiam
Vieri

Re: [PHP][Problem] Błąd składni w dziwnym miejscu

: śr sty 25, 2006 12:31 pm
autor: VieriX
Plik doprowadzilem do takiej postaci:

[php]
<?php
if(file_exists("c:/temp/sn_cookieA.sn")) {
$plikA=fopen("c:/temp/sn_cookieA.sn", "r+");
$iloscA=fgets($plikA, "1");
fclose($plikA);
if($iloscA==0) {
//WYSWIETL BANNER A i
echo 'BANNER A';
$plikAA=fopen("c:/temp/sn_cookieA.sn", "w");
fwrite($plikAA, "1");
fclose($plikAA);
$plikBB=fopen("c:/temp/sn_cookieB.sn", "w");
fwrite($plikBB, "0");
fclose($plikBB);
} else {
//WYSWIETL BANNER B i
echo 'BANNER B';
$plikAAA=fopen("c:/temp/sn_cookieA.sn", "w");
fwrite($plikAAA, "0");
fclose($plikAAA);
$plikBBB=fopen("c:/temp/sn_cookieA.sn", "w");
fwrite($plikBBB, "1");
fclose($plikBBB);
}
} else {
$plik_utworz=fopen("c:/temp/sn_cookieA.sn", "w");
$plik_utworz2=fopen("c:/temp/sn_cookieB.sn", "w");
echo 'Funkcja zostanie wyświetlona przy kolejnych odwiedzinach. Dziękujemy!';
fclose($plik_utworz);
fclose($plik_utworz2);
}
?>
[/php]

I taka zasada:
Otwierany jest plik sn_cookieA.sn. Jesli w pliku jest 0 wykonuje sie czesc kodu odpowiedzialna za wyswietlenie banneraA. Jesli jednak jest cos innego (w moim przypadku moze to byc tylko 1), to wykonuje sie czesc alternatywna (po else), odpowiedzialna za wyswietlenie sie banneraB. I teraz najciekawsze.

Po pierwszym wykonaniu kodu:

Tworza sie dwa pliki sn_cookieA.sn i sn_cookieB.sn. Czyli wszystko zgodnie z założeniami

Po drugim uruchomieniu wykonuje sie kod BanneraA i do plikow dopisywane sa wartosci (odpowiednio do sn_cookieA.sn wartosc 1 [czyli ten banner juz sie wyswietlil] oraz sn_cookieB.sn wartosc 0 [czyli teraz czas na banner B].
Wszystko w porzadku. Dziala wszystko zgodnie z zalozeniami.

I teraz najciekawsze
Po trzecim uruchomieniu (i kazdym nastepnym) wykonuje sie czesc BanneraA, mimo ze w pliku sn_cookieA.sn jest wartosc 1(!) i kod nie ma prawa sie wykonac!!!

Poradzcie bo wpadne w depresje :-D
Vieri

Re: [PHP][Problem] Błąd składni w dziwnym miejscu

: śr sty 25, 2006 12:48 pm
autor: viraptor
Nie sądzisz, że
[php]<?php
if(rand(0,1))
echo 'banner a';
else
echo 'banner b';
?>[/php]
Załatwia sprawę typowej rotacji 2 banerów? ;)
No i nie rozumiem po co piszsz do 2 plików 1/0 jak możesz do tego celu tylko 1 użyć...

Re: [PHP][Problem] Błąd składni w dziwnym miejscu

: śr sty 25, 2006 12:50 pm
autor: VieriX
Hahaha jakie smieszne :-D
Ja tu sie prezentuje z moim super ekstra kodem na 50 linijek a Ty mi takie cos wystawiasz z 4 ledwo. Tak serio to dzieki :wink:

Pozdrawiam serdecznie
Vieri