PHP - Error con formulario

   
Vista:
Imágen de perfil de diego

Error con formulario

Publicado por diego (1 intervención) el 11/09/2015 23:55:10
Buenas, soy un user nuevo, y necesito vuestra ayuda ya que al foro que voy está caído, como cosa rara, tengo un código el cual quiero que si dejan un campo vacío salga error, pero lo pruebo y en vez de salir el mensaje, no sale nada, acá el código.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
<?php
$html = true;
require_once '../includes/core.php';
$function->session("yes");
$function->hk_access();
$page = "2";
$page_name = "Ajustes";
$tinymce = true;
require_once 'templates/navi.php';
 
$newsid = $function->filter($_GET['username']);
if($_GET['do'] == "created"){
	$name = $function->filter($_POST['username']);
	$credits = $function->filternews($_POST['credits']);
	$vip_points = $function->filternews($_POST['vip_points']);
	$motto = $function->filter($_POST['motto']);
	$staff_pin = $function->filternews($_POST['staff_pin']);
	$referidos = $function->filternews($_POST['referidos']);
	$real_name = $function->filter($_POST['real_name']);
	$mail = $function->filter($_POST['mail']);
 
	//CHECKS
	$name_check = $function->name_check($name);
	$credits_check = $function->credits_check($credits);
	$vip_points_check = $function->vip_points_check($vip_points);
	$motto_check = $function->motto_check($motto);
	$staff_pin_check = $function->staff_pin_check($staff_pin);
	$referidos_check = $function->referidos_check($referidos);
	$real_name_check = $function->real_name_check($real_name);
	$mail_check = $function->mail_check($mail);
	if(empty($name) || empty($credits) || empty($vip_points) || empty($motto) || empty($staff_pin) || empty($referidos) || empty($real_name) || empty($mail)){ $message = "No has rellenado todos los campos."; }
 
	//fin de checks
 
mysql_query("UPDATE users SET credits = '{$credits}', vip_points = '{$vip_points}', motto = '{$motto}', staff_pin = '{$staff_pin}', referidos = '{$referidos}', real_name = '{$real_name}', mail = '{$mail}' WHERE username = '{$name}'");
	$message = "<div id=\"good\">Cambios efectuados correctamente <img src=\"". PATH_I ."/manage/images/check.gif\"></div> ";
	$_SESSION['RESULT_HK'] = $message;
}
 
 
?>
 
<div id="column_2">
 
<div id="box">
<div class="box_title blue">Creando una noticia</div>
<div class="in_box">
 
<form action="<?php echo PATH_HK; ?>/credits.php?do=created" method="post" name="theAdminForm" id="theAdminForm">
 
<table width='100%' cellspacing='0' cellpadding='5' align='center' border='0'>
<tr>
<td class='tablerow1'  width='40%'  valign='middle'><b>Usuario</b><div class='graytext'></div></td>
<td class='tablerow2'  width='60%'  valign='middle'><input type='text' name='username' size='30' class='textinput'></td>
</tr>
 
<tr>
<td class='tablerow1'  width='40%'  valign='middle'><b>Creditos</b><div class='graytext'></div></td>
<td class='tablerow2'  width='60%'  valign='middle'><input type='text' name='credits' size='30' class='textinput'></td>
</tr>
 
<tr>
<td class='tablerow1'  width='40%'  valign='middle'><b>Puntos</b><div class='graytext'></div></td>
<td class='tablerow2'  width='60%'  valign='middle'><input type='text' name='vip_points' size='30' class='textinput'></td>
</tr>
 
<tr>
<td class='tablerow1' width='40%' valign='middle'><b>Misión</b><div class='graytext'></div></td>
<td class='tablerow2'  width='60%'  valign='middle'><input type='text' name='motto' size='30' class='textinput'></td>
</tr>
 
<tr>
<td class='tablerow1' width='40%' valign='middle'><b>Pin de seguridad</b><div class='graytext'></div></td>
<td class='tablerow2'  width='60%'  valign='middle'><input type='text' name='staff_pin' size='30' class='textinput'></td>
</tr>
 
<tr>
<td class='tablerow1' width='40%' valign='middle'><b>Referidos</b><div class='graytext'></div></td>
<td class='tablerow2'  width='60%'  valign='middle'><input type='text' name='referidos' size='30' class='textinput'></td>
</tr>
 
<tr>
<td class='tablerow1' width='40%' valign='middle'><b>Twitter</b><div class='graytext'></div></td>
<td class='tablerow2'  width='60%'  valign='middle'><input type='text' name='real_name' size='30' class='textinput'></td>
</tr>
 
<tr>
<td class='tablerow1' width='40%' valign='middle'><b>Email</b><div class='graytext'></div></td>
<td class='tablerow2'  width='60%'  valign='middle'><input type='text' name='mail' size='30' class='textinput'></td>
</tr>
 
<tr>
</tr><tr><td align="center" class="tablesubheader" colspan="2"><input type="submit" name="submit" value="Guardar" class="realbutton" accesskey="s"></td></tr>
 
</tbody></table>
 
</div>
</form>
 
</div>
 
</div>
</div>
<div id="footer"><?php echo $info['footer']; ?></div>
 
</body>
</html>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

Error con formulario

Publicado por xve (5515 intervenciones) el 12/09/2015 10:55:04
Hola Diego, he intentado probar tu código, pero me da errores, ya que no dispongo de los archivos que se añaden, ni de las librerias...

De todas maneras, viendo tu código, no se muy bien donde validas los campos, ya que no veo ninguna llamada javascript, por lo que interpreto que recargas la pagina.... al recargarla, llamas a unas funciones que entiendo que hacen el check, pero en ningún lugar veo que muestres los errores...

La solución, seria que si alguno de los checks no se cumple, mostraras el error... por ejemplo, una manera muy básica, que no es la correcta seria algo así:
1
2
3
4
5
6
7
8
9
if(empty($name) || empty($credits) || empty($vip_points) || empty($motto) || empty($staff_pin) || empty($referidos) || empty($real_name) || empty($mail))
{
    // hay un error, no guardamos los datos
    echo "<div id=\"ko\">No has rellenado todos los campos.</div>";
}else{
    // no hay error, guardamos los datos
    mysql_query("UPDATE users SET credits = '{$credits}', vip_points = '{$vip_points}', motto = '{$motto}', staff_pin = '{$staff_pin}', referidos = '{$referidos}', real_name = '{$real_name}', mail = '{$mail}' WHERE username = '{$name}'");
    echo "<div id=\"good\">Cambios efectuados correctamente <img src=\"". PATH_I ."/manage/images/check.gif\"></div> ";
}

Lógicamente, lo suyo seria que mostrara el error encima del input que da el problema... pero este seria un primer paso...

Coméntanos si te sirve, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Error con formulario

Publicado por Error con formulario (1 intervención) el 13/09/2015 01:42:59
He estado en otro foro, a ver si me respondían y todos llegan a la misma conclusión, al final, que me cambie a PDO, así que eso haré, además el check me faltaba agregarlo, por eso.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar