Foro oficial de PHP

Antes de ponerte a generar un archivo .js con php, no queda como más fácil hacer una consulta tipo AJAX con JavaScript preguntando al servidor por dicho precio? o tiene que ser un archivo .js obligatoriamente generado con php?

Salu2

pues como yo no se nada de esto, toda ayuda es bienvenida, si acaso se programar en algo de html

creo que alguna vez ya habia hablado antes con ud, su foto me es conocida, tal vez de denunciando.com, por que necesitaba algo de validación por UML

pues lo que pasa es que el sitio web tengo una funcion que convierte los precios en dolares y los da en formato moneda colombiana haciendo el cambio a la trm del día, ya me lo da con separadores de miles y todo
 
pues como yo no se nada de esto, toda ayuda es bienvenida, si acaso se programar en algo de html

creo que alguna vez ya habia hablado antes con ud, su foto me es conocida, tal vez de denunciando.com, por que necesitaba algo de validación por UML

pues lo que pasa es que el sitio web tengo una funcion que convierte los precios en dolares y los da en formato moneda colombiana haciendo el cambio a la trm del día, ya me lo da con separadores de miles y todo

Huy la verdad que ni idea, tantos foros de programación en los que ando metido que a la final ni idea :p pero bueno te doy una recomendación y si alguien más puede opinar mucho mejor.

A mi parecer creo que la mejor forma es que para estár siempre actualizado puedes en cuanto al precio en TRM es que por medio de PHP imprimas ese valor en la página en una input tipo hidden (osease oculto) por ejemplo

Código:
<?php
$trm = TraerTRM(); //función hipotética
// imprimes la página y en algún ladito imprimes el input invicible
echo '<input id="trm" type="hidden" value="'.$trm.'">';
?>
Y luego en JavaScript puedes recogerla

Código:
<script>
var trm = document.getElementById('trm').value;
alert('El TRM de hoy es '+trm);
</script>
Esa es una buena idea de como recoger el trm desde el servidor sin usar AJAX, si necesitas más ayuda avisa que sino estoy yo estan los demás que con gusto te damos una mano ;)

Salu2

PD: teniendo en cuenta la función que das en la página que indicas y que esta funcione, porque la verdad no la he probado
 
para usar ese codigo php es necesario que en el servidor este la libreria curl habilitada e instaalada...

para que crear un archivo js, si lo puede crear en tiempo de ejecucion y utilizarlo
 
para eso mismo mandas el php a la variable JS.


PHP:
<?php
$trm = TraerTRM(); //función hipotética
?>

<script>
var trm = <?=$trm?>;
</script>
 
para eso mismo mandas el php a la variable JS.


PHP:
<?php
$trm = TraerTRM(); //función hipotética
?>

<script>
var trm = <?=$trm?>;
</script>
y como? generando un archivo .js dinamico? como lo harias tu?

Bueno pensando un poco en lo que dice el compañero "para eso mismo mandas el php a la variable JS" la respuesta que doy es valida solo si tienes el JavaScript a parte del codigo HTML que es la mejor practica que puedes hacer.

Pero si tienes todo combinado entonces es verdad, para eso mejor mandamos a imprimir la variable en el JS de esta manera

PHP:
<html>
  <head>
    <script>
      var trm = <?php echo TraerValorTRM() ?>
    </script>
  </head>
  <body>
     bla bla bla
  </body>
</html>
 
aunque lo mejor es usar Ajax
Claro amigo, lo mejor es utilizar Ajax y paras de contar, o si no quieres usar Ajax, entonces como dije antes, pones el valor en un input tipo hidden y listo que allá en la página recoges ese valor con JavaScript y haces lo que necesites

Con TinyAjax es muy fácil la implementación
La verdad... bueno para un caso de un código que necesite estar centralizado en un solo lenguaje... esa implementación está excelente.

Pero en mi uso personal, siempre he digo algo "zapatero a tus zapatos" y me gusta mucho no involucrar cosas de JavaScript con PHP, yo simplemente haría un llamado tipo AJAX con jQuery y listo obtengo mi respuesta ya sea en tipo TEXT o XML o JSON y ya hago lo que necesito hacer con la respuesta en el cliente.
 
El problema es el siguiente
es que tengo un sitio web donde solo permite programar en html y en javascipt
y tengo otro servcio de hosting donde si tengo php y muchas cosas mas

pues estoy en lo de la migración de sitios (pero eso todavía demora mucho)
pero el sitio primero factura todos los dias, y basandose en dolares.

Lo que tengo pensado es que cuando otro usuario entre al segundo sitio web (que no tiene nada que ver con el primero), le meto el codigo de crear variable TRM y que cree el archivo .js con la trm del dia de hoy, asi se actualiza constantemente

ya al otro sitio web el que factura, se le dice que llame la variable trm del dominio anterior, que eso no tiene problema y el sitio funcionaria perfectamente.

PHP:
<?php
$url="http://portal.banrep.gov.co/j2ee/encuesta/jsp/trm_del_dia.jsp";
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL,$url);
curl_setopt ($ch, CURLOPT_HEADER, 0);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
$page = trim(curl_exec($ch));
 
$pos1=strpos($page,'<B>');
$pos1=$pos1;
$pos2=strpos($page,"</B>",$pos1);
$puntuacion=substr($page,$pos1,$pos2-$pos1);
echo "TRM :".$puntuacion; 
$trm_final=$puntuacion;
$trm_final = str_replace( "<B>", "", $trm_final );
 
 
function trm()
{
$url="http://dolar.wilkinsonpc.com.co/indicadores-economicos-dolar.html";
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL,$url);
curl_setopt ($ch, CURLOPT_HEADER, 0);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
$page = trim(curl_exec($ch));
//echo $page;
$pos1=strpos($page,':</b>');
$pos1=$pos1;
$pos2=strpos($page,"</font><br>",$pos1);
$puntuacion=substr($page,$pos1,$pos2-$pos1);
$puntuacion=str_replace(':','',$puntuacion);
$puntuacion=str_replace('$','',$puntuacion);
$puntuacion=str_replace('</b> ','',$puntuacion);
$puntuacion=str_replace('<br>','',$puntuacion);
$puntuacion=trim($puntuacion);
"TRM :".$puntuacion;
return $puntuacion;
} 
?>
 
Lo que tengo pensado es que cuando otro usuario entre al segundo sitio web (que no tiene nada que ver con el primero), le meto el codigo de crear variable TRM y que cree el archivo .js con la trm del dia de hoy, asi se actualiza constantemente
Claro entonces puedes utilizar AJAX que es lo más conveniente para este caso o puedes imprimir directamente en el javascript que está embebido en el HTML
PHP:
<html>
  <head>
    <script>
      var trm = <?php echo TraerValorTRM() ?>
    </script>
  </head>
  <body>
     bla bla bla
  </body>
</html>
 
gracias y sera que al hacer esto sirve?
no soy programador en php

usa fopen (algo asi: $archivo = fopen("tuarchivo.js","w+"); ) y abres tu .js, luego fwrite lo q borraria el contenido y colocaria el nuevo dato.. algo como fwrite($archivo,"var trm_actual = $trm_final;"); luego fclose($archivo); ... igual te recomiendo leer lo de fopen

PHP:
$archivo = fopen("tuarchivo.js","w+");
fwrite($archivo,"var trm_actual = '$trm_final';");
fclose($archivo);
 
AJAX no requiere ninguna cosa especial, ademas eso corre en el navegador por lo que no importa tu proveedor de hosting para usarlo. Basicamente ajax es una libreria de javascript que te permite acceder a datos dinamicamente desde javascript. Me parece una buena solucion.
 
Amigos una pregunta, hace tiempo lo encontré pero ya se me olvidó el nombre y es lo de la tecnología que utiliza el chat de facebook que no es el cliente que pide por ajax una información sino que es el servidor que apenas le llega una información se la manda al navegador del usuario ¿alguien se acuerda como es que se llama eso?

Salu2
 
Amigos una pregunta, hace tiempo lo encontré pero ya se me olvidó el nombre y es lo de la tecnología que utiliza el chat de facebook que no es el cliente que pide por ajax una información sino que es el servidor que apenas le llega una información se la manda al navegador del usuario ¿alguien se acuerda como es que se llama eso?

Salu2

YA ME ACORDE!!!! protocolo Comet se llama :)
 
alguien conoce una librería PHP o clase PHP que haga un diff entre tablas. La necesito para hacer actualizaciones entre versión de un programa y otro. le he buscado algo a internet pero hasta ahora sin éxito.
 
Problema con apostrofe en la URL

Tengo el siguiente problema.
En mi php.ini el magic_quotes_gpc está en off.

He utilizado esto para evitar el sql injection:

PHP:
function comillas_inteligentes($valor)
{
    // Retirar las barras
    if (get_magic_quotes_gpc()) {
        $valor = stripslashes($valor);
    }

    // Colocar comillas si no es entero
    if (!is_numeric($valor)) {
        $valor = "'" . mysql_real_escape_string($valor) . "'";
    }
    return $valor;
}
Mi consulta es:
PHP:
$query = sprintf("SELECT idart, codigo, articulo FROM articulo WHERE idart=%s",
            comillas_inteligentes($idart));
En la URL aparece esto:
PHP:
http://localhost/productos.formulario.editar.php?idart=1
El query que ejecuta es:
PHP:
SELECT idart, codigo, articulo FROM articulo WHERE idart=1
si yo le agrego un apostrofe al final en la URL:
PHP:
http://localhost/productos.formulario.editar.php?idart=1'
El query que muestra es:
PHP:
SELECT idart, codigo, articulo FROM articulo WHERE idart=''
y ya no muestra el registro seleccionado. Cómo soluciono esto??
 

Los últimos temas