Autor | Zpráva | ||
---|---|---|---|
jtfcobra Profil |
#1 · Zasláno: 2. 4. 2018, 20:22:34
Ahoj nelze ukladat z
<script type="text/javascript" src="ckeditor/ckeditor.js"></script>
Chyba: Data too long for column 'obsah_cz' at row 1 Formular <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> <p> <input name="zkratka" type="hidden" id="zkratka" value="<?php echo $zkr; ?>"> <input name="jazyk" type="hidden" id="jazyk" value="<?php echo $_GET['jazyk']; ?>"> <textarea name="text" id="text"><?php echo $soubor; ?></textarea> <script> CKEDITOR.replace( 'text' ); </script> </p> <p> <input name="nadpis" type="text" id="nadpis" value="<?php echo $soubornazev; ?>"> </p> <p> <input type="submit" value="Ulozit zmeny" name="submit"> </p> </form> <?php $con = @mysql_connect($hostname_test,$username_test,$password_test); $database = mysql_select_db($database_test); if(isset($_POST['submit'])) { $file = mysql_real_escape_string($_POST['text']); $postnazev=mysql_real_escape_string($_POST['nadpis']); $postzkratka= $_POST['zkratka']; mysql_query("SET NAMES 'utf8_general_ci'"); if ($_POST['jazyk']=='cz'){ $query ="update stranky set obsah_cz='$file' , nazev_cz='$postnazev' where zkratka='$postzkratka'";}; if ($_POST['jazyk']=='en'){ $query ="update stranky set obsah_en='$file' , nazev_en='$postnazev' where zkratka='$postzkratka'";}; if ($_POST['jazyk']=='de'){ $query ="update stranky set obsah_de='$file' , nazev_de='$postnazev' where zkratka='$postzkratka'";}; $result = mysql_query($query,$con); if(!$result) { echo 'Není uloženo</br>'; echo die("Chyba: ".mysql_error());; } else { echo 'Uspesne ulozeno'; header("Location: stranky.php"); die(); } } ?> DROP TABLE IF EXISTS `hotelweb`.`stranky`; CREATE TABLE `hotelweb`.`stranky` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `nazev_cz` text CHARACTER SET latin1, `obsah_cz` varchar(800) CHARACTER SET latin1 DEFAULT NULL, `nazev_en` text CHARACTER SET latin1, `obsah_en` varchar(800) CHARACTER SET latin1 DEFAULT NULL, `nazev_de` text COLLATE utf8_czech_ci, `obsah_de` varchar(800) COLLATE utf8_czech_ci DEFAULT NULL, `zkratka` text COLLATE utf8_czech_ci, `internipopis` text COLLATE utf8_czech_ci, `stranka` text COLLATE utf8_czech_ci, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci; |
||
pcmanik Profil |
#2 · Zasláno: 2. 4. 2018, 21:09:06
jtfcobra:
A otázka? Chybová hláška hovorí jasne text ktorý sa snažíš uložiť je väčší ako maximálny možný. |
||
Keeehi Profil |
#3 · Zasláno: 2. 4. 2018, 21:11:35
Očividně se snažíš zapsat více jak 800 znaků do sloupce obsah_cz. Stačí zvětšit jeho limit. Nezapomeň, že WYSIWYG editory generují html, takže znaků co je potřeba uložit je více než v editoru vidíš.
Kódování sloupců je podivné, zřejmě jsi tomu nevěnoval při vytváření tabulky pozornost. Podívej se na to. Máš tam SQL injection zranitelnost |
||
jtfcobra Profil |
#4 · Zasláno: 2. 4. 2018, 21:27:38
Super děkuji pomohlo to
Jak osetrim SQL injection |
||
pcmanik Profil |
jtfcobra:
google sa dnes pokazil? a len tak mimochodom mysql_ funkcie už v PHP 7 niesu, takže to vyvýjaš projekt pre PHP 5.5+ (kde ti musí dávať hlášky o deprecated) v roku 2018? |
||
Keeehi Profil |
jtfcobra:
„Jak osetrim SQL injection“ Podívej se na rozdíl mezi řádky 7 a 8. A pro příště použij nějakou knihovnu, která na to bude myslet za tebe. To abys na to nemohl zapomenout. |
||
Kajman Profil |
#7 · Zasláno: 3. 4. 2018, 12:21:30
jtfcobra:
Navíc pozor na to, že znaková sada latin1 nepodporuje všechna písmena z češtiny. A naopak názvy v němčině není vhodné řadit dle českých pravidel. |
||
Časová prodleva: 6 let
|
0