Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][html]Prośba o sprawdzenie
Forum PHP.pl > Forum > Przedszkole
obelix94
Skrypt służy do zapisywania oceny, obliczania średniej, sprawdzania użytkowników, pokazywania średniej. Prosze o sprawdzenie i oceny. PS: wykluczona jest baza danych

  1. <?php
  2.        //sprawdzenie ciasteczka
  3.        $wiersz = @ $_GET['wiersz'];
  4.         if ($_COOKIE['obecny'] == 'byl'))
  5.        {
  6.              $status = 'glosowales';
  7.          }
  8.        else
  9.        {
  10.                        setcookie("obecny","byl",time() + 60 * 60 * 24 * 30); // 60s razy 60 minut razy 24h razy 30 dni
  11.            //TRESC SKRYPTU
  12.            //ustawianie zmiennych
  13.            $plik_glosowan = 'zmienne/ilosc_glosowan'.$wiersz.'.txt';
  14.                 $plik_sredniej = 'zmienne/srednia'.$wiersz.'.txt';
  15.            $plik_wartosci = 'zmienne/suma_wartosci'.$wiersz.'.txt';
  16.            //dodawanie ilosci, zapisywanie
  17.            $ilosc_glosowan = file_get_contents($plik_glosowan);
  18.            $ilosc_glosowan = $ilosc_glosowan + 1;
  19.            file_put_contents($plik_glosowan, $ilosc_glosowan);
  20.  
  21.            //suma glosow
  22.            $wartosc = $_POST('wartosc');
  23.               $ilosc_wartosci = file_get_contents($plik_glosowan);
  24.            $ilosc_wartosci = $ilosc_glosow + $wartosc;
  25.            file_put_contents($plik_wartosci, $ilosc_wartosci);
  26.  
  27.            //liczenie sredniej
  28.               $ilosc_glosowan = file_get_contents($plik_sredniej);
  29.            $srednia = $ilos_wartosci / $ilosc_glosowan
  30.            file_put_contents($plik_sredniej, $srednia);
  31.        }
  32.  
  33.        if($status == 'glosowales'){
  34.            echo('<div class="secondaryContentBox"><h2>Oceń wiersz</h2><p><font color="red">GŁOSOWAŁEŚ!</font></p> ');
  35.            //ciag dalszy (drugi skrypt)
  36.                        echo('<div id="linia"><br></div>');
  37.            echo('<h2>Średnia ocen</h2><p>')
  38.            $srednia = file_get_contents($plik_sredniej);
  39.            echo($srednia.'</p>');
  40.        }
  41.        else{
  42.            echo('
  43.            <div class="secondaryContentBox">
  44.            <h2>Oceń wiersz</h2>
  45.            <p>');
  46.            echo('<form action="index.php?id=biblio1&lang=pl&wiersz=
  47.            echo($wiersz);
  48.            echo('" method="post"><p>Twoja ocena<br>');
  49.            echo('<input type="radio"  name="wartosc" value="6"  />6<br>
  50.            <input type="radio" name="wartosc" value="5" checked="checked" />5<br>
  51.            <input type="radio" name="wartosc" value="4"  />4<br>
  52.            <input type="radio" name="wartosc" value="3"  />3<br>
  53.            <input type="radio" name="wartosc" value="2"  />2<br>
  54.            <input type="radio" name="wartosc" value="1"  />1<br>
  55.            <input type="submit" style="width:10em; background-color:white; border: 2px solid green; " value="WY&#346;LIJ" name="ok" /></form>
  56.            </p>');
  57.  
  58.  
  59.            //ciag dalszy (drugi skrypt)
  60.                        echo('<div id="linia"><br></div>');
  61.            echo('<h2>&#346;rednia ocen</h2><p>')
  62.            $srednia = file_get_contents($plik_sredniej);
  63.            echo($srednia.'</p>');
  64.            
  65.        }
  66.  
  67.  
  68. ?>


Nie ponoszę odpowiedzialnosci za zniekształcenie w tabulacji oraz wygladzie skryptu.
wookieb
Dziecko.. Czy ty naprawde jesteś tak niedowartościowany, że musisz wrzucać do oceny pare linijek kodu?
Co mamy ci powiedzieć. "Wow ładną czcionkę dobrałeś? Choć tutaj to nie ma żadnego znaczenia...".

Jeżeli działa to działa. Ciesz się.
Poza tym jeżeli masz php5 to uzywaj file_put_contents. Po co się męczyć.
Kod i tak jest brzydki bo gdybyś wlaczyl raportowanie
Kod
error_reporting(E_ALL);
to miałbyś chociaż 1 błąd który widze odrazu. Po drugie nie wiem czy to forum czy ty ale nie ma odpowiednich wcięć.
obelix94
No właśnie nie działa. Ten jeden błąd to...

Czytałem, że nalezy dbać o wygląd i funkcjonalnosć do przeróbki. Mimo że to pierwszy kod który tego wymagał, zastosowałem się do porady sprzed roku. http://www.fotosik.pl/pokaz_obrazek/8a62d48843c09082.html. Odpowiedź: forum.
Kildyt
Cytat(obelix94 @ 11.12.2008, 18:55:53 ) *
Czytałem, że nalezy dbać o wygląd i funkcjonalnosć do przeróbki. Mimo że to pierwszy kod który tego wymagał, zastosowałem się do porady sprzed roku. http://www.fotosik.pl/pokaz_obrazek/8a62d48843c09082.html. Odpowiedź: forum.
Zamieszczony kod na screenie IMHO nie jest poprawny. Nie zagłębiałem się w tajne techniki tabulacji (jeżeli takie istnieją). Mam tylko prostą zasadę: coś jest w czymś to ma wcięcie w prawo - proste.

Wybacz, ale zamieszczony przez Ciebie kod nie jest zbyt ładny, a można to zauważyć już w pierwszej linijce kodu. Dbaj o kod i pamiętaj, że nie tworzysz go tylko "na teraz" a i "na jutro" i dla innych programistów.

Nie mieszaj kodu HTML z PHP! Ucz się na błędach (młodzieniec, który napisał tego posta nauczył się na błędzie biggrin.gif ). Tak zorganizuj sobie skrypt, żeby było jasno pokazane co to HTML, a co PHP. Oba języki mają różne przeznaczenie.

Echo to nie jest funkcja! Kurs, który czytałeś mógł zbyt przestarzały. Zaglądnij do dokumentacji PHP.

Znacznik font jest przestarzały!

Nie przestrzegasz tabulacji!

Życzę powodzenia! winksmiley.jpg

PS Staraj się przedstawiać jaśniej swoje sprawy na forum. Nie możesz oczekiwać, że za każdym razem będziemy sprawdzać, czy kod jest poprawny. Przeglądaj forum i zobacz jak wyglądają porządne skrypty.
obelix94
Cytat(Kildyt @ 11.12.2008, 20:00:12 ) *
Zamieszczony kod na screenie IMHO nie jest poprawny. Nie zagłębiałem się w tajne techniki tabulacji (jeżeli takie istnieją). Mam tylko prostą zasadę: coś jest w czymś to ma wcięcie w prawo - proste.
Wybacz, ale zamieszczony przez Ciebie kod nie jest zbyt ładny, a można to zauważyć już w pierwszej linijce kodu. Dbaj o kod i pamiętaj, że nie tworzysz go tylko "na teraz" a i "na jutro" i dla innych programistów.


Nie rozumiem. Mozecie mi onjaśnić wasze.... skróty myślowe. blinksmiley.gif
erix
Czytaj: inni się uczący mogą kiedyś natrafić na Twój listing z pierwszego posta i znowu będą zadawać pytania, na które była już odpowiedź...

~obelix94, taka dobra rada - więcej samodzielności, ściągnij jakieś warte uwagi skrypty PHP (np. źródła frameworków, popatrz, jak tam kod jest sformatowany, podzielony, jak zaplanowano logikę) i ucz się wg tego. Jak już kiedyś powiedziałem - nie wal z byle pierdołą na forum. Fakt, każdy kiedyś zaczynał, ale zważ na to, że niektórzy w ogóle nie mieli takiego luksusu jak Ty, aby zadawać takie pytania-błahostki. Więcej konsekwencji.
obelix94
Cytat(Kildyt @ 11.12.2008, 20:00:12 ) *
Zamieszczony kod na screenie IMHO nie jest poprawny.
Wybacz, ale zamieszczony przez Ciebie kod nie jest zbyt ładny,  (...)
Nie mieszaj kodu HTML z PHP! Ucz się na błędach ((..)). Tak zorganizuj sobie skrypt, żeby było jasno pokazane co to HTML, a co PHP.
Echo to nie jest funkcja! Kurs, który czytałeś mógł zbyt przestarzały. Zaglądnij do dokumentacji PHP.
Znacznik font jest przestarzały!
Nie przestrzegasz tabulacji!

Dlaczego nie jest ładny?
Jaki był twój błąd?
Zamiast echo to print_r; tak?
Zamiast font to p color
Uważam ze przestrzegam

Co do ciebie erix, dzieki za poradę, na pewno się do tego zastosuje. Pozdrawiam.

PS: strona dostępna jest pod, STRONA wtedy należy kliknąć wiersze (biblioteka -> wiersze tu. I się ukaże... nic. A powinien być tekst jak na stronie głównej. Po dodaniu tego skryptu, wcześniejsza zawartosć się nie wyswietla. Jak komuś pomoże: skrypt ładowny jest z index.php kodem:
  1. <?php
  2. $szare = @ $_GET['id'];
  3. if($szare=='biblio1'){
  4. @ include('specjalne/oceny.php');
  5. }
  6. else{
  7. @ include('glowne/aktualnosci.html');
  8. }
  9. ?>


Zaś główna strona (treść) za pomocą switch, w indexie.
erix
Cytat
I się ukaże... nic.

A czytałeś rozdział dotyczący obsługi plików? Bo widzę, że nie; np. do fwrite" title="Zobacz w manualu PHP" target="_manual podstawiasz jeden parametr zamiast dwóch...

Ogólnie, to wynajdujesz koło na nowo; męczysz się z zapisem/odczytem obsługując za każdym razem z osobna. A są metody file_get_contents" title="Zobacz w manualu PHP" target="_manual i file_put_contents" title="Zobacz w manualu PHP" target="_manual, które nie dość, że wygodniejsze, to nieraz wydajniejsze ze względu na wykorzystywanie mapowań pamięci. Ale do tego, to już przydałaby się lektura manuala, którego chyba nie znosisz. tongue.gif

Cytat
Zamiast font to p color

Zapomnij o font; to relikt przeszłości. Ucz się CSS.

Unikaj do tego stosowania małpiszonów przed funkcjami; masz eliminować błędy, a nie je ukrywać.
obelix94
Nieznosze bo jest po angielsku. Niby 5 z angola, a jak przychodzi co do czego...
Nie gadajcie ze jest po polsku, bo to co potrzebuje to wpisać pl.php.net czy php.net.pl to i tak niekiedy jest angielski.
Z tego co zrozumiałem z manuala (na dodatek pl) po angielsku, to to ze file_put_contents otwiera, "upuszcza" "zapisuje" zamyka. Z file_get_contents nic nie zrozumiałem, ale na logikę - pobiera dane.

int file_put_contents ( string $filename , mixed $data [, int $flags [, resource $context ]] )
filename: rozumie, data: ?, flags: rodzaj, tryb, context: ciąg do zapisania (chyba)
dobrze napisałem?
erix
Cytat
Nieznosze bo jest po angielsku

To daruj sobie programowanie i nie siadaj do komputera, bo 95% dokumentacji jest po angielsku. Tak nawiasem, jeśli przyszłoby Ci kiedyś zdawać ZCE, to po polsku jest tylko "dzień dobry" od pana, co Cię pilnuje, a reszta tylko i wyłącznie po angielsku/francusku/hiszpańsku. Nie znasz angielskiego, będziesz miał duży problem.

Cytat
file_put_contents otwiera, "upuszcza" "zapisuje" zamyka.

Po prostu zapis danych do pliku.

Cytat
file_get_contents nic nie zrozumiałem, ale na logikę - pobiera dane.

Tak

Cytat
filename: rozumiem, data: ?, flags: rodzaj, tryb, context: ciąg do zapisania (chyba)

data = dane.

Bierz się za angielski, bo będziesz zadawał masę niepotrzebnych pytań.
obelix94
Cytat(obelix94 @ 12.12.2008, 17:02:04 ) *
Nieznosze bo jest po angielsku. Niby 5 z angola, a jak przychodzi co do czego...


THX biggrin.gif
Jeszce context, skoro data to dane.
Mize
Człowieku, brak mi słów... wróć za rok, dwa i pochwal się czymś czego się nauczyłeś.
Nie wiem jak można być w drugiej klasie gimnazjum tak nierozgarniętym ludkiem...
Znajdź jeden swój topic z problemem, na który nie ma rozwiązania w pierwszych trzech wynikach z google'a albo w manualu. ;s

Myślę, że rok sam na sam z manualem, dobrze Ci zrobi.
obelix94
Takie osobiste pytanko: skąd wiesz, że jestem w drugiej gimnazjum?
Mize
OT: Tak wnioskuje po Twoim nicku, a jeśli masz więcej to się lepiej nie przyznawaj. ;o

Zeby nie bylo, ze sam offtopic to dodam, że lepiej spędzić nad kodem tydzień, niż pół godziny.
Bo czytelność i elastyczność kodu powinny być na równi rozwijane z funkcjonalnością.
obelix94
Poprawiłem swój kod. Myślę że bardziej się wam podoba. Niestety nie działa. Jak ustawiam error reporting e-all, też nic nie pokazuje. Błąd polega na tym, że nie zwraca wyników i zatrzymuje reszte skryptów znajdujacych się pod nim.
erix
  1. <?php
  2. if ($_COOKIE['obecny'] == 'byl'))
  3.       {
  4.             $status = 'glosowales';
  5.         }
  6.       else
  7.       {
  8. ?>

W klamrach też panują pewne reguły. Widziałem na niektórych screenach, że używasz czegoś w stylu PHPEditor. Ściągnij sobie Komodo Edit, będziesz widział, gdzie masz błąd parsera.

Myśl więcej, mniej gadaj.
obelix94
Dziekuje. Ten twój "styl na phpeditor" to najzwyklejszy notatnik + kolorowanie składni i odwracanie ś,ź,ę itp na "dziwne znaczki"


CZY MOŻE KTOŚ POMÓC? POWIEDZIEĆ CZEMU TO NIE DZIAŁA?

Doszedłem do wniosku, ze to w tej części kodu coś jest nie tak. Ale za chiny nie mogę się dopatrzeć co jest źle. e reporting nic nie daje.

  1. <?php
  2. if($status == 'glosowales'){
  3.            echo('<div class="secondaryContentBox"><h2>Oceń wiersz</h2><p><font color="red">GŁOSOWAŁEŚ!</font></p> ');
  4.            //ciag dalszy (drugi skrypt)
  5.                        echo('<div id="linia"><br></div>');
  6.            echo('<h2>Średnia ocen</h2><p>')
  7.            $srednia = file_get_contents($plik_sredniej);
  8.            echo($srednia.'</p>');
  9.        }
  10.        else{
  11.            echo('
  12.            <div class="secondaryContentBox">
  13.            <h2>Oceń wiersz</h2>
  14.            <p>');
  15.            echo('<form action="index.php?id=biblio1&lang=pl&wiersz=
  16.            echo($wiersz);
  17.            echo('" method="post"><p>Twoja ocena<br>');
  18.            echo('<input type="radio"  name="wartosc" value="6"  />6<br>
  19.            <input type="radio" name="wartosc" value="5" checked="checked" />5<br>
  20.            <input type="radio" name="wartosc" value="4"  />4<br>
  21.            <input type="radio" name="wartosc" value="3"  />3<br>
  22.            <input type="radio" name="wartosc" value="2"  />2<br>
  23.            <input type="radio" name="wartosc" value="1"  />1<br>
  24.            <input type="submit" style="width:10em; background-color:white; border: 2px solid green; " value="WY&#346;LIJ" name="ok" /></form>
  25.            </p>');
  26.  
  27.  
  28.            //ciag dalszy (drugi skrypt)
  29.                        echo('<div id="linia"><br></div>');
  30.            echo('<h2>&#346;rednia ocen</h2><p>')
  31.            $srednia = file_get_contents($plik_sredniej);
  32.            echo($srednia.'</p>');
  33.            
  34.        }
  35. ?>
Lion_87
Cytat
echo('<form action="index.php?id=biblio1&lang=pl&wiersz=


Linia 16 to taki jakis specjalny efekt ?
Pride
1.Tak, jak powyżej - dlaczego zamykasz echo w echu? 0o
2. Dlaczego robisz tak:
  1. <?php
  2. echo('Linia 1');
  3. echo('Linia 2');
  4.  
  5. //A nie po prostu tak:
  6.    Linia1
  7.    Linia2
  8.    Linia3
  9.    Linia4';
  10. ?>
Bez tych ( ) oraz zamykania każdej linijki w osobnym echo

3. Jeżeli nie rozumiesz co jest napisane w manualu to... Żegnamy Cię serdecznie na minimum najbliższy rok/dwa lata. worriedsmiley.gif Nie ma sensu, abyś bawił się w programowanie, jeżeli nie masz "możliwości umysłowych" do tego. Najczęściej, gdy ktoś nie wie jak wykonać "to coś", to podawany mu jest link do manual" title="Zobacz w manualu PHP" target="_manual z daną funkcją, która jest w stanie wykonać daną operację. Tak samo jak było w twoim przypadku.

Pozdrawiam.
Ociu
Crossing post. Zamykam.
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.