Autor | Zpráva | ||
---|---|---|---|
svanda777 Profil |
#1 · Zasláno: 20. 9. 2013, 16:25:10
Dobrý den,
při kliknutí na obrázek by se měl smazat hlas z databáze, ale celý script nereaguje. <img src="obrazky/dislike.png" onClick="vytvor pozadavek(<? echo $id; ?>,'l');"> // JavaScript Document function vytvor pozadavek(i,f){ var url = "scripty/uprav_hlas.php"; xhr.open("POST",url); xhr.onreadystatechange = volanaFunkce; //dojde-li ke změně, volej funkci volanaFunkce xhr.send('f='+f+'&i='i); } function vytvorXHR(){ var xhr; try{ xhr = new XMLHttpRequest(); }catch(e){//pro případ starší verze prohlížeče var MSXmlVerze = new Array('MSXML2.XMLHttp.6.0','MSXML2.XMLHttp.5.0','MSXML2.XMLHttp.4.0','MSXML2.XMLHttp.3.0','MSXML2.XMLHttp.2.0','Microsoft.XMLHttp'); for(var i = 0; i <= MSXmlVerze.length; i ++){ try{ xhr = new ActiveXObject(MSXmlVerze[i]); //alert(MSXmlVerze[i]); break; }catch(e){ //vzniklou chybu ignoruji a pokračuji nastavením další verze } } } if(!xhr) alert("Došlo k chybě při vytváření objektu XMLHttpRequest!"); else return xhr; } |
||
Chamurappi Profil |
Reaguji na svandu777:
V názvu proměnné (a tedy ani funkce) nemůže být mezera. |
||
juriad Profil |
#3 · Zasláno: 20. 9. 2013, 16:37:04
chyb je tam dost:
řádek 2: název funkce obsahuje mezeru řádek 5: nedefinovaná proměnná xhr; nejspíš chceš před to dát příkaz: var xhr = vytvorXHR();
řádek 6: nedefinovaná proměnná volanaFunkce; pokud tě nezajímá, jestli se požadavek podařil, tento řádek úplně smaž, jinak vytvoř funkci volanaFunkce řádek 7: chybí ti plus před poslední složkou (i) |
||
svanda777 Profil |
Už to skoro funguje jen pořád nejde ten script uprav_hlasy. Dal jsem do něj alert, ale ten se nezobrazuje.
|
||
juriad Profil |
#5 · Zasláno: 20. 9. 2013, 16:45:41
Ty ale voláš uprav_hlas.php ne uprav_hlasy.
V PHP skriptu je ti alert k ničemu, ten se vykonává na serveru a javascript se v něm neinterpretuje. |
||
svanda777 Profil |
#6 · Zasláno: 20. 9. 2013, 16:49:43
To byl překlep pouze tady, jinak je správně.
přikládám php script: <? $uzivatel = $_SESSION['uzivatel']; if($_GET['f']=="d"){ include ("include/connect.php") ; $pridej=mysql_query("DELETE * FORM kniha_hlasy WHERE id_uzivatele=$uzivatel") or die (mysql_error()); }else{ $id = $_GET['i']; $pridej=mysql_query("INSERT INTO kniha_hlasy VALUES('','$uzivatel','$id')") or die(mysql_error()); } ?> |
||
jenikkozak Profil |
#7 · Zasláno: 21. 9. 2013, 11:45:32
Tvá aplikace je velmi snadno zranitelná. Neměl bys slepě věřit uživateli, že se nepokusí s daty manipulovat. Veškeré vstupy od uživatele (tedy i ty proudící prostřednictvím AJAXu) escapuj.
|
||
polonium Profil |
#8 · Zasláno: 21. 9. 2013, 12:21:06
A nemel bys hledat ty promene f a i v POSTu?
xhr.open("POST",url); |
||
Časová prodleva: 11 let
|
0