Nefungující zápis do databáze z Wysiwygu – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Nefungující zápis do databáze z Wysiwygu – PHP – Fórum – Programujte.comNefungující zápis do databáze z Wysiwygu – PHP – Fórum – Programujte.com

 

Viktor Beránek
~ Anonymní uživatel
1 příspěvek
4. 6. 2013   #1
-
0
-

Zdravím mám takový problém. Mám udělaný projekt ve kterém se v administraci vytvářejí podstránky. Je tam potřeba Wysiwyg editor. Jenomže někdy se to do DB jeho obsah zapíše někdy ne(ve většině ne). Všechny přípojení atd. mám v pořádku všechny výpisy a propojení funguje. Jediné co mi nefunguje je ten zápis, zkoušel jsem už asi 4 editory 2 databáze, 2 hostingy a nikde se to nechce zapsat. Napadlo mě zda to není apostrofy. Díval jsem se ještě do db a informace o tabulce kde jsou podstránky se vypisuje, že je v ní navíc 3 Kb. Nemáte s tím někdo zkušenosti ? 

Zde je kód 

<? 
include "db.php";
if(isset($_POST['upravit']))  {

$text = $_POST["text"];
$text2 = Trim ("$text");
 mysql_query("UPDATE `podstranky` SET  `text` =  $text2 WHERE  `id` =  '$id' LIMIT 1 ;");
  echo "Upraveno"; 
     } ?>

<h3>Editace podstránky <?echo $id;?> </h3>
	<form method="post" action="">				
		<textarea id="redactor" name="text">
<?    
    $vypis = mysql_query("select * from podstranky where id = '$id'");
while ($polozka = mysql_fetch_array($vypis)){
echo  "".$polozka["text"]."";  
}
?> 	</textarea>
  <input type="submit" value="Odeslat" name="upravit">
  </form>

Předem díky za odpověď :-)

Nahlásit jako SPAM
IP: 84.42.225.–
Markaos0
Návštěvník
4. 6. 2013   #2
-
0
-

Tak zkus nejdřív napsat nějaký testovací skript, aby jsi zjistil, kde je chyba. Například nejdřív udělej tohle: 

<?php
if(isset($_POST['upravit'])){
	$text = $_POST['text'];
}
else $text = "";
?>
<form method="POST" action="">
<textarea name="text"><?php echo $text; ?></textarea>
<input type="submit" value="Odeslat" name="upravit">
</form>

 a postupně přidávej další věci. Měl by jsi dojít k tomu, co nefunguje.

EDIT: oprava kódu

Nahlásit jako SPAM
IP: 89.24.18.–
Linux is like a wigwam
No gates, no windows, apache inside.
hhacker0
Newbie
4. 6. 2013   #3
-
0
-

To vše je v pořádku co se týče php. Jde o ten zápis do Mysql , že se to nezapíše. 

Nahlásit jako SPAM
IP: 84.42.225.–
KIIV
~ Moderátor
+43
God of flame
4. 6. 2013   #4
-
0
-

zaprve text by mel byt v uvozovkach jinak to mysql neumi zpracovat...

zadruhe musi se to prohnat nejakym mysql_escape nebo mysql_real_escape (nepamatuju presne) - takhle ti muze kdokoliv vkladat jakykoliv databazovy pozadavky (SQL Injection)

Nahlásit jako SPAM
IP: 94.112.32.–
Program vždy dělá to co naprogramujete, ne to co chcete...
hhacker0
Newbie
4. 6. 2013   #5
-
0
-

aji kdyz byl text v uvozovkach tak to nefungovalo .... injection momentálně neřeším, ale jinak díky za připomínku ;)

Nahlásit jako SPAM
IP: 84.42.225.–
z_moravec
~ Redaktor
+3
Posthunter
4. 6. 2013   #6
-
0
-

Není problém spíš v tom, že tam máš pouze UPDATE, ale nemáš tam INSERT? Tzn. že se upraví existující položky, ale pokud chceš vložit novou, tak už to nepojede.

Nahlásit jako SPAM
IP: 46.39.170.–
Spát lze čtyři hodiny denně, spát déle je nemístný přepych.
Thomas Alva Edison
hhacker0
Newbie
4. 6. 2013   #7
-
0
-

jedná se o úpravu podstránky ne o vytváření, takže update je správně

Nahlásit jako SPAM
IP: 84.42.225.–
z_moravec
~ Redaktor
+3
Posthunter
4. 6. 2013   #8
-
0
-

A zkoušel sis vypsat mysql_error()? Příp. celý dotaz a spustit přímo v databázi, např. pomocí PMA, abys viděl, kde je chyba.

Nahlásit jako SPAM
IP: 46.39.170.–
Spát lze čtyři hodiny denně, spát déle je nemístný přepych.
Thomas Alva Edison
hhacker0
Newbie
4. 6. 2013   #9
-
0
-

Případně ze to html kód vkládám ručně do DB tak to není problém.... dával jsem tam příkaz přímo z phpmyadmina pro ten update, takže by měl být schopný to přelouskat. Používám tohle přidávání u více operací s DB a vždy to funguje excelentně, ale s tim Wysiwygem to dělá problémy.. Hodil jsem tam mysql_errno a vypsalo mě to chybu 1064 tak ještě musím zjistit co to je :-))

Nahlásit jako SPAM
IP: 84.42.225.–
z_moravec
~ Redaktor
+3
Posthunter
4. 6. 2013   #10
-
+1
-
Zajímavé

#9 hhacker
Dej tam mysql_error() a zjistíš co to je.

Nahlásit jako SPAM
IP: 46.39.170.–
Spát lze čtyři hodiny denně, spát déle je nemístný přepych.
Thomas Alva Edison
hhacker0
Newbie
4. 6. 2013   #11
-
0
-

Tak mi to napsalo že to není kód k phpmyadminu, kterého používám(mám na serveru novější verzi) ,tak jsem tam hodil příkaz přímo z phpmyadmina. A funguje to, jen v textu jedné stránky byl apostrof, tudíž to nepřelouskalo, jelikož apostrofy oddělují proměné $text2 v tom mysql příkazu. 

Nahlásit jako SPAM
IP: 84.42.225.–
KIIV
~ Moderátor
+43
God of flame
4. 6. 2013   #12
-
0
-

#5 hhacker
obavam se ze to zrovna resit budes muset.. ruzny druhy " ' a specialnich sekvenci co v mysql muzou neco znamenat... je pak pravdepodobny ze se trefis do neceho, co ti to cely rozhodi z pohledu sql dotazu

Nahlásit jako SPAM
IP: 94.112.32.–
Program vždy dělá to co naprogramujete, ne to co chcete...
hhacker0
Newbie
4. 6. 2013   #13
-
0
-

A máš nějakou radu jak tomu předejít ?:)

Nahlásit jako SPAM
IP: 84.42.225.–
KIIV
~ Moderátor
+43
God of flame
4. 6. 2013   #14
-
+1
-
Zajímavé

no aspon u ty stranky bych dal asi neco jako:

$text2 = mysql_real_escape_string($text2);

mysql_query("UPDATE `podstranky` SET  `text` =  "$text2" WHERE  `id` =  '$id' LIMIT 1 ;");

Nahlásit jako SPAM
IP: 94.112.32.–
Program vždy dělá to co naprogramujete, ne to co chcete...
hhacker0
Newbie
4. 6. 2013   #15
-
0
-

Super funguje děkuji moc :-)

Nahlásit jako SPAM
IP: 84.42.225.–
peter
~ Anonymní uživatel
4016 příspěvků
5. 6. 2013   #16
-
0
-

hhacker - ale, kdyz ti uplne naore nekdo radil, ze mas pouzit mysql_real_escape_string, tak jsi ho poslal do haje. To se nepouziva jen kvuli injection :)

Nahlásit jako SPAM
IP: 193.84.207.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 37 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý