Validar Radiobutton e inconvenente en la inserción

Expert@s tengo el siguiente código de validación si hay campos vacíos o no en Php:
if($_POST['Nombre5'] == "")
{
echo "<script>alert(\"Debes de digitar el Nombre.\");</script>";
}
elseif ($_POST['Apellido5'] == "")  {
echo "<script>alert(\"Debes de digitar el Apellido.\");</script>";  }
elseif ($_POST['Email5'] == "")  {
echo "<script>alert(\"Debes de digitar el Email.\");</script>";  }
elseif ($_POST['Pais_Ciudad5'] == "")  {
echo "<script>alert(\"Debes de digitar la ciudad y el pais \");</script>";  }
//Aqui esta el error $_POST['radio'] es un radio button y no me valida si esta vacio o no
elseif ($_POST['radio'] == 0  or $_POST['radio'] == "")  {
echo "<script>alert(\"Debes de  seleccionar una de las opciones Si o No. \");</script>";  }
elseif ($_POST['Mensaje5'] == "")  {
echo "<script>alert(\"Favor digite un mensaje en el correspondiente campos de mensaje \");</script>";  }
El anterior código Php valida si los campos dentro de la página web antes de dar clic están vacíos, debe de mandarme un mensaje que diga que no debe de dejarlos vacíos el problema que hay es en la linea en donde se valida el radio, (Son 2 radio buttons) que si el usuario no ha seleccionado ninguno de los dos debe de aparecer un mensaje que diga que debe seleccionar Si o No que son los dos radio buttons, el problema es que me muestra el mensaje (\"Debes de digitar la ciudad y el país \") que es el anterior y no me muestra el mensaje:
(\"Debes de seleccionar una de las opciones Si o No. \")
Y por otra parte que instrucción debo de incluir para evitar que al refrescar la página web, automáticamente me inserte un registro en blanco a la base de datos, necesito que solamente se inserten registros cuando el usuario ha dado clic en el botón y no cuando la página web se active o se cargue.
Que pena aprovecharme de tu nobleza pero es que necesito arreglar esos dos inconvenientes para así continuar con el desarrollo de un proyecto.

1 Respuesta

Respuesta
1
Creo que tienes un error de escritura, mira la siguiente línea con atención:
elseif ($_POST['radio'] == 0  or $_POST['radio'] == "")  {
Como podes ver, estas ingresando radio como nombre del input de tipo radio, revisa atentamente el código del formulario y checa los nombres de los inputs de tipo radio.
Te dejo un simple código que hice recién para validar un input de tipo radio mediante PHP:
Archivo radio.html:
<form action="validar.php" method="post" target="_blank">
<input type="radio" name="ciudad" value="1" />Mar del Plata
<input type="radio" name="ciudad" value="2" />Azul
<input type="radio" name="ciudad" value="3" />Olavarria
<input type="radio" name="ciudad" value="4" />La Plata
<input type="submit" name="enviar" value="Validar" />
</form>
Archivo validar.php:
<?php
$ciudad = @$_POST['ciudad'];
if(!$ciudad){
    echo "No has seleccionado ninguna ciudad!";
}else{
    echo "Has seleccionado la ciudad n&uacute;mero " . $ciudad;
}
?>
Igualmente, es buena práctica también validar los datos del lado del cliente mediante Javascript, si los datos los válida correctamente Javascript, se los válida del lado del servidor mediante PHP por seguridad, ya que no es difícil saltarse las validaciones en Javascript mediante un proxy local HTTP/HTTPS, pero este tema no viene al caso.
Sobre tu otra pregunta, sencillamente puedo decirte que revises bien tu código, verifica primero, luego inserta los datos, creo que probablemente ahí tengas otro problema de escritura, te dejo un ejemplo basado en el ejemplo anterior, donde ahora se verifican los inputs de tipo radio en un mismo archivo:
Archivo formulario.php:
<?php
if(isset($_POST['enviar'])){
    $ciudad = @$_POST['ciudad'];
    if(!$ciudad){
        echo "No has seleccionado ninguna ciudad!";
    }else{
        echo "Has seleccionado la ciudad n&uacute;mero " . $ciudad;
    }
}else{
?>
<form action="formulario.php" method="post" target="_self">
<input type="radio" name="ciudad" value="1" />Mar del Plata
<input type="radio" name="ciudad" value="2" />Azul
<input type="radio" name="ciudad" value="3" />Olavarria
<input type="radio" name="ciudad" value="4" />La Plata
<input type="submit" name="enviar" value="Validar" />
</form>
<?php
}
?>
Mira atentamente, que hago uso de la función isset para determinar si la variable enviar (input de tipo submit) ha sido definida, en pocas palabras, verifico si se ha presionado el botón Validar, si se ha presionado válido los inputs de tipo radio, en caso contrario, muestro el formulario.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas