podmínka if kde je chyba?

zdravím mám formulář a u jedné textarei mám:

<TEXTAREA id=\"vzkaz\" name=\"vzkaz\" cols=\"41\" rows=\"4\">
if (empty($_POST["citovat"])) {echo "aaaa";}
else{echo "AAAA";}
</TEXTAREA>

a $_POST["citovat"] se naplní v jinem formuláři který je pod tímto formulářem a posílá to pomocí POST:

echo "<form name=\"citovat\" method=\"POST\">";
<input type=\"image\" name=\"citovat\" value=\"".$zaznam["id"]."\" src=\"../image/citovat.gif\">

pokud si vypíšu jinde $_POST["citovat"] vypíše správnou hodnotu id

ael v podmínce to jaksi nebere
a co vám to teda vypisuje? Nic? Co vám vypíše v některé větvi die(var_dump(empty($_POST["citovat"]))) ?
no napíše:

Parse error: syntax error, unexpected '"', expecting T_STRING or T_VARIABLE or T_NUM_STRING in D:\Program Files\VertrigoServ\www\link\kecarna.php on line 32

tam je ale :

if (empty($_POST["citovat"])) {echo "aaaa";}

a osobně tam chybu nevidím. a jinde mi stejný kod funguje v pohode
<TEXTAREA id=\"vzkaz\" name=\"vzkaz\" cols=\"41\" rows=\"4\">
if (empty($_POST["citovat"])) {echo "aaaa";}
else{echo "AAAA";}
</TEXTAREA>

tohle nechápu - má to být html nebo php? Nechybí tam náhodou znaky <? a ?> nebo příkazy echo pokud to celé je php?
No tak opraveno a funguje ale jenom v FF(IE mi to nebere) nemohlo by to býti tím že mám formulář a vněm více inputů se stejným name? ale vždy s jinou hodnotou.

koukněte na kecárnu na mojich stránkách a uvidíte co mám namysli.

pokud kliknete na citovat odešle se na tuto stránku ID které vytáhne z databáze vzkaz a vloží ho do <textarey>

podmínka je psáne výše
Taky může být chyba na řádku 31
řádek 31 (ted 147)
<td rowspan=\"3\"><TEXTAREA id=\"vzkaz\" name=\"vzkaz\" cols=\"55\" rows=\"4\">";

řádek 32(ted 148)
if (empty($_POST["citovat"])) {echo "Váš příspěvek";}

else{
$vysledek=mysql_query("SELECT * FROM kniha where id='".$_POST["citovat"]."'");
while ($zaznam=MySQL_Fetch_Array($vysledek))
echo "[blockquote][b]".$zaznam["jmeno"].":[/b][br]".$zaznam["vzkaz"]."[/blockquote]";
}
echo "</TEXTAREA></td>


a $_post["citovat"] se bere právě po kliknutí na "(citovat)"

který je plněn dle výsledku databáze a vypadá takto (jen část)

echo "<form name=\"citovat\" method=\"POST\">";

<div align=\"right\">
<input type=\"image\" name=\"citovat\" value=\"".$zaznam["id"]."\" src=\"../image/citovat.gif\"></div>

echo "</form>";

a IE mi to právě nebere (prý ani konquektor bo jak se to píše)
na stránce je pak tedy více inputu se jmenem name=citovat ale jiným value

jak by se to dalo vyřešit?
Neměl by ten řádek 31 vypadat spíš takto?:
echo "<td rowspan=\"3\"><TEXTAREA id=\"vzkaz\" name=\"vzkaz\" cols=\"55\" rows=\"4\">";
Jinak mi to totiž nedává smysl.
<?
echo "<td rowspan=\"3\"><TEXTAREA id=\"vzkaz\" name=\"vzkaz\" cols=\"55\" rows=\"4\">";

if (empty($_POST["citovat"])) {echo "Váš příspěvek";}

else{
$vysledek=mysql_query("SELECT * FROM kniha where id='".$_POST["citovat"]."'");
while ($zaznam=MySQL_Fetch_Array($vysledek))
echo "[blockquote][b]".$zaznam["jmeno"].":[/b][br]".$zaznam["vzkaz"]."[/blockquote]";
}

echo "</TEXTAREA></td>";
echo "<form method=\"POST\">";
echo" <div align=\"right\">";
echo"<input name=\"citovat\" type=\"hidden\" value=\"".$zaznam['id']."\">";
echo"<input type=\"image\" src=\"../image/citovat.gif\"></div>";

echo "</form>";

?>
I když teď na to koukam, že těžko to může něco vypsat z databáze když podmínku že id má hodnotu citovat.
where id='".$_POST["citovat"]."' nebo máš v tabulce pod id ty texty?
2Radek:

ne já si načtu řádek s volaným id a zobrazím pouze jmeno a vzkaz.

Problem NENÍ že to nic nevypisuje. vypisuje to v pohodě ale jen ve FF to funguje IE nebere vůbec tu podmínku if:

echo "<td rowspan=\"3\"><TEXTAREA id=\"vzkaz\" name=\"vzkaz\" cols=\"55\" rows=\"4\">";

if (empty($_POST["citovat"])) {echo "Váš příspěvek";}

else{
$vysledek=mysql_query("SELECT * FROM kniha where id='".$_POST["citovat"]."'");
while ($zaznam=MySQL_Fetch_Array($vysledek))
echo "[blockquote][b]".$zaznam["jmeno"].":[/b][br]".$zaznam["vzkaz"]."[/blockquote]";
}

echo "</TEXTAREA></td>";

a místo toho vypisuje jen pořád :

Váš příspěvek

koukni nato a uvidíš sám (jedná se o kecárnu)
Chyba je v tom že proměnná $_POST['citovat'] je pořád prázdná, tím pádem if (empty($_POST["citovat"]) je pravdivá.

Funkce empty() je pravdivá, jestliže proměnná v závorce nebyla vytvořena, má nulovou nebo prázdnou hodnotu.
Důvod toho je v tomto.

Tlačítko s obrázkem - type = "image"

Toto tlačítko slouží k odeslání formuláře podobně jako tlačítko submit. Tlačítko má podobu obrázku, jehož URL zadáme pomocí atributu src. Zarovnávání obrázku s okolím můžeme ovlivnit atributem align, který má stejný význam jako u elementu img pro vkládání obrázku. Můžeme použít i další atributy běžné u obrázků. Tlačítko s obrázkem funguje podobně jako klikací mapa, s ostatními daty formuláře jsou odeslány i informace o místě, kde došlo ke kliknutí. Místo kliknutí je odesláno ve dvou položkách udávajících souřadnice x a y. Tyto složky jsou ve skriptu přístupné v proměnných, jejichž jméno odpovídá obsahu atributu name doplněnému o _x resp. _y .
dobře tyto připomínky beru ale jen mi vysvětlete proč to FF bere a IE ne. vím že IE je "divnej"

čím to tedy napravit pokud chci vytvořit to co mám namysli tak aby to fungovalo?
A <input type=submit ....> bych nerad použil protože by to nevypadalo "hezky"
něco jako zde kde ale to reagovat "necituje"
<?
include"./const.php";
echo "<td rowspan=\"3\"><TEXTAREA id=\"vzkaz\" name=\"vzkaz\" cols=\"55\" rows=\"4\">";

if (empty($_GET["id"])) {echo "Váš příspěvek";}

else{

$vysledek=mysql_query("SELECT * FROM kniha where id='".$_GET['id']."'");
while ($zaznam=MySQL_Fetch_Array($vysledek))
echo "[blockquote][b]".$zaznam["jmeno"].":[/b][br]".$zaznam["vzkaz"]."[/blockquote]";
}

echo "</TEXTAREA></td>";
echo"</tr>";
echo"</table><br />\n";

$query = "SELECT * FROM kniha ";
$result = mysql_query ($query)
or die ("Query failed");


while ($line = mysql_fetch_array($result)) {
echo"<table width=\"550\">";
echo"<tr>";
echo"<td>$line[text]<br />";

echo "<div align=\"right\"><a href=\"ppp.php?id=".$line['id']."\">CITOVAT</a></div>";
echo"</td>";
echo"</tr>";
}

echo "</table>";

?>
Nj to mě ne napadlo ;-) a i by to šlo