www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

HTML PHP Težave

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Linux, unix razprave
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
vilko
Član
Član



Pridružen-a: Pet 13 Feb 2004 10:26
Prispevkov: 3351
Aktiv.: 15.03
Kraj: Dragomer

PrispevekObjavljeno: Pon Jun 14, 2010 7:24 am    Naslov sporočila:  HTML PHP Težave Odgovori s citatom

Pozdrav,

Na stara leta se učim stvari, ki jih mladci poznate. Učim se pisati HTML strani in PHP programe, ki so vključeni. Učim se s pomočjo sledeče internetne strani:
http://www.w3schools.com/default.asp
Tam najdem marsikaj, pravzaprav veliko, vsega pa ne.

Sledečih problemov še nisem razvozlal:

Vhodna polja. Prav za prav sem razumel vzorca in testiral in delata:


Koda:
<html>
<body>

<form action="welcome.php" method="post">
Name: <input type="text" name="fname" />
Age: <input type="text" name="age" />
<input type="submit" />
</form>

</body>
</html>


kjer obstaja še ena datoteka z imenom welcome.php ki prestreže odgovore vtipkane v polja:

Koda:
<html>
<body>

Welcome <?php echo $_POST["fname"]; ?>!<br />
You are <?php echo $_POST["age"]; ?> years old.

</body>
</html>


Vprašanje št. 1: ALi je res potrebno zapustiti prvotni php program in odgovore prestreči v drugem? To je nerodno, vse kar je že narejeno v prvem programu, je izgubljeno in je potrebno sestaviti ponovno. Verjetno se da iz drugega programa (welcome.php) skočiti nazaj v prvi program in tam nadaljevati delo, kaj ne?
O tem internetna šola ne govori nič.

Drugi, a manjši problem, so šumniki. Nikakor jih ne morem pričarati na html strani.

Pomoč bo dobrodošla. Hvala.

A, ja, in še to:

Ali se da uporabniku v vhodno polje že v naprej pripraviti odgovor, ki bo verjetno pravi, tako da ga uporabniku v vhodno polje ni potrebno vtipkati, ampak samo klikne na 'Submit' ?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
chaos
Član
Član



Pridružen-a: Sob 16 Sep 2006 22:12
Prispevkov: 1063
Aktiv.: 4.96
Kraj: Zagorje ob Savi

PrispevekObjavljeno: Pon Jun 14, 2010 8:13 am    Naslov sporočila:  Re: HTML PHP Težave Odgovori s citatom

vilko je napisal/a:

Vprašanje št. 1: ALi je res potrebno zapustiti prvotni php program in odgovore prestreči v drugem? To je nerodno, vse kar je že narejeno v prvem programu, je izgubljeno in je potrebno sestaviti ponovno. Verjetno se da iz drugega programa (welcome.php) skočiti nazaj v prvi program in tam nadaljevati delo, kaj ne?
O tem internetna šola ne govori nič.


HTTP je nepovezan protokol, brez stanja (stateless). Tukaj se težko govori o programu. Za 'stanje' moraš skrbeti sam, s prenašanjem tega med različnimi stranmi oz. z uporabo piškotkov.
Da ti odgovorim: ni potrebno zapustiti prvotne strani, lahko narediš POST na isto stran (z akcijo forme action="ime_prve_strani.php"), s tem da moraš v php-ju nekako zaznati, da se je to zgodilo. To se ponavadi naredi tako, da na začetku preverjaš stanje neke spremenljivke, in če ta ni nastavljena, pokažeš prvi del (formo), če pa je, pa tisti drugi del (Welcome ....). To pa lahko narediš tako, da v formo dodaš skrito polje (type="hidden"), ki jo nastaviš na željeno vrednost in potem v php-ju preverjaš.

Citiram:

Drugi, a manjši problem, so šumniki. Nikakor jih ne morem pričarati na html strani.


Šumnike pričaraš z uporabo meta headerja, ki ga dodaš med <head> in </head>, npr. za windows slovenski charset:

Koda:

<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">


Citiram:

Ali se da uporabniku v vhodno polje že v naprej pripraviti odgovor, ki bo verjetno pravi, tako da ga uporabniku v vhodno polje ni potrebno vtipkati, ampak samo klikne na 'Submit' ?


Seveda se da, namreč tako, da vnosnemu polju dodaš parameter value="vrednost".

Če želiš, ti pa lahko pripravim tudi en primer, kako se vse zgoraj opisano naredi.


LP!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
vilko
Član
Član



Pridružen-a: Pet 13 Feb 2004 10:26
Prispevkov: 3351
Aktiv.: 15.03
Kraj: Dragomer

PrispevekObjavljeno: Pon Jun 14, 2010 8:26 am    Naslov sporočila:   Odgovori s citatom

Hvala Chaos, (Madona, kakšno ime si si izbral!)
Sedaj moram k zdravniku, bom probal, čim se vrnem.
Odgovori so jasni in kot temu rečem 'pijejo vodo'.
Hvala
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
vilko
Član
Član



Pridružen-a: Pet 13 Feb 2004 10:26
Prispevkov: 3351
Aktiv.: 15.03
Kraj: Dragomer

PrispevekObjavljeno: Pon Jun 14, 2010 9:54 pm    Naslov sporočila:   Odgovori s citatom

Napredujem. Počasi. Po majhnih korakih.

Šumniki mi še vedno ne gredo, a to verjetno zaradi tega, ker delam remote na unix-u z nano editorjem. A to je za enktrat postranski problem.

Prišel sem do tega, da moram preverjati, ali je nek literal numeričen ali ne.

Če je v nizu $s = "3446"
kako preverim, da so v njem same številke. Gledam po velikem seznamu string funkcij, a nikakor ne najdem primerne.
In kako pridem do posameznega znaka v nizu? Samo s funkcijo substr() ?

Hvala Chaos za pomoč, in prosim nadaljuj!
pozdrav
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
chaos
Član
Član



Pridružen-a: Sob 16 Sep 2006 22:12
Prispevkov: 1063
Aktiv.: 4.96
Kraj: Zagorje ob Savi

PrispevekObjavljeno: Pon Jun 14, 2010 11:47 pm    Naslov sporočila:   Odgovori s citatom

vilko je napisal/a:

Prišel sem do tega, da moram preverjati, ali je nek literal numeričen ali ne.

Če je v nizu $s = "3446"
kako preverim, da so v njem same številke. Gledam po velikem seznamu string funkcij, a nikakor ne najdem primerne.


Npr. z is_numeric() funkcijo.

Citiram:

In kako pridem do posameznega znaka v nizu? Samo s funkcijo substr() ?


Lahko s substr(), lahko pa kot v c-ju:
Koda:

$niz="tralala";
$crka=$niz[0];



LP!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
woops
Član
Član



Pridružen-a: Sre 03 Mar 2010 23:23
Prispevkov: 19
Aktiv.: 0.11
Kraj: Ljubljana

PrispevekObjavljeno: Tor Jun 15, 2010 12:39 am    Naslov sporočila:   Odgovori s citatom

vilko je napisal/a:

Šumniki mi še vedno ne gredo, a to verjetno zaradi tega, ker delam remote na unix-u z nano editorjem. A to je za enktrat postranski problem.


Unix uporabla unicode nabode znakov - UTF-8 (8-bit UCS/Unicode Transformation Format). In seveda ker uporabljaš nano editor se tekst datoteke tudi kodira v takem formatu. Probaj zamenjati
Koda:
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">

z
Koda:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"; charset="utf-8" />
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran MSN Messenger - naslov
vilko
Član
Član



Pridružen-a: Pet 13 Feb 2004 10:26
Prispevkov: 3351
Aktiv.: 15.03
Kraj: Dragomer

PrispevekObjavljeno: Tor Jun 15, 2010 7:23 am    Naslov sporočila:   Odgovori s citatom

Krasen forum! Takoj se najde kdo, ki zna in je pripravljen svoje znanje deliti! Hvala.


isnumeric() je funkcija, ki je moja šola ne pozna, prilagam seznam funkcij za dokaz, da je ni med njimi. Sem jo pa našel na guglu, potem seveda, ko sem dobil informacijo, kaj naj iščem. Sedaj se bom bolj naslonil na na guglu najden php manual.
Hvala Chaos!

Šumniki ostajajo problem.

Ko udarim na tipkovnici Š se v oknu, kjer programiram (črno okno) pojavijo trije znaki, pač tisto kar je v oknu vidno pred 'UMNIKI' in na ekranu brkljalnika se pa pojavijo neke drobne informacije (FFFD)

Se zahvaljujem in priporočam-



snap3.jpg
 Opis:
 Velikost datoteke:  4.66 KB
 Pogledana:  7090 krat

snap3.jpg



snap1.jpg
 Opis:
 Velikost datoteke:  69.22 KB
 Pogledana:  17 krat

snap1.jpg



snap2.jpg
 Opis:

Download
 Ime datoteke:  snap2.jpg
 Velikost datoteke:  17.44 KB
 Downloadano:  4 krat

Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
chaos
Član
Član



Pridružen-a: Sob 16 Sep 2006 22:12
Prispevkov: 1063
Aktiv.: 4.96
Kraj: Zagorje ob Savi

PrispevekObjavljeno: Tor Jun 15, 2010 7:49 am    Naslov sporočila:   Odgovori s citatom

vilko je napisal/a:

Šumniki ostajajo problem.

Ko udarim na tipkovnici Š se v oknu, kjer programiram (črno okno) pojavijo trije znaki, pač tisto kar je v oknu vidno pred 'UMNIKI' in na ekranu brkljalnika se pa pojavijo neke drobne informacije (FFFD)


Kako si povezan na strežnik - kateri program? Verjetno ni nastavljena prava kodna tabela znakov, in ti linux zaradi tega pač ne prepozna šumnikov.

Lahko pa začasno namesto šumnikov uporabljaš HTML entitete, ki se pišejo takole:

"&scaron;" - š
"&ccaron;" - č
"&Ccaron;" - Č
ipd.

Te entitete napišeš v html namesto naših znakov, brez narekovajev. Tukaj so pa še ostale.

LP!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
vilko
Član
Član



Pridružen-a: Pet 13 Feb 2004 10:26
Prispevkov: 3351
Aktiv.: 15.03
Kraj: Dragomer

PrispevekObjavljeno: Tor Jun 15, 2010 8:28 am    Naslov sporočila:   Odgovori s citatom

V glavnem se prijavim na unix s pomočjo programa putty.exe
in tam sestavljam datoteke z editorjem nano.

Imam pa tudi možnost, da sestavljam datoteke na PC-u pod Windowsi, in potem prenesem datoteke na unix z WinSCP.exe
Ta druga varianta pride v poštev, kadar je potrebno sestaviti kaj večjega v editorju notepad++, sicer je prezamudna

malenkosti hitreje popravim kar na unixu z nano

Če bo treba namesto šumnikov tipkati nize, ki jih priporočaš, se jim bom verjetno odrekel in zadovoljil s sičniki.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
vilko
Član
Član



Pridružen-a: Pet 13 Feb 2004 10:26
Prispevkov: 3351
Aktiv.: 15.03
Kraj: Dragomer

PrispevekObjavljeno: Tor Jun 15, 2010 9:07 am    Naslov sporočila:   Odgovori s citatom

Še vedno iščem pravo funkcijo za ugotavljanje, ali so v nizu same številke.

Is_integer() daje pozitiven rezultat, tudi če je v nizu recimo 1e4 kar je verjetno 10 na 4 potenco.

potem sem našel is_integer, a ta testira ali je spremenljivka integer, ne pa ali je vsegina niza integer in mi da odgovor pri

$s = "23";
negativen odgovor. Da pozitiven odgovor le pri $s = 23


Gotovo nisem prvi, ki potrebuje testiranje niza na same številke. Če ni take funkcije bom moraš štrikat test za vsak bajt niza posebej, kar se mi zdi odkrivanje tople vode.

Chaos, me lahko usmeriš?

Hvala
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
mucek4
Član
Član



Pridružen-a: Sob 18 Jun 2005 20:52
Prispevkov: 2952
Aktiv.: 13.24
Kraj: Tržič - Mesto med gorami

PrispevekObjavljeno: Tor Jun 15, 2010 9:13 am    Naslov sporočila:   Odgovori s citatom

Putty ima default charset ISO-8859-2:1999 (Latin-2, East Europe) in ga moraš ročno prestaviti na UTF-8. Če ti strežnik teče na UTF-8 Smile
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
chaos
Član
Član



Pridružen-a: Sob 16 Sep 2006 22:12
Prispevkov: 1063
Aktiv.: 4.96
Kraj: Zagorje ob Savi

PrispevekObjavljeno: Tor Jun 15, 2010 10:43 am    Naslov sporočila:   Odgovori s citatom

vilko je napisal/a:
Še vedno iščem pravo funkcijo za ugotavljanje, ali so v nizu same številke.

Is_integer() daje pozitiven rezultat, tudi če je v nizu recimo 1e4 kar je verjetno 10 na 4 potenco.

potem sem našel is_integer, a ta testira ali je spremenljivka integer, ne pa ali je vsegina niza integer in mi da odgovor pri

$s = "23";
negativen odgovor. Da pozitiven odgovor le pri $s = 23


Aha, to bi lahko že prej napisal, da hočeš samo integerje. Tukaj imaš pa klasičen problem php-ja, ki je, kot mnogo drugih skriptnih jezikov, weakly dynamically typed (sploh ne vem, kako bi to prevedel v slovenščino Confused šibko dinamično tipiziranje spremenljivk?).

Če hočeš preverjati tudi nize, potem moraš spremenljivko najprej typecast-at v integer ((int)$spremenljivka), kar zna biti pa malo nevarno početje.

Je pa uporabna funkcija, ki je navedena v PHP manualu med komentarji:
Koda:

function int($int){
  // First check if it's a numeric value as either a string or number
  if(is_numeric($int) === TRUE){
    // It's a number, but it has to be an integer
    if((int)$int == $int){
      return TRUE;
    // It's a number, but not an integer, so we fail
    } else{
      return FALSE;
    }
  // Not a number
  }else{
      return FALSE;
  }
}


Ta funkcija ti pa zagotovo pove, ali je integer ali karkoli drugega.

Aja, še to: 1e3 je drugače čisto veljaven zapis integerja.


LP!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
vilko
Član
Član



Pridružen-a: Pet 13 Feb 2004 10:26
Prispevkov: 3351
Aktiv.: 15.03
Kraj: Dragomer

PrispevekObjavljeno: Tor Jun 15, 2010 11:55 am    Naslov sporočila:   Odgovori s citatom

Hvala, zelo si se potrudil. Ta funkcija deluje, čeprav ne razumem kako. V sami funkciji kličeš istotaisto funkcijo. Si to funkcijo na hitro seštrikal zame, ali je le ta že na razpolago v kaki biblioteki funkcij? Kakorkoli, dela in to je glavno. Hvala.

Naknadno še enkrat prebral, da je nekje v php manualu. Kje? Verjetno je še veliko koristnih funkcij že napisanih in na razpolago.

Če bi jaz se lotil štrikanja take funkcije bi v zanki od 0 to len(str) testiral vsak bajt spremenljivke, ki bi moral biti =>"0" in <="9"


Še nekaj ne razumem, izven le tega:
nova vrstica je enkrat \n enkrat pa <br />

Kot začarano vedno uporabim napačno.

Tale unix je smotan.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
chaos
Član
Član



Pridružen-a: Sob 16 Sep 2006 22:12
Prispevkov: 1063
Aktiv.: 4.96
Kraj: Zagorje ob Savi

PrispevekObjavljeno: Tor Jun 15, 2010 12:53 pm    Naslov sporočila:   Odgovori s citatom

vilko je napisal/a:
Ta funkcija deluje, čeprav ne razumem kako. V sami funkciji kličeš istotaisto funkcijo. Si to funkcijo na hitro seštrikal zame, ali je le ta že na razpolago v kaki biblioteki funkcij?

Naknadno še enkrat prebral, da je nekje v php manualu. Kje? Verjetno je še veliko koristnih funkcij že napisanih in na razpolago.

PHP manual imaš na netu, za to funkcijo specifično pa tukaj. Čimprej se ga navadi uporabljati! Pod opisom funkcije imaš še opombe, kjer se najde veliko koristnega.

Drugače se v tej funkciji ne kliče taista funkcija še enkrat. Verjetno misliš na vrstico z if((int)$int == $int){, kjer je uporabljen typecast - (int)$spremenljivka, kot sem napisal že v prejšnjem postu.

Citiram:

Še nekaj ne razumem, izven le tega:
nova vrstica je enkrat \n enkrat pa <br />

Kot začarano vedno uporabim napačno.

Kar se vrstic tiče, je tako, da HTML newline (\n) preprosto ignorira. Newline potrebuješ samo za pisanje tekstovnih datotek, da pač kurzor premakne v novo vrstico (samo na unix-u, windows uporabljajo kombinacijo newline - carriage return: \r\n). Ko pa hočeš novo vrstico v HTML-ju, pa uporabiš <br />.

Za HTML je ves 'bel prostor' - whitespace - eno in isto, ni važno koliko presledkov in praznih vrstic je med dvema besedama, ko se bo stran prikazala, bo med njima en presledek prostora. Če hočeš več presledkov, moraš uporabiti entiteto &nbsp; (non-breakable space).

Citiram:
Tale unix je smotan.

Ne, smotani so windowsi, ki te ne naučijo takšnih osnovnih stvari. Wink


LP!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
mucek4
Član
Član



Pridružen-a: Sob 18 Jun 2005 20:52
Prispevkov: 2952
Aktiv.: 13.24
Kraj: Tržič - Mesto med gorami

PrispevekObjavljeno: Tor Jun 15, 2010 12:57 pm    Naslov sporočila:   Odgovori s citatom

vilko je napisal/a:
Še nekaj ne razumem, izven le tega:
nova vrstica je enkrat \n enkrat pa <br />

Kot začarano vedno uporabim napačno.

Tale unix je smotan.


Nova vrstica na Linux/Unix sistemih je \n, na Widnows sistemin \c\n in na Mac sistemih \c
HTML kot jezik pa vse nove vrstice ignorira in če v HTMLju želiš prikazati novo vrstico potrebuješ <br />

Edit: prepozen... amapk
chaos je napisal/a:
Citiram:
Tale unix je smotan.

Ne, smotani so windowsi, ki te ne naučijo takšnih osnovnih stvari. Wink

Dober komentar!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Linux, unix razprave Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 75 dni


Powered by phpBB © 2001, 2005 phpBB Group