Autor Zpráva
Martaneek
Profil *
Dobrý den,
mám (pro Vás) zřejmě triviální dotaz, ale já jsem z toho vedle, jak tak jedle :-)
Při ukládání dat do DB přes formulář, kde je mám nasazené TinyMCE (nevím, zda to souvisí), posílám data přes $_POST. Když do textarey zadám text s uvozovkami (např. "AHOJ"), data se mi nepošlou, prostě to uvozovky ignoruje. Zkoušel jsem apostrof - ten projde. Např. text: Ahoj, jsem tu zcela "nový" $_POST ořízne na: Ahoj, jsem tu zcela.

Provedl jsem provizorní opatření kdy uvozovky nahrahuji apostrofem
Str_Replace('"', "'", $_POST["poznamka"]);


ale to je zřejmě jako drbání se levou nohou za pravým uchem. Jak-z-toho-ven? :-)
panther
Profil
Martaneek:
a zpracování formuláře, tedy ukládání, máš kde? Ukaž.
Martaneek
Profil *
insert.php:
<?php 

  $posilam=true;
  if ($_POST["odeslano"]) 
  {
    if (strlen($_POST["poznamka"])==0)
    {
      echo "<h2>Poznámka musí mít nějaký obsah!</h2>";
    }
    else
    {
      $posilam=false;
      ?>
<h3>Náhled údajů před vložením</h3>
 <table cellpadding="2" cellspacing="2" border="0" align="center" width="500px" style="background: none; text-indent:4px; text-align:left;">
     <tr><td style="text-align:right; width:40%;">Poznámka:</td><th><?php echo $_POST["poznamkas"];?></th></tr> // zde ještě vidím uvozovky....
</table>

<form method="post" action="<?php echo $back;?>"> // $back = JS history goback -1
<input type="hidden" name="poznamka" value="<?php echo $_POST["poznamka"];?>">
<input type="Submit" name="zpet" value="&lt;&lt; Zpět">
</form>

<form method="post" action="?p=modify">
<input type="hidden" name="poznamka" value="<?php echo $_POST["poznamka"];?>">
<input type="Submit" name="Uložit" value="Uložit &gt;&gt;">
</form>
<?php
    }
}
if ($posilam): ?>
 <h3>Vložení poznámky</h3>
<form method="post" style="width:700px" action="<?php echo $_SERVER["PHP_SELF"]."?p=insert"; ?>">
Poznámka:<br>
<textarea id="popis" rows="3" name="poznamkas" cols="60"><?php echo $_POST["poznamka"];?></textarea><br>
<input type="hidden" name="odeslano" value="true">
<input type="Submit" name="odeslat" value="&gt;&gt; Náhled">
</form>
<?php endif;?>


modify.php:
<?php
echo $_POST["poznamka"]; // a tady už uvozovky neprojdou
$vysledek=mysql_query("insert into notes (poznamka) values ('".$_POST["poznamka"]."')", $GLOBALS["link"]); // zapis do DB

if (!$vysledek) { //pokud je zapis neuspesny
header("Location: http://".$_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"]."/databaze/index.php?p=unsuccess&page=karta_stavby&id=".$id_stavby."&type=ids");
} else { //pokud je zapis uspesny
header("Location: http://".$_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"]."/databaze/index.php?p=unsuccess&page=karta_stavby&id=".$id_stavby."&type=ids");
}
?>
Martaneek
Profil *
Takže abych si odpověděl. Stačilo k echu poznámky dát htmlspecialchars, předtím jsem různé pokusy chybně dával k "Náheldu před odesláním", nikoli ke spávnému formuláři. Chjo....
<form method="post" action="?p=modify">
<input type="hidden" name="poznamka" value="<?php echo htmlspecialchars($_POST["poznamka"]);?>">
<input type="Submit" name="Uložit" value="Uložit &gt;&gt;">
</form>

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: