Autor Zpráva
croux
Profil *
Ahoj, snažíms e vložit tento kód do mysql
<script type="text/javascript" src="http://www.jeroenwijering.com/embed/swfobject.js"></script>
  <div id="playeerr" style="margin-left:90px;">This text will be replaced</div>
  <script type="text/javascript">
  var so = new SWFObject('http://www.jeroenwijering.com/embed/player.swf','mpl','375' ,'300','9');
  so.addParam('allowscriptaccess','always');
  so.addParam('allowfullscreen','true');
  so.addParam('flashvars','file=http://www.youtube.com/v/Hqz9i4nPBBo&aut ostart=true');
  so.write('playeerr');
  </script>


bohužel se mi při výpisu vypíše
This text will be replaced
var so = new SWFObject('http://www.jeroenwijering.com/embed/player.swf','mpl','375' ,'300','9'); so.addParam('allowscriptaccess','always'); so.addParam('allowfullscreen','true'); so.addParam('flashvars','file=http://www.youtube.com/v/Hqz9i4nPBBo&aut ostart=true'); so.write('playeerr'); 

nevímte čím to může být myslíte že je to uvozovkami?
krteczek
Profil
pro ošetření vstupních dat do databáze použij vždy následující funkci:
<?php

function o($polozka)
	{
		# slouží k ošetření vstupních dat do databáze
		if((!is_numeric($polozka)))

			{
				# není to číslo, ošetříme
				$polozka =  "'" . (function_exists('mysql_real_escape_string') ? mysql_real_escape_string($polozka) : (function_exists('mysql_escape_string') ? mysql_escape_string($polozka) : addslashes($polozka)) ) . "'";

			}
		# je to číslo
		return $polozka;

	}

# volání funkce:
$text = o($_POST['text']);

?>

vyhneš se tím právě těmto problémům.
Pro použití je nutno být již připojen k databázi a mít nastaveno kódování pro spojení s databázi!
croux
Profil *
no zkusil sjemtu tvoji funkci, ale nějak mi nefunguje tady je celý kód i s mysql dotazem :)

function o($polozka)
	{
		# slouží k ošetření vstupních dat do databáze
		if((!is_numeric($polozka)))
			{
				# není to číslo, ošetříme
				$polozka =  "'" . (function_exists('mysql_real_escape_string') ? mysql_real_escape_string($polozka) : (function_exists('mysql_escape_string') ? mysql_escape_string($polozka) : addslashes($polozka)) ) . "'";
			}
		# je to číslo		
    return $polozka;
	}

  $id = $_POST['id'];
  $cz_text = o($_POST['cz_text']);
  $at_text = o($_POST['at_text']);
  
  $sql = mysql_query('UPDATE text SET cz_text="$cz_text", at_text="$at_text" WHERE id=".$id."') or die(mysql_error());
  echo '
    <div style="width:500px;text-align:center;"><br /><br />Text byl úspěšně upraven.<br /><br /><br />
    <a href="javascript: window.close();">Zavřít okno</a></div>
  ';


kde mám chybu? odešlu data do formuláře, data přijdou přes $_POST ale už se nedostanou přes tu funkci aby se mohli v db upravit
krteczek
Profil
přidej na začátek scriptu: error_reporting(E_ALL); a uvidíme co ti to vrátí
croux
Profil *
vrátilo mi to 6135
croux
Profil *
kde mámm tady chybu moc prosím :) spěchá to
šárinka
Profil
pordte pls stále to nemohu vyřešit
joe
Profil
$sql = mysql_query("UPDATE text SET cz_text='$cz_text', at_text='$at_text' WHERE id=" . $id) or die(mysql_error());
pmg
Profil
Dotaz je uzavřen v apostrofech, proměnné se proto nepřevedou. Funkce s výstižným názvem o uzavře řetězec do uvozovek automaticky. Zkus použít tento řádek:

$sql = mysql_query("UPDATE text SET cz_text=$cz_text, at_text=$at_text WHERE id=$id") or die(mysql_error());

Funkcí o prožeň všechny předávané hodnoty, jinak hrozí SQL injection. Nebo radši použij dibi a máš po problémech. Nespěchej, nevyplatí se to;-)
nightfish
Profil
pmg
chybí ti apostrofy kolem zjevně textových proměnných v dotazu, což je špatně...
takže spíš
$sql = mysql_query("UPDATE text SET cz_text='$cz_text', at_text='$at_text' WHERE id=$id") or die(mysql_error()); 

(za předpokladu, že sloupce cz_text a at_text jsou typu char, varchar, varbinary, *text a id je typu *int)
šárinka
Profil
nightfish
sloupce mám nastavený tak jak píšeš, ale píše mi to chybu
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'fdsfsdfsdfsdfsdfsdfsdf\r\n'' WHERE id=1' at line 1
pmg
Profil
nightfish
Ten příklad je vytržen z kontextu. Položky jsou uzavřeny do apostrofů už dříve (viz #3).

Ale doporučil bych spíš mrknout na tu knihovnu dibi. Velmi usnadní práci!

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: