Foros del Web » Programando para Internet » PHP »

Funciona en Chrome y no en Firefox e IE

Estas en el tema de Funciona en Chrome y no en Firefox e IE en el foro de PHP en Foros del Web. Buenas a todos, resulta que estoy creando un sistema de confirmaciones para una liga de f1 virtual. Es un sistema de logueo por base de ...
  #1 (permalink)  
Antiguo 30/03/2013, 18:35
 
Fecha de Ingreso: noviembre-2011
Mensajes: 19
Antigüedad: 12 años, 5 meses
Puntos: 1
Funciona en Chrome y no en Firefox e IE

Buenas a todos, resulta que estoy creando un sistema de confirmaciones para una liga de f1 virtual.

Es un sistema de logueo por base de datos para identificar y luego un boton que sube unos datos a la base de datos segun el usuario.

Todo esto funciona correctamente en Chrome, pero en IE y firefox nada de nada.

Os dejo el codigo

Código PHP:
<?php
// Configura los datos de tu cuenta
$dbhost='xxxxx';
$dbusername='xxxxx';
$dbuserpass='xxxx';
$dbname='xxxx';
session_start();
// Conexión a la base de datos
mysql_connect ($dbhost$dbusername$dbuserpass);
mysql_select_db($dbname) or die('Cannot select database');
?>
<style type="text/css">
body {
        background-color:transparent;
    }
#confirmarsi {
    border: 1px solid #006;
    background: #9cf;
}
#confirmarno {
    border: 1px solid #006;
    background: #9cf;
}
#fecha2 {
    color: #0F0;
}
#fecha {
    color: #F00;
}
#id {
    color: #F00;
}
#fechasi {
    color: #0F0;
}
.letraforo {
    color: #F96;
    font-family: Arial, Helvetica, sans-serif;
    font-weight: bold;
    font-size: medium;
    font-style: italic;
}
.stylesi {
    color: #00F400;
    font-size: Medium; 
    font-weight: bold;
    display: inline-block;
}
.styleno {
    color: #FF0000;
    font-size: Medium; 
    font-weight: bold;
    display: inline-block;
}
#apDiv1 {
    position: absolute;
    width: 97px;
    height: 26px;
    z-index: 1;
    left: 615px;
    top: 19px;
}
#apDiv2 {
    position: absolute;
    width: 94px;
    height: 27px;
    z-index: 2;
    left: 507px;
    top: 18px;
}
piloto {
    font-size: medium;
}
</style>
<?php
session_start
();
if (isset(
$_POST['username'])) {
// Configura los datos de tu cuenta
$dbhost='localhost';
$dbusername='oqadfyrr_franf1';
$dbuserpass='telefono';
$dbname='oqadfyrr_scn';
if (
$_POST['username']) {
//Comprobacion del envio del nombre de usuario y password
$username=$_POST['username'];
$password=$_POST['password'];
if (
$password==NULL) {
echo 
"La password no fue enviada";
echo 
'<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="refresh" 
content="2;URL=/scn/login.php">'
;
}else{
$query mysql_query("SELECT username,password FROM users WHERE username = '$username'") or die(mysql_error());
$data mysql_fetch_array($query);
if(
$data['password'] != $password) {
echo 
"Login incorrecto";
echo 
'<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="refresh" 
content="2;URL=/scn/login.php">'
;
}else{
$query mysql_query("SELECT username,password FROM users WHERE username = '$username'") or die(mysql_error());
$row mysql_fetch_array($query);
$_SESSION["s_username"] = $row['username'];
}}}}
?>
<form name="confirmarsi1" method="post">
<?php
function get_date_spanish$time$part false$formatDate '' ){
    
date_default_timezone_set('Europe/Madrid');
    
#Declare n compatible arrays
    
$month = array("","enero""febrero""marzo""abril""mayo""junio""julio""agosto""septiempre""diciembre");#n
    
$month_execute "n"#format for array month
    
$month_mini = array("","ENE""FEB""MAR""ABR""MAY""JUN""JUL""AGO""SEP""DIC");#n
    
$month_mini_execute "n"#format for array month
    
$day = array("domingo","lunes","martes","miércoles","jueves","viernes","sábado"); #w
    
$day_execute "w"
    
$day_mini = array("DOM","LUN","MAR","MIE","JUE","VIE","SAB"); #w
    
$day_mini_execute "w";
/*
Other examples:
    Whether it's a leap year
    $leapyear = array("Este año febrero tendrá 28 días"."Si, estamos en un año bisiesto, un día más para trabajar!"); #l
     $leapyear_execute = "L";
*/
    #Content array exception print "HOY", position content the name array. Duplicate value and key for optimization in comparative
    
$print_hoy = array("month"=>"month""month_mini"=>"month_mini");
    if( 
$part === false ){
        return 
'<strong><spam class="stylesi">Confirmo el: ' date("d"$time) . " de " $month[date("n",$time)] . ", "date("H:i",$time) .' horas</spam></strong>';
    }elseif( 
$part === true ){
        if( ! empty( 
$print_hoy[$formatDate] ) && date("d-m-Y"$time ) == date("d-m-Y") ) return "HOY"#Exception HOY
        
if( ! empty( ${$formatDate} ) && !empty( ${$formatDate}[date(${$formatDate.'_execute'},$time)] ) ) return ${$formatDate}[date(${$formatDate.'_execute'},$time)];
        else return 
date($formatDate$time);
    }else{
        return 
date("d-m-Y H:i"$time);
    }
}
if (isset(
$_POST["confirmarsi"])) {
// Configura los datos de tu cuenta
$dbhost='localhost';
$dbusername='oqadfyrr_franf1';
$dbuserpass='telefono';
$dbname='oqadfyrr_scn';
$logueado=$_SESSION['s_username'];
$fecha=get_date_spanish(time());
mysql_connect ($dbhost$dbusername$dbuserpass);
mysql_select_db($dbname) or die('Cannot select database');
$insertar "UPDATE articulos SET fecha='$fecha' WHERE piloto='$logueado'"
$insertado1 mysql_query($insertar) or die ("No se mando la consulta, contacta con Franf1");
$fila mysql_fetch_array($insertado1);
echo 
'<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="refresh" 
content="2;URL=/scn/confirmaciones2.php">'
;
}
?>

  <?php
if (isset($_POST["confirmarno"])) {
// Configura los datos de tu cuenta
$dbhost='localhost';
$dbusername='oqadfyrr_franf1';
$dbuserpass='telefono';
$dbname='oqadfyrr_scn';
$fecha =  '<strong><spam class="styleno">No asistire a carrera</spam></strong>';
$logueado2=$_SESSION['s_username'];
mysql_connect ($dbhost$dbusername$dbuserpass);
mysql_select_db($dbname) or die('Cannot select database');
$insertar2 "UPDATE articulos SET fecha='$fecha' WHERE piloto='$logueado2'"
$insertado2 mysql_query($insertar2) or die ("No se mando la consulta, contacta con Franf1.");
$fila mysql_fetch_array($insertado2);
echo 
'<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="refresh" 
content="2;URL=/scn/confirmaciones2.php">'
;
}

?>

<div style="display: block; margin-left: auto; margin-right: auto;" id="apDiv2">
  <input type="submit" id="confirmarsi" value="Confirmar"/>
</div>
</form>
<form name="confirmarno1" method="post">
  <div style="display: block; margin-left: auto; margin-right: auto;" id="apDiv1">
    <input type="submit" value="No confirmar" id="confirmarno" />
</div>
</form>
Aqui la pagina donde se encuentra: http://tvmalaguista.es/scn/login.php
Podeis probarlo con franf1 y 123456

Desde ya muchas gracias por su tiempo y ayuda.
  #2 (permalink)  
Antiguo 30/03/2013, 18:55
Avatar de Rodrhigo  
Fecha de Ingreso: septiembre-2011
Ubicación: Temuco-Valdivia-Osorno
Mensajes: 254
Antigüedad: 12 años, 7 meses
Puntos: 48
Respuesta: Funciona en Chrome y no en Firefox e IE

entre a la pagina y logre loguearme sin problema en Chrome, firefox 19, IE 10 , Ademas los 3 browsers se comportaron igual.
podrias especificar un poquito más tu problema para poder ayudarte.
  #3 (permalink)  
Antiguo 30/03/2013, 19:29
 
Fecha de Ingreso: noviembre-2011
Mensajes: 19
Antigüedad: 12 años, 5 meses
Puntos: 1
Respuesta: Funciona en Chrome y no en Firefox e IE

El problema llega cuando pinchamos en el boton "confirmar" o "No confirmar."
Chrome si actualiza la base de dato pero IE y Firefox no, la verdad es que es extraño.

Muchas gracias.
  #4 (permalink)  
Antiguo 30/03/2013, 20:45
Avatar de portalmana  
Fecha de Ingreso: septiembre-2007
Ubicación: Montevideo-Uruguay
Mensajes: 633
Antigüedad: 16 años, 7 meses
Puntos: 80
Respuesta: Funciona en Chrome y no en Firefox e IE

Yo lo primero que haría, es que valide el HTML que parece muy desprolijo.

Luego si me fijaría en ver si funciona o no en todos los navegadores.

Saludos
__________________
"La imaginación es más importante que el conocimiento. El conocimiento es limitado, mientras que la imaginación no" -- A.Einstein
objetivophp.com,twitter.com/objetivophp
  #5 (permalink)  
Antiguo 30/03/2013, 21:07
Avatar de Rodrhigo  
Fecha de Ingreso: septiembre-2011
Ubicación: Temuco-Valdivia-Osorno
Mensajes: 254
Antigüedad: 12 años, 7 meses
Puntos: 48
Respuesta: Funciona en Chrome y no en Firefox e IE

puede que chrome haya almacenado la pagina en cache para cuando esta funcionaba.

porque la verdad dudo que asi como esta funcione, si te fijas en el nombre de tu formulario veras que uno de estos se llama confirmarsi1(notese el 1) y tu desde php preguntas:
if (isset($_POST["confirmarsi"])) {......interactuar con la base de datos

nunca entra a ese if por lo tanto nunca "actualiza la base de dato".
prueba ponerle un 1 a $_POST["confirmarsi"] ( $_POST["confirmarsi1"] )
  #6 (permalink)  
Antiguo 31/03/2013, 03:46
 
Fecha de Ingreso: noviembre-2011
Mensajes: 19
Antigüedad: 12 años, 5 meses
Puntos: 1
Respuesta: Funciona en Chrome y no en Firefox e IE

Gracias a los dos

Probe con el 1 pero nada, en teoria hay deberia ponerse el imput no¿?

Código PHP:
  <input type="submit" id="confirmarsi" value="Confirmar"/> 
He borrado el cache de chrome y ahora no funciona, la verdad no se que pasa porque en algun momento si funciono...

Por cierto he mirado el log de php y salta el error
Código:
PHP Warning:  session_start() [<a href='function.session-start'>function.session-start</a>]: Cannot send session cache limiter - headers already sent (output started at public_html/scn/confirmaciones.php:2) in public_html/scn/confirmaciones.php on line 8
Muchas gracias por su ayuda
  #7 (permalink)  
Antiguo 31/03/2013, 09:43
Avatar de Rodrhigo  
Fecha de Ingreso: septiembre-2011
Ubicación: Temuco-Valdivia-Osorno
Mensajes: 254
Antigüedad: 12 años, 7 meses
Puntos: 48
Respuesta: Funciona en Chrome y no en Firefox e IE

para que las variables sean enviadas al servidor deben el atributo name y solo estas colocando el id por lo que estas nunca llegaran a tu servidor.

esta super desordenado tu codigo.... asi que te pondre un ejemplo de formulario:

Código PHP:
Ver original
  1. <?php
  2. //la variable que recibiremos sera 'mi_respuesta'
  3. //esta se enviara de forma oculta(hidden)
  4. if(isset($_POST['mi_respuesta'])){
  5.     if($_POST['mi_respuesta']=='si'){
  6.         echo "<h1>Gracias por confirmarmos que SI asistiras</h1>";
  7.         //agregar a la base de datos esta confirmacion...
  8.     }elseif($_POST['mi_respuesta']=='no'){
  9.         echo "<h1>Una lastima que NO asistas</h1>";
  10.     }
  11. }
  12. ?>
  13.  
  14. <form action="" method="post" name="formulario" id="formulario">
  15.     <input type="button" value="Asistire" onclick="formulario.mi_respuesta.value ='si';formulario.submit(); " />
  16.     <input type="button" value="No Asistire" onclick="formulario.mi_respuesta.value ='no';formulario.submit();"/>
  17.     <input type="hidden" name="mi_respuesta" id="mi_respuesta" value="" />
  18. </form>
  #8 (permalink)  
Antiguo 31/03/2013, 11:45
 
Fecha de Ingreso: noviembre-2011
Mensajes: 19
Antigüedad: 12 años, 5 meses
Puntos: 1
Respuesta: Funciona en Chrome y no en Firefox e IE

Muchas gracias, la verdad que esa parte funciona perfecta y asi no tendre problemas en el futuro.

El error viene que no introduce el update a la base de datos y creo que es problema del
$logueado al loguearte si está, pero luego para otra accion, como la de pulsar el boton asistire, la funcion
Código PHP:
$logueado=$_SESSION['s_username']; 
ya no esta definida.

Tambien me di cuenta de esto porque al loguarme y estar en la pagina de confirmaciones, al actualizar mi nombre se pierde, o sea de piloto logueado: queda en blanco.

Ahora mi pregunta es, como puedo hacer que no se pierda la variable he intentado guardandola asi $_SESSION["s_username"] = $_POST['username']; pero no funciona

No se si me equivoco pensando esto pero tiene toda la pinta de ser el problema....

Muchas gracias por su ayuda!!
  #9 (permalink)  
Antiguo 02/04/2013, 15:40
 
Fecha de Ingreso: noviembre-2011
Mensajes: 19
Antigüedad: 12 años, 5 meses
Puntos: 1
Respuesta: Funciona en Chrome y no en Firefox e IE

He estado mirando cosas sobre las sesiones pero no me queda nada claro... a ver si me podeis dar alguna idea, muchas gracias
  #10 (permalink)  
Antiguo 02/04/2013, 17:00
Avatar de Rodrhigo  
Fecha de Ingreso: septiembre-2011
Ubicación: Temuco-Valdivia-Osorno
Mensajes: 254
Antigüedad: 12 años, 7 meses
Puntos: 48
Respuesta: Funciona en Chrome y no en Firefox e IE

es que tu codigo esta HORRIBLE :P....

Te recomiendo ver este sistema de logueo

Cualquier duda crea un nuevo tema con tu pregunta especifica para que otros te puedan ayudar.
  #11 (permalink)  
Antiguo 02/04/2013, 18:55
 
Fecha de Ingreso: mayo-2012
Ubicación: República Dominicana
Mensajes: 37
Antigüedad: 12 años
Puntos: 4
Respuesta: Funciona en Chrome y no en Firefox e IE

¿Por qué no mejor usas MySQLI?, y tu código está muy desorganizado, envía MP con tu skype/msn y te puedo ayudar :)

Etiquetas: chrome, firefox, mysql, select, sql
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 04:25.