Foros del Web » Programando para Internet » PHP »

Mejorar un script

Estas en el tema de Mejorar un script en el foro de PHP en Foros del Web. Hola!! Estoy haciendo un servicio y necesito el control de amistades: Tengo esto: Código PHP: //Comprobar si actualmente es el amigo $checkamistad1 = mysql_query ( "SELECT COUNT(*) FROM `sonramigos` WHERE `user`='"  .  $user  .  "' AND `amigo`='"  ...
  #1 (permalink)  
Antiguo 04/03/2009, 09:31
(Desactivado)
 
Fecha de Ingreso: marzo-2008
Mensajes: 641
Antigüedad: 16 años, 1 mes
Puntos: 7
Pregunta

Hola!!

Estoy haciendo un servicio y necesito el control de amistades:

Tengo esto:

Código PHP:
//Comprobar si actualmente es el amigo

$checkamistad1=mysql_query("SELECT COUNT(*) FROM `sonramigos` WHERE `user`='" $user "' AND `amigo`='" $useractual "'");

$checkamistad2=mysql_query("SELECT COUNT(*) FROM `sonramigos` WHERE `user`='" $useractual "' AND `amigo`='" $user "'");

$amistad1=mysql_result($checkamistad1,0);

$amistad2=mysql_result($checkamistad2,0);

$amistad=$amistad1 $amistad2;

//................



if($amistad==0){

echo 
"<form action='./sonrisa.php?user=$user&opcion=amistad' method='post'><input name='amistaddo' type='hidden' value='add'><input type='submit' name='amistadsubmit' value='Ser su amigo'></form>";

}else{

echo 
"<form action='./sonrisa.php?user=$user&opcion=amistad' method='post'><input name='amistaddo' type='hidden' value='del'><input type='submit' name='amistadsubmit' value='No ser su amigo'></form>";

}


}else{
//Hasta aquí--No somos enemigos y desde aquí hacia abajo, sí lo somos

echo "Este usuario es un enemigo tuyo, por lo cuál, no puedes ser su amigo hasta ser borrado de la lista de enmigos.<br /><br /><a href=\"./sonrisa.php?user=$useractual&opcion=amistad&do=verenemigos\">Ver lista de enemigos</a>";


}

}
//Hasta aquí el user no es el dueño.

}//--Finaliza switch de variable do

$amistaddo=$_POST['amistaddo'];

if(isset(
$amistaddo)){

echo 
"<br />Acción realizada con éxito<br />";

switch(
$amistaddo){

case 
"add":

mysql_query("INSERT INTO `sonramigos` (`user`,`amigo`) VALUES ('$user','$useractual')");

break;

case 
"del":

mysql_query("DELETE FROM `sonramigos` WHERE `user`='" mysql_real_escape_string($user) . "' AND `amigo`='" $useractual "'") or die (mysql_error());

mysql_query("DELETE FROM `sonramigos` WHERE `user`='" $useractual "' AND `amigo`='" mysql_real_escape_string($user) . "'") or die (mysql_error());

break; 
El problema es que cuando se pulsa sobre el botón "Ser su amigo", la página se recarga y vuelve a salir el mismo botón.

Si se pulsa de nuevo, por segunda vez, ya sale el botón de "No ser su amigo".

Y también al revés, hay que pulsar dos veces el de "No ser..." para que aparezca el de "Ser...".

Lo más curioso es que cuando se pulsa una vez y se accede a la URL, sin recargar la página, el botón ya cambia...

¿Cuál será el problema?

Si saben otro modo de realizar esto, agradecería que me lo dijeran...

Bueno, saludos y espero haberme explicado...

Intenté poner un header() después de realizar la acción add o del, pero claro... las cabeceras han sido enviadas mucho antes...

Saludos

Última edición por GatorV; 04/03/2009 a las 10:05
  #2 (permalink)  
Antiguo 04/03/2009, 12:00
 
Fecha de Ingreso: octubre-2004
Mensajes: 2.627
Antigüedad: 19 años, 6 meses
Puntos: 48
Respuesta: Mejorar un script

Procesa el formulario lo primero de tu script. Si te fijas estas leyendo el estado de la amistad antes de actualizarlo.
  #3 (permalink)  
Antiguo 04/03/2009, 14:00
(Desactivado)
 
Fecha de Ingreso: marzo-2008
Mensajes: 641
Antigüedad: 16 años, 1 mes
Puntos: 7
De acuerdo Amistad doble con php

Oh!

Muchísimas gracias... gracias por haberlo observado, yo no lo habría descubierto nunca.

Saludos

Edito: Ya está solucionado
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 10:16.