Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/02/2014, 19:45
raulgranadosraul
 
Fecha de Ingreso: julio-2013
Mensajes: 174
Antigüedad: 10 años, 9 meses
Puntos: 1
simbolo & de mas en parametros enviados por get

Hola a todos, amigos del web.

Tengo un problema con un insert. Llevo bastantes paginas hechas y no me había pasado antes este problema. El caso es que tengo un form con un insert para añadir citas a los clientes. Todo funciona correctamente pero al final de la url de destino me envía un "&" de más. Esto es lo que recibo:

Código HTML:
http://www.pagina.es/agenda.php?nuevo_mes=02&nuevo_ano=2014&dia_actual=16&
Como ven al final de la cadena me repite un "&". En realidad no me da problema para navegar, insertar y consultar.

El problema ha surgido porque quiero que cuando se inserte la cita en la tabla me vaya a la página del día (que es la de arriba), a un div determinado. Al tener un "&" al final de la cadena me muestra esto:

Código HTML:
http://www.pagina.es/agenda.php?nuevo_mes=02&nuevo_ano=2014&dia_actual=16#citasDiv&
Y ahi radica mi problema, al tener un "&" despues de la llamada al ancla no me muestra el div del ancla, se me pone al principio de la pagina como sería normalmente.

No tengo ni idea de como solucionarlo. Les pego código a ver si me pueden echar una mano.

Este es el INSERT:
Código PHP:
$nombre $row_Datos['txtNombre'];
$apellidos $row_Datos['txtApellidos'];
$id $row_Datos['idCliente'];
$tipo $_POST['Tipo'];
$comentario $_POST['txtComentario'];
$tratamiento $row_Precio["txtPrecio"];
$precio $_POST["txtPrecio"];

if ((isset(
$_POST["MM_insert"])) && ($_POST["MM_insert"] == "form9")) {
  
$insertSQL sprintf("INSERT INTO Citas_tbl (idCita, txtNombre, txtApellidos, txtTratamiento, txtComentario, datDia, txtCita, txtPrecio, idNombre) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s)",
                       
GetSQLValueString($_POST['idCita'], "int"),
                       
GetSQLValueString($nombre"text"),
                       
GetSQLValueString($apellidos"text"),
                       
GetSQLValueString($tipo"text"),
                       
GetSQLValueString($comentario"text"),
                       
GetSQLValueString($_POST['datDia'], "date"),
                       
GetSQLValueString($_POST['txtCita'], "text"),
                       
GetSQLValueString($precio"text"),
                       
GetSQLValueString($id"int"));

  
mysql_select_db($database_opencel$opencel);
  
$Result1 mysql_query($insertSQL$opencel) or die(mysql_error());

  
$dia=$_POST['datDia'];
  
$fecha=explode("-"$dia);

  
$ano=$fecha[0];
  
$mes=$fecha[1];
  
$dia=$fecha[2];

  
$insertGoTo "agenda.php?nuevo_mes=".$mes."&nuevo_ano=".$ano."&dia_actual=".$dia."#citasDiv";
  if (isset(
$_SERVER['QUERY_STRING'])) {
    
$insertGoTo .= (strpos($insertGoTo'?')) ? "&" "?";
    
$insertGoTo .= $_SERVER['QUERY_STRING'];
  }
  
header(sprintf("Location: %s"$insertGoTo));

Nunca me había encontrado con un problema de programación así.... sobretodo porque no se qué pasa.

¿Alguna idea?
Gracias