Autor Tema: Validar formulario usando PHP - Crear tabla en MYSQL con PHP  (Leído 12199 veces)

jga

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 31
    • Ver Perfil
Hola gente que hay de nuevo, estoy aprendiendo con php y estoy haciendo un ejercicio para crear una tbla en una base de datos a traves de php todo ello , y el problema que tengo es el siguiente : restringir que en dos de los campos del formulario  que van a rellenar la tabla , no se permita introducir caracteres numericos , es decir que en los campos nombre y apellidos para ser mas concretos se obligue a introducir solo letras para ello uso estos codigos

HTML / PHP
Código: [Seleccionar]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link rel="stylesheet" type="text/css" href="estilos.css" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
</head>

<body>
<?php
include "cabecera.html"
?>

<div id="principal">
<form action="recibe opinion.php" method="post">
  <p>
    <label>Nombre
      <input required="required" type="text" name="nombre" id="textfield" />
    </label>
    <label><br />
      <br />
      Apellidos
      <input required="required" name="apellidos" type="text" />
    </label>
    <label><br />
      <br />
      Deje su opinion<br />
      <textarea required="required" name="texto" cols="50"></textarea>
    </label>
  </p>
  <p>
    <input type="submit" name="boton" id="button" value="Enviar" />
  </p>
</form>
</div>
<?php
include "pie.html"
?>


</body>
</html>



PHP

Código: [Seleccionar]
<?php

include "cabecera.html";

$nombre=$_POST['nombre'];
$apellidos=$_POST['apellidos'];
$texto=$_POST['texto'];
$fecha=date('l/d/M/Y');
$id=0;
$check1=bool (is_string($nombre));
$check2bool (is_string($apellidos));

$conectar=mysqli_connect("127.0.0.1","root","","cdcol");
 



if ($check1==true && $check2==true)
{
 
  
if ($conectar)
  
{
    

   echo "conexion relizada a la base de datos ";
  
$tabla=" create table if not exists cdcol.opinion (ID int(255)auto_increment primary key,nombre varchar(20),apellidos varchar(20),opinion varchar(99999),fecha varchar(20))" ;
$ejecutatabla=mysqli_query($conectar,$tabla);
$insert="insert into opinion values ('$id','$nombre','$apellidos','$texto','$fecha')";
$ejecutainsert=mysqli_query($conectar,$insert);
if ($ejecutainsert){echo "</br> gracias por su opinion";}



else{echo "</br> error en la estructura de la consulta";}


}

else{echo "el campo nombre y el campo apellidos solo permiten texto sin numeros";}// si no son texto
}


else {echo "conexion fallida";} 

mysqli_close($conectar);echo  " </br> desconectado";

include 
"pie.html";
?>


agradeceria una aclaracion , gracias y un abrazo!
« Última modificación: 01 de Noviembre 2014, 10:28 por Alex Rodríguez »

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2054
    • Ver Perfil
Re:Crear tabla en MYSQL con PHP
« Respuesta #1 en: 29 de Octubre 2014, 23:24 »
Hola, la cuestión que comentas podríamos decir que es "validación de formularios". Hay varias formas de hacer validación de formularios, pero vamos a resumirlas en que puedes hacerlo del lado del cliente (en el computador del usuario, por ejemplo impidiendo que se envíe el formulario si no cumple con lo que debe cumplir), del lado del servidor (una vez enviado el formulario se comprobaría que datos se han enviado y si no son válidos se mostraría un mensaje de aviso de que se debe rellenar de nuevo el formulario), o bien de forma combinada entre cliente y servidor (en este caso harías una validación del lado del cliente y una verificación de lo que realmente llega al servidor).

Lo más normal sería que la validación de un formulario la plantees con JavaScript, que es el lenguaje más propio para eso. El curso de JavaScript lo tienes aquí: http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=78&Itemid=206

Pero supongamos que no quieres usar JavaScript, sino hacerlo con PHP y por tanto del lado del servidor. Tendrás que usar funciones de cadenas o expresiones regulares para comprobar que los datos recibidos se ajustan a lo que tú quieres. El curso de php lo tienes en http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=70&Itemid=193

No sé si esto te sirve como aclaración, tampoco veo del todo claro cuál es la pregunta...

Saludos

jga

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 31
    • Ver Perfil
Re:Crear tabla en MYSQL con PHP
« Respuesta #2 en: 30 de Octubre 2014, 21:58 »
Hola! ,veras , lo que pretendo hacer es que no deje introducir numeros en el campo nombre del formulario , ni tampoco en el campo de apellidos , los acepta y los guarda en la bbdd a pesar de que uso el metodo is_string ( aunque este ultimo no se si lo uso bien y de ahi mi duda),  con javascript se que se puede , pero buscaba una solucion en php , gracias por la respuesta y un abrazo.

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2054
    • Ver Perfil
Re:Crear tabla en MYSQL con PHP
« Respuesta #3 en: 30 de Octubre 2014, 23:52 »
Hola de nuevo, hay distintas maneras de hacerlo y puedes hacerlo en php si quieres. Una forma que parece fácil es simplemente comprobar la cadena que te llega usando la función substr de php (explicada en http://aprenderaprogramar.com/index.php?option=com_content&view=article&id=563:concatenar-cadenas-strings-php-strlen-longitud-caracteres-y-substr-extraer-subcadenas-cu00821b&catid=70:tutorial-basico-programador-web-php-desde-cero&Itemid=193).

Es decir, recorres la palabra que te llega y si algún caracter es 1 ó 2 ó 3 ó 4 ó 5 ó 6 ó 7 ó 8 ó 9, pues no escribes en la base de datos y en vez de procesar, muestras un mensaje avisando de que no se puede procesar. (Es más elegante usar una expresión regular, pero... según se vea).

Saludos

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".