![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 267 Pomógł: 1 Dołączył: 10.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam. Napisałem skrypt, który generuje losową liczbę, a zadaniem użytkownika jest zgadnięcie właśnie tej liczby.
Pisałem to w PHP, jestem pewny że używając java script'u było by o wiele prościej, jednak chcę przetestować własne umiejętności. Proszę o analizę tego kodu i napisanie co można by tutaj poprawić, gdzie zrobiłem jakieś błędy.
|
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 580 Pomógł: 85 Dołączył: 25.03.2010 Skąd: Skrzyszów :) Ostrzeżenie: (0%) ![]() ![]() |
1) $cyfra_wygenerowana<$cyfra_usera - tu porównujesz dwa stringi, typuj na (int)$zmienna
2) ini_set('display_errors' , 'On'); error_reporting(E_ALL | E_STRICT); na początku 3) if (empty($cyfra_usera)) => if(isset($_POST['xxx'])) 4) $proba++; a gdzie jest deklaracja $proba = 0; ? 5) To można poprawić 6) setcookie ('proba', "$proba", time()+3600); "$proba" WTF? 7) Poczytaj sobie o DRY
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 267 Pomógł: 1 Dołączył: 10.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
1)Poprawiłem
$cyfra_wygenerowana=(int)$_COOKIE['losowa']; $cyfra_usera=(int)$_POST['cyfra']; Jednak mimo to mam błąd Undefined index: cyfra in c:\usr\krasnal\www\losowanie\index.php on line 18 3)if(isset($_POST['cyfra'])) Dostaje błędy Kod Notice: Undefined index: losowa in c:\usr\krasnal\www\losowanie\index.php on line 17 Notice: Undefined index: cyfra in c:\usr\krasnal\www\losowanie\index.php on line 18 Zgadłeś za 1 razem BRAWO! Lina 17 i 18
6)Cookie o nazwie proba przechowuje liczbe prób za którym razem user zgadł cyfrę. 7)Dry? to coś związane z instrukcja switch? ( Mam mało if więc nie użyłem switch'a) Ja jestem początkującym więc zdarzają mi się błędy, dziękuje za odpowiedź w temacie i tłumaczenie mi moich błędów. Ten post edytował xamrex 16.06.2010, 11:36:39 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Co do undefined to najpierw sprawdzaj czy cos jest (isset()) a dopiero potem się do tego dobieraj
ad6) chodziło o to , ze nie "$proba" a $proba. Po co ci te ciapki? Cytat 7)Dry? to coś związane z instrukcja switch? ( Mam mało if więc nie użyłem switch'a) http://lmgtfy.com/?q=dry? ps: zdajesz sobie sprawę, że przechowywanie tej wartosci w cookie ma tę "zaletę", ze trafię za kazdym razem?
Powód edycji: [nospor]:
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 267 Pomógł: 1 Dołączył: 10.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
myślałem ze dry to jakaś funkcja z php ;(
mój kod (ciągle z błędami)
Dostaje info Notice: Undefined variable: proba Przecież ja ustawiłem na $proba=0 jeśli nie ma cookies. Chyba ze to wstawilem w złym miejscu. Gdzie to mam dać? (oczywiście nie mogę dać na środek bo za każdym razem zamiast się zwiększać będzie przyjmować wartość 0) |
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Przecież ja ustawiłem na $proba=0 jeśli nie ma cookies. nom... a jesli jest cookies to nigdzie nie ustawiasz. Jak jest cookies to musisz te $proba pobrać z ciastka, nie?
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 267 Pomógł: 1 Dołączył: 10.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
no tak, lecz zend napisał
4) $proba++; a gdzie jest deklaracja $proba = 0; ? Czyli muszę na starcie stworzyć cookie proba z wartoscia 0? |
|
|
![]()
Post
#8
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Nie, cookie z proba przeciez ustawiasz przy kazdym $proba++. To jest ok.
To ze zrobiles $proba=0 tez jest ok. Ale nie zrobiles: $proba = $_COOKIE['proba'] gdy to ciacho juz jest. Teraz bez tego za kazdym razem proba bedzie wynosila 1 ![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 267 Pomógł: 1 Dołączył: 10.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
Proszę zobaczyć wiersz od 23-28 czy to jest poprawnie? Czy cały skrypt jest poprawny? (oprócz tego nagłówka bo z tym nie umiem sobie inaczej poradzić) |
|
|
![]()
Post
#10
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Powinno byc ok.
A co jesli ktoś będzie chciał na nowo zacząc zgadywac? Masz gdziesz czyszczenie tych ciastek? No i tego DRY nadal nie zastosowałes ![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 267 Pomógł: 1 Dołączył: 10.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
Cytat A co jesli ktoś będzie chciał na nowo zacząc zgadywac? Masz gdziesz czyszczenie tych ciastek?
czy jak '<form action="index.php" method="POST">CYFERKA: <input type=text name="cyfra"><input type=submit value="Wyślij"></form> przypisze zmiennej $formularz i będe to stosował będzie to DRY? Ten post edytował xamrex 16.06.2010, 13:00:47 |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 580 Pomógł: 85 Dołączył: 25.03.2010 Skąd: Skrzyszów :) Ostrzeżenie: (0%) ![]() ![]() |
DRY - pl. Nie Powtarzaj Się. Wwal cały kod z if'ów który się powtarza pod if'y i będzie ok, nic się nie będzie dublować
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 267 Pomógł: 1 Dołączył: 10.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
zaden kos sie nie powtarza.
<input type=text name="cyfra"><input type=submit value="Wyślij"></form> Muszę to mieć w if bo jeśli osoba wygra ot nie chcę mu pokazywać tego formularza (no bo co jesli nie chce grac?) |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 580 Pomógł: 85 Dołączył: 25.03.2010 Skąd: Skrzyszów :) Ostrzeżenie: (0%) ![]() ![]() |
No i tu się różnimy, bo jak dla mnie to się powtarza praktycznie *3
Ten post edytował zend 16.06.2010, 13:21:20 |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 267 Pomógł: 1 Dołączył: 10.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
Mniej więcej ten sposób byłby poprawny? |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 580 Pomógł: 85 Dołączył: 25.03.2010 Skąd: Skrzyszów :) Ostrzeżenie: (0%) ![]() ![]() |
Dalej powtarzasz ten sam kod
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 7.07.2025 - 12:14 |