Foros del Web » Programando para Internet » PHP »

Cuadro oculto

Estas en el tema de Cuadro oculto en el foro de PHP en Foros del Web. hola tengo un problema, estoy haciendo un registro de usuarios, con todos sus campos y el codigo php. Funciona perfecto, lo malo es que al ...
  #1 (permalink)  
Antiguo 10/04/2009, 19:05
 
Fecha de Ingreso: julio-2008
Mensajes: 20
Antigüedad: 15 años, 9 meses
Puntos: 0
Cuadro oculto

hola tengo un problema, estoy haciendo un registro de usuarios, con todos sus campos y el codigo php. Funciona perfecto, lo malo es que al darle al boton de registrarse me lleva a otra pagina; no se como hacer para que los mensajes de "Ha habido un error al insertar los valores", "Los datos han sido introducidos satisfactoriamente", "Error, no ha introducido todos los datos"... se muestren en la misma pagina y no los muestre en otra. Yo lo intente creando una variable con el nombre de un cuadro tipo hidden, pero no me resulto. porfavor, me seria de gran ayuda...
estos es parte del codigo
$my_error = mysql_error($link);

if(!empty($my_error)) {

echo "Ha habido un error al insertar los valores. $my_error";

} else {

echo "Los datos han sido introducidos satisfactoriamente";

}

} else {

echo "Error, no ha introducido todos los datos";

}
  #2 (permalink)  
Antiguo 11/04/2009, 02:21
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Respuesta: Cuadro oculto

Mensaje movido al foro de PHP desde Bienvenida a Foros del Web.

Saludos,
  #3 (permalink)  
Antiguo 11/04/2009, 03:02
machoman112233
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Cuadro oculto

Algo simple...

Código php:
Ver original
  1. mysql_query($sql) or die ('No se han podido tramitar la consulta por la siguiente causa ' .mysql_error());

Código php:
Ver original
  1. if(!mysql_query($sql))
  2. {
  3. echo 'No se han podido tramitar la consulta por la siguiente causa ' .mysql_error();
  4. }
  5. else
  6. {
  7. echo 'Consulta tramitada correctamente.';
  8. }
  #4 (permalink)  
Antiguo 11/04/2009, 09:21
 
Fecha de Ingreso: julio-2008
Mensajes: 20
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Cuadro oculto

inserte el codigo pero no me funciono aqui mando el codigo completo a ver si me ayudan
<?

if(isset($_POST['username']) && !empty($_POST['username']) &&
isset($_POST['password']) && !empty($_POST['password']) &&
isset($_POST['nombre']) && !empty($_POST['nombre']) &&
isset($_POST['apellido']) && !empty($_POST['apellido']) &&
isset ($_POST['telefono']) && !empty($_POST['telefono']) &&
isset ($_POST['email']) && !empty($_POST['email'])) {

$link = mysql_connect("localhost","campinri_rincon","C@mp1 nRinc0nGr@nd3");
mysql_select_db("campinri_registro",$link);

mysql_query("INSERT INTO usuarios (username,password,nombre,apellido,telefono,email)
VALUES ('{$_POST['username']}','{$_POST['password']}','{$_POST['nombre']}','{$_POST['apellido']}','{$_POST['telefono']}','{$_POST['email']}')",$link);

$my_error = mysql_error($link);

if(!empty($my_error)) {

echo "Ha habido un error al insertar los valores. $my_error";

} else {

echo "Los datos han sido introducidos satisfactoriamente";

}

} else {

echo "Error, no ha introducido todos los datos";

}

?>
  #5 (permalink)  
Antiguo 11/04/2009, 09:41
 
Fecha de Ingreso: noviembre-2004
Mensajes: 159
Antigüedad: 19 años, 5 meses
Puntos: 0
Respuesta: Cuadro oculto

Hola Puedes Reemplazar en la parte que dice:

Código PHP:
mysql_query("INSERT INTO usuarios (username,password,nombre,apellido,telefono,email)
VALUES ('{$_POST['username']}','{$_POST['password']}','{$_POST['nombre']}','{$_POST['apellido']}','{$_POST['telefono']}','{$_POST['email']}')"
,$link); 
x algo más simplificado como te lo han puesto

Código PHP:

//query seria toda tu consulta
$sql="insert into.........";
mysql_query($sql) or die ('No se han podido tramitar la consulta por la siguiente causa ' .mysql_error()); 

y finalmente

Código PHP:
if(!mysql_query($sql))
{
echo 
'No se han podido tramitar la consulta por la siguiente causa ' .mysql_error();
}
else
{
echo 
'Consulta tramitada correctamente.';

Listo.. Ordenado.

Una observación agregale un escape de comillas a los datos que recibes de tu form
Código PHP:

addslashes
($_POST['username']) 
  #6 (permalink)  
Antiguo 11/04/2009, 17:06
 
Fecha de Ingreso: julio-2008
Mensajes: 20
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Cuadro oculto

Gracias por la ayuda, use el codigo pero me sigue llevando a otra pagina y la ultima parte de addslashes hice esto no se si es lo correcto pro me da error.
if(isset($_POST['username']) && addslashes($_POST['username']) &&
  #7 (permalink)  
Antiguo 11/04/2009, 17:36
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 16 años, 5 meses
Puntos: 18
Respuesta: Cuadro oculto

si lo que necesitas es tener una página form.php y otro procesador.php y mostrar en el primero los errores que pueda ocurrir en el seundo entonces harías de la siguiente forma
estructura básica de procesador.php
Código PHP:
if(isset($_POST['dato']))
{
if(!empty(
$_POST['dato']))
{
//conexion y seleccion de BD
$dato=mysql_real_scape_strin($_POST['dato']);
$sql="INSERT INTO t(c) VALUES('$dato')";
mysql_query($sql,$conn);
if(
mysql_affected_rows()>0)
{
header("Location:form.php?ok=se insertó");
exit;
}
else
{
header("Location:form.php?error=no se pudo insertar");
exit;
}
}
else
{
header("Location:form.php?error=no puede quedar en blanco");
exit;
}
}
else
{
header("Location:form.php");
exit;

en la página del form en la parte superior recuperas asi
Código PHP:
<?php
if(isset($_GET['ok']))
{
echo 
strip_tags($_GET['ok']);
}
if(isset(
$_GET['error']))
{
echo 
strip_tags($_GET['error']);
}
?>
<form action="procesador.php" method="post">
<input type="text" name="dato" />
<input type="submit" value="Insertar" />
</form>
aquí yo directamente le he pasado los mensajes por método get, pero puedes utilizar alguna función para codificar diicho mensaje y decodificar al momento de mostrarlo.

suerte.
__________________
Software libre para un mundo libre.

Eventualmente en el foro.
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:26.