Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem 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 :-D

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
Tož to zkus takto : <?php echo "Tenhle text bych chtěl zobrazit"; ?> <?php echo "Chtěl bych, ale n…
hynajs 19.01.2011 21:44
hynajs
Super, funguje to! EDIT: vím, že to ve znění <?php je kompatibilní se standartem XML, ale proč to ne…
Redsnake 19.01.2011 21:46
Redsnake
V php.ini je nastavenie short_open_tag, ktoré keď nastavíš na On, tak to bude fungovať: short_open_…
los 19.01.2011 22:32
los
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ž j…
Redsnake 19.01.2011 22:34
Redsnake
Môj osobný názor je, že autori PHP zbytočne hádžu vývojárom polená pod nohy, keď nastavujú alebo odp…
los 19.01.2011 22:42
los
Tomu nerozumím, ale asi pro mě bude jako začátečníka lepší si zvyknout na to <?php abych to pak nikd…
Redsnake 19.01.2011 22:44
Redsnake
mám kód <TABLE> <TR><TD>Číslo</TD><TD>Druhá mocnina</TD></TR> <?php $a = 1; while ($a<="10) { echo…
Redsnake 20.01.2011 15:45
Redsnake
Chybí tečka. A na osmém by mělo být $a++ . echo "<TR><TD>".$a."</TD><TD>".$a*$a."</TD></TR>\n"; $a…
hynajs 20.01.2011 15:50
hynajs
toho a++; jsem si všiml,ale ani při zápisu echo "<TR><TD>".$a."</TD><TD>".$a*$a."</TD></TR>\n"; to…
Redsnake 20.01.2011 15:52
Redsnake
Takhle ? : $ctverec=$a*$a ; echo "<TR><TD>".$a."</TD><TD>".$ctverec."</TD></TR>\n";…
hynajs 20.01.2011 15:55
hynajs
ne, je to vypsání čísel od jedné do desítí pomocí fce while a pak jejich druhá mocnina pomoci $a*$…
Redsnake 20.01.2011 15:57
Redsnake
php neumím, tak jen tak koukám, ale tohle se mi nějak nezdá: while ($a<="10) co tam mají co dělat…
JoDiK 20.01.2011 16:18
JoDiK
nemají, byl to úklep. Jsem si naivně testoval, jestli třeba php umí doplnit do řady stejně jako čísl…
Redsnake 20.01.2011 16:19
Redsnake
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 n… nový
JoDiK 20.01.2011 16:24
JoDiK
on to výše vysvětloval Hynajs. Jde o to, že php si myslí, že znaky mezi touhle a další uvozovkou jso… nový
Redsnake 20.01.2011 16:30
Redsnake
pokouším se udělat si svůj kousek kódu. <TABLE> <table border="2" cellpadding="5" cellspacing="4">… nový
Redsnake 20.01.2011 16:53
Redsnake
Krom toho, že u while mám přiřazení místo porovnání, chybí mi tam rovnítko tedy while ($a == 2) ni… nový
Redsnake 20.01.2011 17:12
Redsnake
Dopracoval jsem se k tomuto: <TABLE> <table border="2" cellpadding="5" cellspacing="4"> <TR><TD>Čís… nový
Redsnake 20.01.2011 17:48
Redsnake
Projde to takhle se závorkama : echo "<TR><TD>".$a."</TD><TD>".($a=$a/$b)."</TD></TR>\n"; Můj zák… nový
hynajs 20.01.2011 18:50
hynajs
Krása, funguje to:) Ale nerozumím tomu proč:) Kažodpádně, operace vkládám do echa protože to zatím j… nový
Redsnake 20.01.2011 22:25
Redsnake
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… nový
hynajs 21.01.2011 10:50
hynajs
začínám se v tom ztrácet, ale děkuju za vysvětlení:) nový
Redsnake 21.01.2011 11:02
Redsnake
Don't give up : watch nový
hynajs 21.01.2011 11:07
hynajs
To já se nevzdám, dík za podporu:) Už mám v hlavě obří projekt, ale to tak za deset let tímhle tempe… poslední
Redsnake 21.01.2011 11:34
Redsnake
Java se tím rozhodně netrápí. Navíc to není problém jazyka, ale vývojového prostředí. Programovat se… nový
MaSo 20.01.2011 18:54
MaSo

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.

<TABLE>
<table border="2" cellpadding="5" cellspacing="4">
<TR><TD>Číslo</TD><TD>Druhá mocnina</TD></TR>
<?php
$a =256;
while ($a=2)
{
    echo "<TR><TD>".$a."</TD><TD>".$a./2"</TD></TR>\n";
    }
?>
</TABLE>

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:

<TABLE>
<table border="2" cellpadding="5" cellspacing="4">
<TR><TD>Číslo</TD><TD>Druhá mocnina</TD></TR>
<?php
$a =256;
while ($a=2)
{
    echo "<TR><TD>".$a."</TD><TD>".$a*/2"</TD></TR>\n";
    }
?>
</TABLE>

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

while ($a == 2)

nicméně ani teď to nefunguje.

EDIT:
takhle to asi má být

<?php
$a = 256;
$b = 2;
while ($a==2)
{
    echo "<TR><TD>".$a."</TD><TD>".$a/$b."</TD></TR>\n";
  }
?>

Ale teď už to nevypisuje nic. Ani chybu, ani výsledky

EDIT:
takhle:

while ($a!=2)

Dopracoval jsem se k tomuto:

<TABLE>
<table border="2" cellpadding="5" cellspacing="4">
<TR><TD>Číslo</TD><TD>Druhá mocnina</TD></TR>
<?php
$a = 256;
$b = 2;
while ($a!=2)
{
    echo "<TR><TD>".$a."</TD><TD>".$a=$a/$b."</TD></TR>\n";
  }
?>
</TABLE>

nicméně, stejně to funguje podivně a špatně..

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.

Zpět do poradny Odpovědět na původní otázku Nahoru