Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

problem sa potvrdom forme

[es] :: PHP :: PHP za početnike :: problem sa potvrdom forme

[ Pregleda: 1792 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Nebojsa Marinkov
Zrenjanin

Član broj: 243992
Poruke: 40
*.dynamic.sbb.rs.



+1 Profil

icon problem sa potvrdom forme30.12.2009. u 19:30 - pre 173 meseci
Kao prvo, izvinjavam se što postavljam tako početničko pitanje na ovakvom forumu, ali strašne stvari se dešavaju.

Dakle imam html sa posve jednostavnom formom koja izgleda ovako:
Code:
<form action="sracunaj.php" method="post">
Dan: <input type="text" name="day" />&nbsp
Mesec: <input type="text" name="mouth"/>&nbsp
Godina: <input type="text" name="year" /><br /><br />

<input type="submit" value="dodaj"/>
</form>


i imam php fajl sracunaj.php čiji kod ispisuje string koji kaže koliko je tačno dana,meseci i godina ostalo do unetog datuma, ili ispisuje odgovarajucu poruku o grešci ukoliko su ulazni podaci ne odgovarajući. Evo sadržaja sracunaj.php fajla:

Code:
<html>
<body>

<?php
//funkcija koja vraca broj dana u mesecu:
    function brDana($mes)

    function ostaloDo ($dayD,$mouthD,$yearD)
            
        //promenljive:
    $day=$_POST['day'];
    $mouth=$_POST['mouth'];
    $year=$_POST['year'];
    echo ostaloDo($day,$mouth,$year);
?>

</body>
</html>


Implementacije funkcija nisam ovde kopirao zato što nisu bitne. Kada kao parametre ukucam konkretne vrednosti i testiram samo ovaj php file sve radi lepo kako treba. E sad, ako ukucam neke brojeve u gore navadenu formu i kliknem submit, kao odgovor dobijem pola izvornog koda odštampanog u browseru. To je počelo da mi se dešava drugog dana kada sam hteo da nastavim da razvijam ovu smejuriju od programa.
Posle puno nerviranja skontao sam da on jednostavno kada prvi put naidje na operator 'veće' tj '>', on to skonta kao kraj PHP skripte i nastavi da štampa ostatak.

Iako jesam početnik, daću sebi slobodu da kažem da takvo ponašanje nema nikakvog smisla. Zaista ne znam šta da uradim u vezi toga kada to nije neka logička ili sintaksna greška već besmislena pobrljavija.

Inače, koristim WAMP server za izvršavanje php-a. Ako neko slučajno zna šta je po sredi bio bih baš zahvalan da mi pojasni. Ako mislite da je potrebno, postaviću i implementacije funkcija.
Moja teorija je da ovih dana zračim negativnom energijom, pa mi zato računar povremeno brljavi, ali diskusija o tome više leži nekom drugom forumu.

Pozdrav svima i SREĆNA NOVA GODINA!!
 
Odgovor na temu

dakipro
Dalibor Jovic
Web Developer
Bergen, Norway

Moderator
Član broj: 31848
Poruke: 1792
91.148.90.*

Sajt: norway.dakipro.com


+190 Profil

icon Re: problem sa potvrdom forme30.12.2009. u 20:33 - pre 173 meseci
mozda si slucajno/greskom izmenio php closing tagove u php.ini (ili u apache konfiguraciji, ne secam se gde je to bese), pa umesto ?> on sad reaguje na >
Daj mozda i primer recimo gde tacno puca na znak > mozda ima nesto ispred pa se to desava
 
Odgovor na temu

Nebojsa Marinkov
Zrenjanin

Član broj: 243992
Poruke: 40
*.dynamic.sbb.rs.



+1 Profil

icon Re: problem sa potvrdom forme30.12.2009. u 22:16 - pre 173 meseci
Ok, pregledao sam php.ini fajlove (postoji isti ini i u konfiguraciji za Apache i za Php) i deluje da je sve u redu, a i ja nikad
nisam ništa dirao u podešavanjima WAMP-a. Sada sam probao da uključim 'short open tag', i to ništa ne menja.
Evo ostaviću dole kompletan kod pa ako je neko voljan neka pogleda, ili bar probajte da li kod vas radi. Možda je kod mene
nešto šesto loše podešeno.
Skripta se zavrsava u ovom redu:
if (date("y")>$yearD) {$izlaz= $prosao_datum_poruka; $greska=1;}
tako da stampa sve što se nalazi sa druge strane znaka veće i to izgleda ovako:

Code:
$yearD) {$izlaz= $prosao_datum_poruka; $greska=1;} if(date("y")>=$yearD && date("m")>$mouthD) {$izlaz= $prosao_datum_poruka; $greska=2;} if (date("y")>=$yearD && date("m")>=$mouthD && date("d")>$dayD) {$izlaz=$prosao_datum_poruka; $greska=3;} if (date("d")==$dayD && date("m")==$mouthD && date("y")==$yearD) {$izlaz="Uneli ste danasnji datum!"; $greska=4;} //provera ispravnosti ulaza: if ($yearD%4!=0 && $dayD>brDana($mouthD)){$izlaz= "GRESKA: uneli ste nemoguc datum!"; $greska=6;} if ($yearD%4==0 && $dayD>brDana($mouthD)+1){$izlaz= "GRESKA: uneli ste nemoguc datum!"; $greska=6;} //proracun preostalih meseci: if ($dayD>date("d")) { if ($yearD==date("y")) $ostalo_meseci=$mouthD-date("m"); if ($yearD>date("y")) $ostalo_meseci=12-date("m")+$mouthD; } else { if ($yearD==date("y")) $ostalo_meseci=$mouthD-date("m")-1; if ($yearD>date("y")) $ostalo_meseci=12-date("m")-1+$mouthD; } //Proracun preostalih dana: if ($dayD>date("d")) $ostalo_dana=$dayD-date("d"); else $ostalo_dana=(brDana(date("m"))-date("d"))+$dayD; if ($ostalo_dana==31) {$ostalo_dana=0; $ostalo_meseci++;} //Proracun preostalih godina: if ($yearD>date("y")) $ostalo_godina=$yearD-1-date("y"); if ($ostalo_meseci==12) {$ostalo_meseci=0; $ostalo_godina++;} if (!$greska){ if($ostalo_dana==1 && $ostalo_godina==0 && $ostalo_meseci==0) $izlaz="Dogadjaj je sutra!"; else if ($ostalo_dana==2 && $ostalo_godina==0 && $ostalo_meseci==0) $izlaz="Dogadjaj je prekosutra!"; else{ $izlaz="ostalo je: "; if ($ostalo_dana) $izlaz.=$ostalo_dana." dana "; if ($ostalo_meseci)$izlaz.= $ostalo_meseci." meseci "; if ($ostalo_godina) $izlaz.= " i ".$ostalo_godina." godina "; $izlaz.= "do ne odredjenog dogadjaja!
"; } } return $izlaz; } //promenljive: $day=$_POST['day']; $mouth=$_POST['mouth']; $year=$_POST['year']; echo ostaloDo($day,$mouth,$year); ?> 


Napominjem, to se dešava samo kada pozovem ovaj php iz forme, dok fajl sam po sebi radi dobro.

[Ovu poruku je menjao Nebojsa Marinkov dana 30.12.2009. u 23:52 GMT+1]

[Ovu poruku je menjao Nebojsa Marinkov dana 30.12.2009. u 23:55 GMT+1]
Prikačeni fajlovi
 
Odgovor na temu

grozda

Član broj: 738
Poruke: 510
93.87.181.*



+6 Profil

icon Re: problem sa potvrdom forme02.01.2010. u 12:14 - pre 173 meseci
Ne znam da li formu pozivas kao:
Code:
file:///C:/wamp/www/forma.html


u tom slucaju rezultat je:

Citat:
$yearD) {$izlaz= $prosao_datum_poruka; $greska=1;} if (date("y")>=$yearD && date("m")>$mouthD) {$izlaz= $prosao_datum_poruka; $greska=2;} if (date("y")>=$yearD && date("m")>=$mouthD && date("d")>$dayD) {$izlaz=$prosao_datum_poruka; $greska=3;} if (date("d")==$dayD && date("m")==$mouthD && date("y")==$yearD) {$izlaz="Uneli ste danasnji datum!"; $greska=4;} //provera ispravnosti ulaza: if ($yearD%4!=0 && $dayD>brDana($mouthD)){$izlaz= "GRESKA: uneli ste nemoguc datum!"; $greska=6;} if ($yearD%4==0 && $dayD>brDana($mouthD)+1){$izlaz= "GRESKA: uneli ste nemoguc datum!"; $greska=6;} //proracun preostalih meseci: if ($dayD>date("d")) { if ($yearD==date("y")) $ostalo_meseci=$mouthD-date("m"); if ($yearD>date("y")) $ostalo_meseci=12-date("m")+$mouthD; } else { if ($yearD==date("y")) $ostalo_meseci=$mouthD-date("m")-1; if ($yearD>date("y")) $ostalo_meseci=12-date("m")-1+$mouthD; } //Proracun preostalih dana: if ($dayD>date("d")) $ostalo_dana=$dayD-date("d"); else $ostalo_dana=(brDana(date("m"))-date("d"))+$dayD; if ($ostalo_dana==31) {$ostalo_dana=0; $ostalo_meseci++;} //Proracun preostalih godina: if ($yearD>date("y")) $ostalo_godina=$yearD-1-date("y"); if ($ostalo_meseci==12) {$ostalo_meseci=0; $ostalo_godina++;} if (!$greska){ if($ostalo_dana==1 && $ostalo_godina==0 && $ostalo_meseci==0) $izlaz="Dogadjaj je sutra!"; else if ($ostalo_dana==2 && $ostalo_godina==0 && $ostalo_meseci==0) $izlaz="Dogadjaj je prekosutra!"; else{ $izlaz="ostalo je: "; if ($ostalo_dana) $izlaz.=$ostalo_dana." dana "; if ($ostalo_meseci)$izlaz.= $ostalo_meseci." meseci "; if ($ostalo_godina) $izlaz.= " i ".$ostalo_godina." godina "; $izlaz.= "do ne odredjenog dogadjaja!
"; } } return $izlaz; } //promenljive: $day=$_POST['day']; $mouth=$_POST['mouth']; $year=$_POST['year']; echo ostaloDo($day,$mouth,$year); ?>


Ako fajl testiras na localhost-u onda formu pozovi sa:

http://localhost/forma.html

ili u html tagu umesto:

Code:
<form action="sracunaj.php" method="post">


upisi

Code:
<form action="http://localhost/sracunaj.php" method="post">


ili adresu servera sa kog pozivas .php


Mada meni ne izlaze dobri rezultati :)
Ako upisem 1.1.2010 izbaci mi:
ostalo je: 30 dana 11 meseci i 1999 godina do ne odredjenog dogadjaja!

[Ovu poruku je menjao grozda dana 02.01.2010. u 13:43 GMT+1]
(~ ~)( o o )(~ o)
-(_)---(_)---(_)-

Prikačeni fajlovi
 
Odgovor na temu

Nebojsa Marinkov
Zrenjanin

Član broj: 243992
Poruke: 40
*.dynamic.sbb.rs.



+1 Profil

icon Re: problem sa potvrdom forme02.01.2010. u 16:53 - pre 173 meseci
HA, rešeno!

Grozdo, hvala ti puno, sada vidim da je problem bio prilično jednostavan, samo ja se toga ne bih setio ni za 100 godina.
Inače, skripta radi skoro pa kako treba samo još nisam obradio ulaz za godine. Problem je što funkcija date("y") ne vraća broj 2010 već 10, tako da kada uneseš broj datum 1.1.2010 on jednostavno sračuna koliko je ostalo do prvog Januara 202010-e godine. To je sledeći korak za rešiti i neće biti nikakvih poteškoča oko toga. U ovoj fazi test ulaz treba da bude 10 umesto 2010 ili 11 ili 12 itd.

Još jednom, hvala na pomoći.
 
Odgovor na temu

Man-Wolf
Mihailo Joksimovic
Beograd

Član broj: 17016
Poruke: 873
*.dynamic.sbb.rs.



+13 Profil

icon Re: problem sa potvrdom forme02.01.2010. u 17:38 - pre 173 meseci
Taj problem mozes da resis sa:

Code:


date("Y");



Elem, zar ti nije bilo lakse da skines neku gotovu f-ju, umesto da pises svoju ? :-)
 
Odgovor na temu

Nebojsa Marinkov
Zrenjanin

Član broj: 243992
Poruke: 40
*.dynamic.sbb.rs.



+1 Profil

icon Re: problem sa potvrdom forme02.01.2010. u 17:52 - pre 173 meseci
Pa jeste, ali ceo smisao svega ovoga za mene je učenje jezika PHP tako da sve radim sam samo da bih sebe istrenirao. Inace pisem u notepad++, bez fensi editora. Kontem možda će ovo i da preraste u neki diplomski rad, samo ima tu puno da se radi, ali polako.
 
Odgovor na temu

Man-Wolf
Mihailo Joksimovic
Beograd

Član broj: 17016
Poruke: 873
*.dynamic.sbb.rs.



+13 Profil

icon Re: problem sa potvrdom forme02.01.2010. u 23:03 - pre 173 meseci
Aha, ok onda :-) Srecno ! ;)
 
Odgovor na temu

grozda

Član broj: 738
Poruke: 510
*.dynamic.sbb.rs.



+6 Profil

icon Re: problem sa potvrdom forme03.01.2010. u 01:15 - pre 173 meseci
Ovo i jeste forum za pocetnike :)

I ja imam slicne probleme i resio sam ih ovde zahvaljujuci ljudima koji stvarno nesto znaju.
Ako si ovo sam pisao svaka cast, samo napred ...

(~ ~)( o o )(~ o)
-(_)---(_)---(_)-

 
Odgovor na temu

[es] :: PHP :: PHP za početnike :: problem sa potvrdom forme

[ Pregleda: 1792 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.