Error con formulario

Iniciado por araque615, 12 Septiembre 2015, 00:16 AM

0 Miembros y 2 Visitantes están viendo este tema.

araque615

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.

Código (php) [Seleccionar]
<?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;
}


?>

Código (html4strict) [Seleccionar]
<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>


Mod: Temas sobre PHP van al subforo de PHP.

Thryks

#1
Porqué no pruebas con un if y isset? Algo así:
;-)
Código (php) [Seleccionar]

if (!isset($_GET['$idarecoger']) || empty($_GET['$idarecoger'])) {
//Codigo de error
}
else  {
//Código a ejecutar en caso de que exista
}


Pruébalo y nos cuentas. Saludos
Futuro Sysadmin

araque615

#2
No lo entiendo, podrías aplicarlo con el código que he dado? por fa, más o menos me doy una idea, pero no logro ver...

Thryks

#3
Claro, perdona

Código (php) [Seleccionar]
//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);
//------Esto de abajo--------
if((!isset($name) || empty($name)) || (!isset($credits) || empty($credits))){ $message = "No has rellenado todos los campos."; }
//---------------- Y así con los demás campos-------------
//fin de checks


PD: Lo he editado que se me abían olvidado los simbolos de distinto
Futuro Sysadmin

araque615

#4
Sigue igual, podríamos hablar por skype? censurado ese es mi skype


Mod: Prohibido dar datos personales como correo o cuentas de mensajería.

Thryks

#5
Perdon, con el sueño no lograba encontrar el fallo, yo creo que es una tonteria, es que en el empty le falta unos parentesis más, reemplaza el codigo así:
Código (php) [Seleccionar]
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."; }

Pruebalo y nos cuentas.
PD: Si no funciona así incluso intenta en vez de comprobar las variables definidas comprobar el get desde el form es decir algo así:

Código (php) [Seleccionar]

if((empty($_POST['idcampoform'])){
echo 'Campo vacio';
}
else {
echo 'Codigo a ejecutar';
}
Futuro Sysadmin

araque615

#6
Ninguna de las dos

Thryks

Cita de: araque615 en 12 Septiembre 2015, 01:15 AM
Ninguna de las dos
Prueba a aislar el codigo que te he dado y usarlo con otro form y otras variables aver si el error está en el codigo que te he dado o en lo demás porque sinceramente yo lo he probado en mi equipo con un formulario mio y funciona perfectamente, es muy raro, sino tienes la opción de meterlo en un ide y que te diga que re falla y simo pues espera a que algun profesional del foro te.conteste porque yo x lo que veo estoy bastante verde en esto.
Futuro Sysadmin

araque615

#8
Podrías pasarme el form que tu usas?

0roch1

#9
Cita de: Thryks en 12 Septiembre 2015, 00:28 AM
Porqué no pruebas con un if y isset? Algo así:

Código (php) [Seleccionar]

if (!isset($_GET['$idarecoger']) || empty($_GET['$idarecoger'])) {
//Codigo de error
}
else  {
//Código a ejecutar en caso de que exista
}


No puedes hacer $_GET['$idarecoger'] en todo caso tendría que ser así a menos de que el campo en realidad tenga el caracter $, creo que te haz confundido y haz querido decir $_GET['idarecoger'].



Cita de: Thryks en 12 Septiembre 2015, 01:08 AM
Perdon, con el sueño no lograba encontrar el fallo, yo creo que es una tonteria, es que en el empty le falta unos parentesis más, reemplaza el codigo así:

Código (php) [Seleccionar]

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."; }

Pruebalo y nos cuentas.
PD: Si no funciona así incluso intenta en vez de comprobar las variables definidas comprobar el get desde el form es decir algo así:

if((empty($_POST['idcampoform'])){
echo 'Campo vacio';
}
else {
echo 'Codigo a ejecutar';
}


Creo que lo estás confundiendo, en tu primer ejemplo usaste GET y en este último usas POST.


Intenta con lo siguiente.

index.htm
Código (html4strict) [Seleccionar]

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Formulario</title>
</head>
<body>
<form id="formulario" name="formulario" action="guardar.php" method="GET" >
<input type="text" name="input1" id="input1"/>
   </br>
   <button id="enviar" type="submit">Guardar</button>
</form>
</body>
</html>


guardar.php
Código (php-brief) [Seleccionar]

<?php

 
if(isset($_GET['input1'])){ //isset — Determina si una variable está definida y no es NULL
 echo "<br>La variable \$_GET['input1'] esta definida";
 if(!empty($_GET['input1'])) { //empty — Determina si una variable está vacía
 echo "<br>La variable \$_GET['input1'] no esta vacia";
 }else {
 echo "<br>La variable \$_GET['input1'] esta vacia";
 }
 }else {
 echo "<br>La variable \$_GET['input1'] no esta definida";
 }
?>