Foros del Web » Programando para Internet » PHP »

Error en un código PHP?

Estas en el tema de Error en un código PHP? en el foro de PHP en Foros del Web. Hola a todos. Estoy haciendo un código PHP donde un javascript me detecta el país donde estoy y entonces, según el país, muestro un número ...
  #1 (permalink)  
Antiguo 28/02/2013, 10:20
 
Fecha de Ingreso: septiembre-2011
Mensajes: 60
Antigüedad: 12 años, 6 meses
Puntos: 1
Pregunta Error en un código PHP?

Hola a todos.
Estoy haciendo un código PHP donde un javascript me detecta el país donde estoy y entonces, según el país, muestro un número u otro.

Como estoy en España, el JavaScript me muestra "ES". Así que he igualado eso a la variable $country_code, y he planteado la siguiente condición:
Código PHP:
<script type="text/javascript" src="http://j.maxmind.com/app/geoip.js"></script> // JAVASCRIPT
<?php
    $country_code 
'<script type="text/javascript">document.write (geoip_country_code());</script>';
    if (
$country_code == 'ES') {
        
$ISO '61';
    } else {
        
$ISO '62';
    };
?>
Pero el problema es que $ISO me muestra el número "62", o sea, que me esta diciendo que $country_code != 'ES'

Pero he comprobado lo que hay en $country_code con:
Código PHP:
echo "$country_code"
Y me devuelve "ES"

Entonces no entiendo cual es el problema.
Sabéis donde puede estar? Gracias
  #2 (permalink)  
Antiguo 28/02/2013, 10:25
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 15 años, 11 meses
Puntos: 2534
Respuesta: Error en un código PHP?

Estás combinando lenguaje en contextos totalmente incompatibles, no es un error de php, es un error humano.

No puedes mezclarlos de esta forma ya que PHP se ejecuta en el servidor y Javascript en el cliente, si fueras mi alumno ya te hubiera hecho repetir curso.

No es que al imprimir $country_code devuelva "ES" es que en realidad imprimes el código Javascript que trae consigo y por ende se ejecuta imprimiendo "ES", al verlo en el navegador obviamente parece que estás obteniendo ese valor, pero eso no es cierto.

En resumen PHP se ejecuta primero, entonces lo que ves en tu pantalla es únicamente el HTML que se generó, incluyendo Javascript.

Para que puedas ver tu error con claridad has esto:
Código PHP:
echo htmlspecialchars($country_code); 
Y verás que no es para nada "ES".
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 28/02/2013, 10:34
 
Fecha de Ingreso: septiembre-2011
Mensajes: 60
Antigüedad: 12 años, 6 meses
Puntos: 1
Respuesta: Error en un código PHP?

Cita:
Iniciado por pateketrueke Ver Mensaje
Estás combinando lenguaje en contextos totalmente incompatibles, no es un error de php, es un error humano.

No puedes mezclarlos de esta forma ya que PHP se ejecuta en el servidor y Javascript en el cliente, si fueras mi alumno ya te hubiera hecho repetir curso.

No es que al imprimir $country_code devuelva "ES" es que en realidad imprimes el código Javascript que trae consigo y por ende se ejecuta imprimiendo "ES", al verlo en el navegador obviamente parece que estás obteniendo ese valor, pero eso no es cierto.

En resumen PHP se ejecuta primero, entonces lo que ves en tu pantalla es únicamente el HTML que se generó, incluyendo Javascript.

Para que puedas ver tu error con claridad has esto:
Código PHP:
echo htmlspecialchars($country_code); 
Y verás que no es para nada "ES".
Ok, muchas gracias. Se me olvidó aclarar que soy principiante en esto del PHP y no estoy dando ningún cursillo, sólo estoy aprendiendo de mis errores y preguntando (como ahora).. Por lo que perdonen mi ignorancia, pero...
Cómo podría hacer para que $country_code (en PHP) tuviese el valor "ES" para España entonces?

Gracias!
  #4 (permalink)  
Antiguo 28/02/2013, 10:39
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 15 años, 11 meses
Puntos: 2534
Respuesta: Error en un código PHP?

Entonces necesitas conseguir una librería de GeoIP que funcione con PHP, si quieres seguir usando la de Javascript sencillamente no conviene.

Bien podrías pasar el valor por Ajax pero no tiene sentido, ya que la idea es procesar el idioma mucho antes de comenzar las impresiones de contenido del lado del servidor.

Te invito a buscar al respecto: PHP GeoIP
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 28/02/2013, 10:52
 
Fecha de Ingreso: septiembre-2011
Mensajes: 60
Antigüedad: 12 años, 6 meses
Puntos: 1
Respuesta: Error en un código PHP?

Hmm ok
He encontrado algo al respecto. Utilizando geoip_country_code_by_name()
Pero para que funcione, dentro de (), imagino que tendrá que ir el servidor que me proporcione la información no? (me imagino)
Y si es así, hay algún servidor que proporcione esta información o he de encontrar la información en internet y meterla en mi servidor?

No se si me he explicado bien

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:42.