Jump to content
php.lv forumi

bildes ielaade ar ajax


nemec

Recommended Posts

ir lapa. uz taas ir bilde. man vajag lai lietotaajs ielaadeetu sev paarluukaa, un peec tam aizsuutiitu to man uz serveri. pie tam lietotaajs neko nedara - viss automaatiski

shitaads nestraadaa, nepatiik mime type

var http = false;

if(navigator.appName == "Microsoft Internet Explorer") {
http = new ActiveXObject("Microsoft.XMLHTTP");
 } else {
http = new XMLHttpRequest();
}
http.overrideMimeType('text/image');//mime type problems
 http.open("GET", "image.png");
 http.onreadystatechange=function() {
if(http.readyState == 4) {
 alert(http.responseText);
 }
}
http.send(null);

 

otra mana ideja ielaadeet bildi 'img' tagaa un nolasiit pa punktiem, bet tas atkriit, jo neko liidziigo neatradu.

prieksh kam man tas - ir ievades forma, kur prasa bildi (capthca).

es to formu uztaisu savaa lapaa, laadeeju captcha, atpaziistu to un suutu formai datus bez taas tizlaas captchas.

uz php viss lieliski straadaa, skripts laadee bildi un aizpilda formu, bet php atrodas uz servera un sanaak ka formu suuta serveris.

Link to comment
Share on other sites

Failu ielāde caur ajax nav iespējama. Visur iesaka risinājumu priekš tā izmantot slēptu iframe.

Te vietas kur par to var pārliecināties.

http://www.air4web.com/files/upload/

http://www.webtoolkit.info/ajax-file-upload.html

http://www.seemysites.net/projFolder/uploader/

 

Viens gan kaut kāds ir, bet tas prasa lietotājiem mainīt browsera konfigurāciju - http://www.captain.at/ajax-file-upload.php

 

Bet tu kaut kādu sarežģītu variantu mēģini sataisīt. Ja jau negribi, lai lietotāji vada captcha, tad pielieto visādas JS metodes, lai pārbaudītu vai tas nav bots.

Link to comment
Share on other sites

Taa ir kad failus caur AJAX nevar padot :(

(var bet ne visiem brauzeriem...)

 

izveidojam slepto freimu

style="display:none"

 

formu submito ar JS .... kaa targetu noraadot freimu....

 

pec PHP apstrades izvadi <DIV> kur nepiecieshama info // fails ieladests veiksmiigi utt

izvadi JavaScriptu kas izsauc apstrades funkciju --> kura nolasa DIV info (inerHTML) un aistransporte kur tev vajag ...

+ var arii izgrust JS masivu ko pec tam izmanto ka nepiecieshams....

(DIVU izmantoju ja vajag ar kadu citu failu // includojamu// izvadit daudz Jau noformateetus datus....//

------------------

<div id="aaa">
bla bla fails OK
</div>
<script>
var response=document.getElementById('aaa').innerHTML;
parent.kautkada_funkcija_pamat_dokumenta(response);
</script>

Visa beda...

Link to comment
Share on other sites

man nevajag laadeet failus.

 

mana lapa - nemec.lv, tad otra lapa svesais.lv

svesais.lv - forma ar teksta ievades laukiem, un tiem tur ir captcha.

es gribu uztaisiit uz nemec.lv taadu pashu formu, tikai bez captchas.

man vajag lai ieejot nemec.lv, lietotaajam novelkas taa captcha, tad taa captcha aiziet uz nemec.lv/captchas_atpazishana.php un aizsuuta vinjam kodu. tad veiksmiigi nopostojam datus uz svesais.lv un viss rullee.

vajag uz javascripta file_get_contents (no php) funkciju.

es jau nedeelju galvu lauzu nevaru neko sapraatiigu izdomaat.

Link to comment
Share on other sites

// vajag uz javascripta file_get_contents (no php) funkciju. //

paskaties manu ieprieksejo postu -->

--------------------------

var response=document.innerHTML;

parent.kautkada_funkcija_pamat_dokumenta(response);

----------

pa taisno no servera iisti nesanaks ieladet JavaScripta ...

Link to comment
Share on other sites

tavs piemeers nodroshina failu ielaadi no lietotaaja kompja uz servera, bez lapas paarlaades ar sleepto iframe.

man to nevajag.

 

failus var lasiit ar ajax. manaa pirmajaa postaa bija cita probleema.

esu paraknjaajies un sapratu, ka vinjam nepatiik cross-domain ajax.

atradu uz mozillas lapas taadu kodu 'netscape.security.PrivilegeManager.enablePrivilege("UniversalPreferencesRead");', kursh iedod tas privilegijas.

izskataas tas taa jar:http://www.mozilla.org/projects/security/components/signed-script-demo.jar!/signed-script-demo.html

bet to man neizdodas dabuut gatavu. ja kaads ir ar to saskaaries un dabuujis privileegijas, tad paskaidrojiet man sho.

 

man pat iisteniiba der Internet explorer variants, tas ir uz VBscript

te ir kods uz VBscript

Dim xhr
Set xhr = CreateObject("Microsoft.XMLHTTP")

xhr.Open "GET", "http://www.tvnet.lv/zinas/images/upload/wallpapers/d_ss_16.jpg", False

xhr.setRequestHeader "Accept-Charset", "x-user-defined"
xhr.setRequestHeader "Content-Type", "text/plain"
xhr.send Null

Dim xx
xx= xhr.responseBody

ja mees taadu palaizham, tad vinjsh saka permission denied. bet lapu no kuras laizham var ielikt pie internet properties->allowed sites, ja shoreiz laizham, tad izlec logs: yes no, ja uzpiezham yes, tad viss forshi laadeejas. Tam miinuss ir taads, ka jaaliek klaat allowed sites un katru reizi kad pieprasam informaaciju ir jaaspiezh poga yes.

 

varbuut kaads zin, kaa var apiet tos security sandbox (vai kaa sho suudu sauc). buutu ok ja izlegtu logs allow or desallow. bet ne ikreizi kad pieprasu informaaciju no cita servera.

 

esu arii meeginaajis ar flash dabuut.

laadeeju bildi flashaa, bet taalaak atkal tas pats. flash negrib to bildi lasiit pa pikseljiem, taapeec ka taa ir no cita domena.

 

varbuut ar java appletu to var ielaadeet, nolasiit un aizsuutiit javascriptam?

Link to comment
Share on other sites

Es domāju ka tāds variants nav iespējams, jo savādāk tas ir drošības caurums.

Jo tad varēs darīt tā:

1) Janis ir iegājis kādā draugošanās vietnē A. Viņam atnāk vēstule ar linku uz lapu B (citā domeinā).

2) Lapa B pieprasa no vientes A, piemēram, vēstuļu sūtīšanas lapu. Ja lapas B skripts var tikt klāt lapas A saturam, tad viņš var tikt klād arī visiem sesijas vai drošības kodiem.

3) Lapa B veic postošanu uz vietnes A vēstuļu sūtīšanas lapu un nosūta tavā vietā vēstules visiem taviem draugiem ar linku uz lapu B.

 

 

Šāds triks, piemēram, tika izmantots viena MySpace vīrusā.

Tikai šis vīrus izmnatoja Flash failu, kurš izveidoja caur javascriptiem ajax objektu, kurš jau nu atradās uz paša myspace domeina un varēja komunicēt ar myspace serveri.

Drošības cauruma risinājums bija visiem ievietotajiem flashiem myspace ielika parametru, kurš aizliedz flašam ārējos scriptus.

Edited by betons
Link to comment
Share on other sites

tur taa lieta, ja tu neuzticies lapai, tad jau arii neapstiprini un neliec pie allowed sites. bet ja uzticies, tad kaapeec to nevar dariit un piedaavaat lietotaajam savu servisu. tu tachu, kad instalee programmas arii riskee ar savu droshiibu.

Link to comment
Share on other sites

×
×
  • Create New...