XMLHttpRequest metodo post

  • Autor Autor xaiborweb
  • Fecha de inicio Fecha de inicio
xaiborweb

xaiborweb

Dseda
Programador
No recomendado
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
hola compañeros de forobeta, resulta que tengo un script que muestra enlaces así imagen

el enlace se lo envió así:
PHP:
<span class="movie-online-list" id_movies_types="<?=$links[$i]['q']?>" id_lang="<?=$links[$i]['a']?>" episode="0" season="0" id_type="<?=$links[$i]['t']?>" id_server="<?=$links[$i]['s']?>" style="display:none;" online-link="<?=$links[$i]['u']?>" link-id="20481">&nbsp;
                      </span>
el script lo recibe y envía el enlace a stream.php por método post
PHP:
function getiframe(e) {
    var i = new XMLHttpRequest,
        t = "/stream/stream.php",
        o = "link=" + e;
    i.open("POST", t, !0), i.setRequestHeader("Content-type", "application/x-www-form-urlencoded"), i.onreadystatechange = function() {
        4 == i.readyState && 200 == i.status && $(".movie-online-iframe").append(i.responseText)
    }, i.send(o)
}
pero el problema es que los enlaces se ven en el código fuente y no quiero que google bot los indexe, o cualquier bot automático que anda recolectando enlaces warez para reportarlos, entonces le quise enviar el enlace con base64 así:
PHP:
online-link="<?=base64_encode($links[$i]['u'])?>"
pero entonces el script que recibe y envía el enlace por metodo post a stream.php no le envía nada supongo que por que esa función recoge el http:// y como solo le estoy enviando dígitos no lo reconoce.

entonces les agradezco si saben que debo modificar en esa función para que reconozca el enlace y así le envié a stream.php por método post el enlace obtenido encriptado con base64.
 
en la funcion que hace el request xml debes de usar base64 decode para que pueda obtener su verdado resultado de la codificacion y pueda procesar los datos, al menos eso es lo que dedusco por lo que comentas ya que como mencionas al enviarlo base64 solo ve puros numeros entonces solo decodifica el link para procesarlo y listo.
 
si el archivo stream.php solo aceptas request post, google no va indexar nada. -igual, puedes poner en el robots.txt que google no lo idnexe.
 
en la funcion que hace el request xml debes de usar base64 decode para que pueda obtener su verdado resultado de la codificacion y pueda procesar los datos, al menos eso es lo que dedusco por lo que comentas ya que como mencionas al enviarlo base64 solo ve puros numeros entonces solo decodifica el link para procesarlo y listo.

un ejemplo en código ? plis

si el archivo stream.php solo aceptas request post, google no va indexar nada. -igual, puedes poner en el robots.txt que google no lo idnexe.

no por que en el index es donde impreme los enlaces que le esta mandando al js que a su ves le manda por método post a stream.php se que es algo enredado y podría ser mas optimizado pero funciona y no quiero matarme la cabeza mas 😉

por cierto ando esperando que me respondas un mp ;( gracias por responder.
 
Debes decodificar primero el enlace usando base64_decode()...

Como veo que estas trabajando con JS, te dejo esta funcion que encontre para decodificiar base64 y ademas un ejempo de uso:

PHP:
var Base64={_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",encode:function(e){var t="";var n,r,i,s,o,u,a;var f=0;e=Base64._utf8_encode(e);while(f<e.length){n=e.charCodeAt(f++);r=e.charCodeAt(f++);i=e.charCodeAt(f++);s=n>>2;o=(n&3)<<4|r>>4;u=(r&15)<<2|i>>6;a=i&63;if(isNaN(r)){u=a=64}else if(isNaN(i)){a=64}t=t+this._keyStr.charAt(s)+this._keyStr.charAt(o)+this._keyStr.charAt(u)+this._keyStr.charAt(a)}return t},decode:function(e){var t="";var n,r,i;var s,o,u,a;var f=0;e=e.replace(/[^A-Za-z0-9+/=]/g,"");while(f<e.length){s=this._keyStr.indexOf(e.charAt(f++));o=this._keyStr.indexOf(e.charAt(f++));u=this._keyStr.indexOf(e.charAt(f++));a=this._keyStr.indexOf(e.charAt(f++));n=s<<2|o>>4;r=(o&15)<<4|u>>2;i=(u&3)<<6|a;t=t+String.fromCharCode(n);if(u!=64){t=t+String.fromCharCode(r)}if(a!=64){t=t+String.fromCharCode(i)}}t=Base64._utf8_decode(t);return t},_utf8_encode:function(e){e=e.replace(/rn/g,"n");var t="";for(var n=0;n<e.length;n++){var r=e.charCodeAt(n);if(r<128){t+=String.fromCharCode(r)}else if(r>127&&r<2048){t+=String.fromCharCode(r>>6|192);t+=String.fromCharCode(r&63|128)}else{t+=String.fromCharCode(r>>12|224);t+=String.fromCharCode(r>>6&63|128);t+=String.fromCharCode(r&63|128)}}return t},_utf8_decode:function(e){var t="";var n=0;var r=c1=c2=0;while(n<e.length){r=e.charCodeAt(n);if(r<128){t+=String.fromCharCode(r);n++}else if(r>191&&r<224){c2=e.charCodeAt(n+1);t+=String.fromCharCode((r&31)<<6|c2&63);n+=2}else{c2=e.charCodeAt(n+1);c3=e.charCodeAt(n+2);t+=String.fromCharCode((r&15)<<12|(c2&63)<<6|c3&63);n+=3}}return t}}

y asi es como debes usarlo:

PHP:
function getiframe(e) {
    var decod = Base64.decode(e);
    var i = new XMLHttpRequest, 
        t = "/stream/stream.php", 
        o = "link=" + decod; 
    i.open("POST", t, !0), i.setRequestHeader("Content-type", "application/x-www-form-urlencoded"), i.onreadystatechange = function() { 
        4 == i.readyState && 200 == i.status && $(".movie-online-iframe").append(i.responseText) 
    }, i.send(o) 
}

Pruebalo y avisame si funciona, Saludos
 
Probaste usar base64_decode(); en stream.php ??
 
Debes decodificar primero el enlace usando base64_decode()...
Como veo que estas trabajando con JS, te dejo esta funcion que encontre para decodificiar base64 y ademas un ejempo de uso:
Pruebalo y avisame si funciona, Saludos

funciona perfectamente amigo pero actualmente el js recibe el enlace codificado en base_64 lo descodifica y hay si lo envía por método post, pero me preguntaba si era posible que enviara por método post el enlace codificado por método post como lo recibió, y así desde el archivo stream.php solo lo recibo así:
PHP:
$link = base64_decode($_POST['link']);
es que no se nada de js y veo que al quitarle la linea
PHP:
var Base64={_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",encode:function(e){var t="";var n,r,i,s,o,u,a;var f=0;e=Base64._utf8_encode(e);while(f<e.length){n=e.charCodeAt(f++);r=e.charCodeAt(f++);i=e.charCodeAt(f++);s=n>>2;o=(n&3)<<4|r>>4;u=(r&15)<<2|i>>6;a=i&63;if(isNaN(r)){u=a=64}else if(isNaN(i)){a=64}t=t+this._keyStr.charAt(s)+this._keyStr.charAt(o)+this._keyStr.charAt(u)+this._keyStr.charAt(a)}return t},decode:function(e){var t="";var n,r,i;var s,o,u,a;var f=0;e=e.replace(/[^A-Za-z0-9+/=]/g,"");while(f<e.length){s=this._keyStr.indexOf(e.charAt(f++));o=this._keyStr.indexOf(e.charAt(f++));u=this._keyStr.indexOf(e.charAt(f++));a=this._keyStr.indexOf(e.charAt(f++));n=s<<2|o>>4;r=(o&15)<<4|u>>2;i=(u&3)<<6|a;t=t+String.fromCharCode(n);if(u!=64){t=t+String.fromCharCode(r)}if(a!=64){t=t+String.fromCharCode(i)}}t=Base64._utf8_decode(t);return t},_utf8_encode:function(e){e=e.replace(/rn/g,"n");var t="";for(var n=0;n<e.length;n++){var r=e.charCodeAt(n);if(r<128){t+=String.fromCharCode(r)}else if(r>127&&r<2048){t+=String.fromCharCode(r>>6|192);t+=String.fromCharCode(r&63|128)}else{t+=String.fromCharCode(r>>12|224);t+=String.fromCharCode(r>>6&63|128);t+=String.fromCharCode(r&63|128)}}return t},_utf8_decode:function(e){var t="";var n=0;var r=c1=c2=0;while(n<e.length){r=e.charCodeAt(n);if(r<128){t+=String.fromCharCode(r);n++}else if(r>191&&r<224){c2=e.charCodeAt(n+1);t+=String.fromCharCode((r&31)<<6|c2&63);n+=2}else{c2=e.charCodeAt(n+1);c3=e.charCodeAt(n+2);t+=String.fromCharCode((r&15)<<12|(c2&63)<<6|c3&63);n+=3}}return t}}
y dejarlo original como estaba
PHP:
function getiframe(e) { 
    var i = new XMLHttpRequest, 
        t = "/stream/stream.php", 
        o = "link=" + e; 
    i.open("POST", t, !0), i.setRequestHeader("Content-type", "application/x-www-form-urlencoded"), i.onreadystatechange = function() { 
        4 == i.readyState && 200 == i.status && $(".movie-online-iframe").append(i.responseText) 
    }, i.send(o) 
}
entonces no envía el enlace creo que es por esta variable
PHP:
var i = new XMLHttpRequest,
que requiere el http pero no se como quitar ese requisito y que simplemente envié a stream.php lo que recibe y ya
 
Atrás
Arriba