
Redsnake pokouší php
Nesmějte se mi, nějak se začít musí a žádný učený z nebe nespadl
Jsem se teda rozhodl, že se jako trochu samovzdělám, aspoň se zabavím a tak.
Volba padla na php.
Nainstaloval jsem EasyPHP, JaFiho PSpad (díky za free prográmek), a našel si nějaké základní tutoriály.
EasyPHP jsem nikterak nekonfiguroval (Musí se?) a adresa mého localhostu je 127.0.0.1:8888/ ( proč je tam to 8888? Myslel jsem, že to bude jen 127.0.0.1 ale to nefunguje..
Pro začátek jsem se rozhodl zkusit jen naprosto triviální věc. Chtěl jsem pomocí php vypsat dvě věty a připravil jsem si takový kód:
<?
echo "Tenhle text bych chtěl zobrazit";
?>
<?
echo "Chtěl bych, ale nejde mi to a nevím proč..";
?>
Soubor jsem uložil jako index.php do adresáře ProgramFiles/EasyPHP/www
Na localhostu ho zobrazím pod adresou: index.php
Nicméně se mi načte vše jen jako čistá, bílá stránka. Když kliknu pravým myšem a dám zobrazit zdrojový kód, tak se mi pochopitelně můj hustokrutědémonsky geniální skript ukáže.
Kde dělám chybu?
Díky za rady a smích si nechte od cesty
Tož to zkus takto :
Super, funguje to!
EDIT: vím, že to ve znění <?php je kompatibilní se standartem XML, ale proč to nezkousne i ten klasický zápis <?
V php.ini je nastavenie short_open_tag, ktoré keď nastavíš na On, tak to bude fungovať:
Po zmene treba reštartovať Apache.
Tak já si na to asi radši zvyknu, budu to psát jako <?php
každopádně dík.
Na zvýraznění syntaxí už jsem přišel..
Môj osobný názor je, že autori PHP zbytočne hádžu vývojárom polená pod nohy, keď nastavujú alebo odporúčajú ako predvolenú hodnotu short_open_tag na Off. Našťastie vždy sa to dá nastaviť na normálnu hodnotu.
Tomu nerozumím, ale asi pro mě bude jako začátečníka lepší si zvyknout na to <?php abych to pak nikde nemusel řešit, že dělám chybu.)
mám kód
háže to chybu na sedmé řádku. Kde dělám chybu?Díky
Chybí tečka. A na osmém by mělo být $a++ .
toho a++; jsem si všiml,ale ani při zápisu
to nefunguje
Takhle ? :
ne, je to vypsání čísel od jedné do desítí pomocí fce while a pak jejich druhá mocnina pomoci
EDIT: i když to Tvoje je to samé, ale já chci vědět proč to nefunguje, ne zkoušet to jinak:)
php neumím, tak jen tak koukám, ale tohle se mi nějak nezdá:
co tam mají co dělat ty dvojité uvozovky?
Edit: tak už jste na to přišli...
nemají, byl to úklep. Jsem si naivně testoval, jestli třeba php umí doplnit do řady stejně jako čísla i dny a z textového řetězce mi tam zbyla jedna úvozovka:)
BTW: tohle nesnáším na Javě a jak vidím i PHP se tím trápí - prostě člověk hodinu kouká, proč něco nefunguje a ona je to nějaká pitomá syntaktická chyba (překlep) kterou ale "normální" překladače bez problémů odhalí a identifikují. Něco takového by Pascal nepustil...
on to výše vysvětloval Hynajs.
Jde o to, že php si myslí, že znaky mezi touhle a další uvozovkou jsou řetězec, proto by to ani nemohl odhalit jako chybu..
To by musela být docela asi už AI :)
No nic, vypadá to, že jsem pobral fci while, jdu si to zkoušet..
Zas je to zábavný docela..
pokouším se udělat si svůj kousek kódu.
chtěl jsem aby to číslo 256 dělilo dvěma dokud se nebude výsledek rovnat dvoum.
Nefunguje ani při zadání proměnné $b = 2
tedy:
Mohl by někdo prosím osvětlit?
EDIT: že už to pak nebude druhá mocnina vím, jen jsem tam nechal původní kód tabulky:)
Krom toho, že u while mám přiřazení místo porovnání, chybí mi tam rovnítko tedy
nicméně ani teď to nefunguje.
EDIT:
takhle to asi má být
Ale teď už to nevypisuje nic. Ani chybu, ani výsledky
EDIT:
takhle:
Dopracoval jsem se k tomuto:
nicméně, stejně to funguje podivně a špatně..
Projde to takhle se závorkama :
Můj zákazník - můj pán , ale vkládat operace do echa považuji za obzvlášť nechutnou perverzi
.
Krása, funguje to:) Ale nerozumím tomu proč:)
Kažodpádně, operace vkládám do echa protože to zatím jinak neumím. Jen si tím procvičuju věci, které jsem si už prošel. Proto přes echo
EDIT: Děkuju:)
Problém byl v tom, že v původním kódu se do proměnné $a nenačetl pouze podíl $a/$b, ale tento podíl spojený s řetězcem "</TD></TR>\n" . Viz zdrojový kód stránky.
Čili např. při $a=256 a $b=2 se $a rovnalo řetězci "128</TD></TR>\n"
Ve vzduchu visí ještě otázka, proč dělení v následujícím kroku proběhlo ( vlastně v našich očích správně) a operace nehavarovala. Inu, zadáme-li do operace dělení ( a dalších aritmetických ) řetězec např. "12Světlana", pro aritmetickou operaci bude vyhodnocen jako 12.
začínám se v tom ztrácet, ale děkuju za vysvětlení:)
Don't give up :
watch
To já se nevzdám, dík za podporu:)
Už mám v hlavě obří projekt, ale to tak za deset let tímhle tempem