KForum : phpRS Fórum
Máte dotaz ohledně KFora?
phpRS - redakční a informační systém
Jít na stránku:  12Další
Aktuální stránka:1 z 2
nejde přidat nový příspěvek
Zaslán uživatelem/kou: mr3ska (IP adresa zaznamenána)
Datum: 2010-07-08, 08:28

Zdravím Vás,

chtěl jsem se zeptat zda se někdo z Vás nesetkal u KFORA s problémem, že mu nešlo do některého vlákna přidat příspěvek. V celém fóru mi to jde, ale v jednom tématu co má třiadvacet stran mi to najednou při každym pokusu o vložení vyhodí hlášku "při vkládání příspěvku nastala neočekávaná chyba". Zkoušel jsem jestli to náhodou není třeba délkou mého příspěvku, ale ne e. Jednak jinde jde stejně dlouhý příspěvek vložit a druhak v tom vláknu jsou i delší příspěvky...

Díky za rady a tipy... Tomáš

Re: nejde přidat nový příspěvek
Zaslán uživatelem/kou: mr3ska (IP adresa zaznamenána)
Datum: 2010-07-08, 08:36

tak už jsem na to přišel. vadil tam apostrof když jsem chtěl vložit slovo "don't". sice nevim proč, ale bez toho to normálně jde...

Re: nejde přidat nový příspěvek
Zaslán uživatelem/kou: pa3k (IP adresa zaznamenána)
Datum: 2010-07-12, 09:56

To vyzerá na škaredý SQL injecion bug. Ak to je aktuálna verzia pluginu, informuj o tom PLS autora.

Re: nejde přidat nový příspěvek
Zaslán uživatelem/kou: mr3ska (IP adresa zaznamenána)
Datum: 2010-07-12, 10:14

me napadla jedna vec... nevi nekdo z Vas jak by slo do fora udelat aby byly nektere znaky natrvalo zakazane? respektive me nakopnete jak na nejaky filtr toho co odesilana zprava obsahuje...

pockej SQL injection? to jde trochu mimo me. kdyz napisu dont tak to odeslat jde a kdyz napisu don't tak ne...

Re: nejde přidat nový příspěvek
Zaslán uživatelem/kou: pa3k (IP adresa zaznamenána)
Datum: 2010-07-12, 13:48

Nevidím dôvod zakazovať niektoré znaky. Ošetrenie pred uložením do databázy by malo byť spravené funkciou phprs_sql_real_escape_string resp. mysql_real_escape_string.

Re: nejde přidat nový příspěvek
Zaslán uživatelem/kou: pertinax (IP adresa zaznamenána)
Datum: 2010-07-12, 14:09

ahojte,

mam na webe kforum a aj ja som odskusal vlozit slovo " don't " a urobilo mi to iste, hlasi chybu:

ou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 't','2010-07-12 14:04:14','2010-07-12 14:04:14')' at line 1

Pri vkladaní nastala neočakávaná chyba.

[http://www.zeleznicne.info]

Re: nejde přidat nový příspěvek
Zaslán uživatelem/kou: pa3k (IP adresa zaznamenána)
Datum: 2010-07-13, 12:10

Zisti, kde sa ten dotaz v plugine skladá a pridaj phprs_sql_real_escape_string. To by malo problém vyriešiť.

Re: nejde přidat nový příspěvek
Zaslán uživatelem/kou: Kubajs (IP adresa zaznamenána)
Datum: 2010-07-20, 11:05

Hmm, koukám, že mi ta oprava zase odněkud vypadla. Vím, že jsem to opravoval už dávno a přitom to zhavarovalo i v mé poslední verzi .. jak jsem si to teď vyzkoušel. Kouknu na to.

Re: nejde přidat nový příspěvek
Zaslán uživatelem/kou: Kubajs (IP adresa zaznamenána)
Datum: 2010-07-20, 11:05

Hmm, koukám, že mi ta oprava zase odněkud vypadla. Vím, že jsem to opravoval už dávno a přitom to zhavarovalo i v mé poslední verzi .. jak jsem si to teď vyzkoušel. Kouknu na to.

Re: nejde přidat nový příspěvek
Zaslán uživatelem/kou: pertinax (IP adresa zaznamenána)
Datum: 2010-07-20, 20:44

Post sa vkladá do databázy tu:

// vlozeni dat do databaze
$fpostvyd=Date("Y-m-d H:i:s");
@$addpst = phprs_sql_query("INSERT INTO ".$rspredpona."frumpst VALUES (null,'$ffrumid','$Top_ID','$fpostautor','$fposttext','$fpostvyd','$fpostvyd')",$dbspojeni);
if (!$addpst):
echo "<center>Pri vkladaní nastala neočakávaná chyba.</center><br>";
else:
// doplneni informaci do ostatnich databazi / peknej zmatek
...

je to okolo riadku 968.

Kam mám dať "phprs_sql_real_escape_string"?

[http://www.zeleznicne.info]



Celkem upraveno 1×. Poslední úprava pertinax v 20.07.2010 21:08.

Re: nejde přidat nový příspěvek
Zaslán uživatelem/kou: pa3k (IP adresa zaznamenána)
Datum: 2010-07-22, 09:38

Neviem aký datový typ majú dané premenné, takže je to len tip, bez záruky, ale v princípe nejak takto:
// vlozeni dat do databaze
//$fpostvyd=Date("Y-m-d H:i:s");
@$addpst = phprs_sql_query("INSERT INTO ".$rspredpona."frumpst VALUES (null,'".(int)$ffrumid."','".(int)$Top_ID."','".(int)$fpostautor".','".phprs_sql_real_escape_string($fposttext)."',NOW(),NOW()",$dbspojeni);
if (!$addpst):
echo "<center>Pri vkladaní nastala neočakávaná chyba.</center><br>";
else:
// doplneni informaci do ostatnich databazi / peknej zmatek

Ak ukladáš celé číslo tak použi (int). Ak reťazec, phprs_real_escape_string() a NOW je zjednodušenie pre aktuálny - premennú $fpostvyd netreba použiť.

Re: nejde přidat nový příspěvek
Zaslán uživatelem/kou: pa3k (IP adresa zaznamenána)
Datum: 2010-07-22, 09:41

Predpokladám, že XSS ochranu to má na výstupe. Nemal by sa dať vložiť HTML kód a výstup by mal byť ošetrený pomocou html_specialchars



Celkem upraveno 1×. Poslední úprava pa3k v 22.07.2010 09:42.

Re: nejde přidat nový příspěvek
Zaslán uživatelem/kou: pertinax (IP adresa zaznamenána)
Datum: 2010-07-23, 10:16

Ahoj,

ďakujem za pomoc, skúšal som sa inšpirovať týmto:

[http://www.phprs.net/magazin/view.php?cisloclanku=2006111101]

kde je to použité

// zapis do db
$sql = "UPDATE ".$GLOBALS['rspredpona']."partners
SET `title`= '".phprs_sql_real_escape_string($title)."',
`web`= '".phprs_sql_real_escape_string($web)."',
`image`= '".phprs_sql_real_escape_string($nast_furl)."',
`priority`='".phprs_sql_real_escape_string($priority)."'
WHERE `idp`= '".phprs_sql_real_escape_string($idp)."'
";
$update = phprs_sql_query($sql,$GLOBALS['dbspojeni']);

no nejako mi to nešlo a nemal som ani dostatok času na hľadanie chýb.

Tak som skúsil to čo si sem dal, ale hlásilo to tiež nejakú chybu a aj to (int) nerobilo dobrotu, tak som to dal len takto:

@$addpst = phprs_sql_query("INSERT INTO ".$rspredpona."frumpst VALUES (null,'$ffrumid','$Top_ID','$fpostautor','".phprs_sql_real_escape_string($fposttext)."','$fpostvyd','$fpostvyd')",$dbspojeni);

a funguje to bez problémov, a ešte som to upravil aj pri editovaní príspevkov je to okolo riadku 1108, ak by to náhodou chcel upraviť:

@$edtpst = phprs_sql_query("update ".$rspredpona."frumpst set posttext='".phprs_sql_real_escape_string($fposttext)."',postedit='".$fpostopr."' where postid='".$Pst_ID."'",$dbspojeni);

Všetko je samozrejme bez záruky! :D

Ochrana proti html kódu kforum-e je, kód sa vloží ako text, a ešte raz ďakujem za pomoc. ;)

[http://www.zeleznicne.info]

Re: nejde přidat nový příspěvek
Zaslán uživatelem/kou: mr3ska (IP adresa zaznamenána)
Datum: 2010-07-24, 11:44

Jen jedna vec, to ADDPST.... Je to jak pri zakladani novyho tematu tak pri zadavani pouze novyho prispevku.

Re: nejde přidat nový příspěvek
Zaslán uživatelem/kou: pa3k (IP adresa zaznamenána)
Datum: 2010-07-27, 10:31

Ten (int) je dosť dôležitý. nejde preto, lebo je tam chyba prehodena bodka za uvodzovky:
// vlozeni dat do databaze
//$fpostvyd=Date("Y-m-d H:i:s");
@$addpst = phprs_sql_query("INSERT INTO ".$rspredpona."frumpst VALUES (null,'".(int)$ffrumid."','".(int)$Top_ID."','".(int)$fpostautor."','".phprs_sql_real_escape_string( $fposttext)."',NOW(),NOW()",$dbspojeni);
if (!$addpst):
echo "<center>Pri vkladaní nastala neočakávaná chyba.</center><br>";
else:
// doplneni informaci do ostatnich databazi / peknej zmatek

Ak to nie sú čísledné hodnoty, daj tam tiež phprs_real_escape_string().

Re: nejde přidat nový příspěvek
Zaslán uživatelem/kou: mr3ska (IP adresa zaznamenána)
Datum: 2010-08-06, 00:55

tak jsem to zkousel taky upravit a s tim INTem mi to neslo, furt jen "Pri vkladaní nastala neočakávaná chyba." a kdyz jsem to dal bez INTu jen s tim phprs_real_escape_string tak prispevek vlozit jde....

Re: nejde přidat nový příspěvek
Zaslán uživatelem/kou: pa3k (IP adresa zaznamenána)
Datum: 2010-08-06, 11:38

Môžeš sem hodiť SQL štruktúru tabuľky bez dát?

Re: nejde přidat nový příspěvek
Zaslán uživatelem/kou: Lonanek (IP adresa zaznamenána)
Datum: 2010-08-06, 11:57

Správná struktura tabulky do které Ti nejdou uložit data:
frumpst
postid int unsigned not null auto_increment,
frumid int unsigned,
topicid int unsigned,
postautor int unsigned,
posttext text,
postvyd datetime not null default '0000-00-00 00:00:00',
postedit datetime not null default '0000-00-00 00:00:00',

primary key (postid),
key frumid (frumid),
key topicid (topicid),
key postautor (postautor)

To pa3k:
Taky už mě napadlo, jestli nemá jinou strukturu tabulky. Pokud nejsou první 4 položky typu INT pak to samozřejmě vyhodí chybu.

Co se týká ošetření tak v souboru kforum.php je řešeno nastavením:
$odstranitHTML = TRUE; // odstraňovat HTML z textových inputů


* Klub kuželkářů Zálabák, Hankova 62, 503 03 Smiřice (Endora) * X X * Stránky ČZS ZO Třešňovka2 * X X * Cvičný phpRS web (WZ) * X X * Testovací phpRS web (WZ) *
* cvičná verze phpRS v 2.8.2 * X X * testovací web CMS *

Re: nejde přidat nový příspěvek
Zaslán uživatelem/kou: mr3ska (IP adresa zaznamenána)
Datum: 2010-08-06, 13:36

no mam to popořadě takhle:

postid (int)
frumid (int)
topicid (int)
postautor (int)
posttext (text)
postvyd (datetime)
postedit (datetime)

nicméně at si s tim hraju jak hraju tak mi to z nějakýho důvodu nejde jakmile tam ty INTy zadam....

Re: nejde přidat nový příspěvek
Zaslán uživatelem/kou: Lonanek (IP adresa zaznamenána)
Datum: 2010-08-06, 14:52

No jasně, chyba v syntaxi. Chybí tam závorka na konci příkazu
To však muselo být z hlášky jasné......
Správně:
@$addpst = phprs_sql_query("INSERT INTO ".$rspredpona."frumpst VALUES (null,'".(int)$ffrumid."','".(int)$Top_ID."','".(int)$fpostautor."','".phprs_sql_real_escape_string($fposttext)."',NOW(),NOW())",$dbspojeni);



* Klub kuželkářů Zálabák, Hankova 62, 503 03 Smiřice (Endora) * X X * Stránky ČZS ZO Třešňovka2 * X X * Cvičný phpRS web (WZ) * X X * Testovací phpRS web (WZ) *
* cvičná verze phpRS v 2.8.2 * X X * testovací web CMS *




Celkem upraveno 1×. Poslední úprava Lonanek v 06.08.2010 15:05.

Jít na stránku:  12Další
Aktuální stránka:1 z 2


Lituji, ale pouze registrovaní uživatelé mohou zasílat příspěvky do této sekce.
This forum powered by Phorum and designed by STaNBoSS.