Foros del Web » Programando para Internet » PHP »

Errores Formulario

Estas en el tema de Errores Formulario en el foro de PHP en Foros del Web. Buenas, Tengo este formuario: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original <form action="new_aircraft_process.php" method="post" enctype="application/x-www-form-urlencoded">     <table>       <tr><td class=Forms>ICAO:</td><td><input maxlength="4" type="text" name="ICAO" ...
  #1 (permalink)  
Antiguo 28/12/2012, 06:34
 
Fecha de Ingreso: junio-2011
Mensajes: 342
Antigüedad: 12 años, 9 meses
Puntos: 5
Exclamación Errores Formulario

Buenas,

Tengo este formuario:

Código PHP:
Ver original
  1. <form action="new_aircraft_process.php" method="post" enctype="application/x-www-form-urlencoded">
  2.     <table>
  3.  
  4.     <tr><td class=Forms>ICAO:</td><td><input maxlength="4" type="text" name="ICAO" size="30"/></td></tr>
  5.    
  6.     <tr><td class=Forms>Name:</td><td><input type="text" name="Name" size="30"/></td></tr>
  7.        
  8.     <tr><td class=Forms>Weight Empty: </td><td><input type="text" name="WeightEmpty" size="30"/></td></tr>
  9.        
  10.     <tr><td class=Forms>Weight Full: </td><td><input type="text" name="WeightFull" size="30"/></td></tr>
  11.        
  12.     <tr><td class=Forms>Cargo Full: </td><td><input type="text" name="CargoFull" size="30"/></td></tr>
  13.    
  14.     <tr><td class=Forms>Cruise Speed: </td><td><input type="text" name="CruiseSpeed" size="30"/></td></tr>
  15.    
  16.     <tr><td class=Forms>Range: </td><td><input type="text" name="Range" size="30"/></td></tr>
  17.        
  18.     <tr><td class=Forms>Price: </td><td><input type="text" name="Price" size="30"/></td></tr>
  19.  
  20.     <tr><td class=Forms>Number Classes:</td><td><select name="numberclasses" id="numberclasses" onchange="callAjax()">
  21.         <option value="0">Select Number of Classes</option>
  22.         <?php
  23.         echo'<option value="1">One Classes (Economy)</option>';
  24.         echo'<option value="2">Two Classes (Business & Economy)</option>';
  25.         echo'<option value="3">Three Classes (First, Business & Economy)</option>';
  26.         ?>
  27.     </select></td></tr>
  28.  
  29.  
  30.  
  31.     <tr><td class=Forms>First Class:</td><td><input disabled="disabled" type="text" id="FirstClass" name="FirstClass" size="30"/></td></tr>
  32.     <tr><td class=Forms>Business Class:</td><td><input type="text" id="BusinessClass" name="BusinessClass" size="30"/></td></tr>
  33.     <tr><td class=Forms>Economy Class:</td><td><input type="text" id="EconomyClass" name="EconomyClass" size="30"/></td></tr>
  34.  
  35.         <tr><td></td><td><input type="submit" name="Submit" value="Submit"/></td></tr>
  36.          </table>
  37.     </form>

Este es el proceso:

Código PHP:
Ver original
  1. <?php
  2.  
  3. include('./db.inc.php');
  4.  
  5. $ICAO = $_POST['ICAO'];
  6. $Name = $_POST['Name'];
  7. $WeightEmpty = $_POST['WeightEmpty'];
  8. $WeightFull = $_POST['WeightFull'];
  9. $CargoFull = $_POST['CargoFull'];
  10. $CruiseSpeed = $_POST['CruiseSpeed'];
  11. $Range = $_POST['Range'];
  12. $Price = $_POST['Price'];
  13. $FirstClass = $_POST['FirstClass'];
  14. $BusinessClass = $_POST['BusinessClass'];
  15. $EconomyClass = $_POST['EconomyClass'];
  16.  
  17.  
  18.  
  19.        
  20.     mysql_query("INSERT INTO aircrafts (ICAO, Name, WeightEmpty, WeightFull, CargoFull, CruiseSpeed, Range, Price, FirstClass, BusinessClass, EconomyClass) VALUES ('$ICAO', '$Name', '$WeightEmpty', '$WeightFull', '$CargoFull', '$CruiseSpeed', '$Range', '$Price', '$FirstClass', '$BusinessClass', '$EconomyClass')") or die(mysql_error());
  21.    
  22.  
  23.    
  24.     echo '<h3 style="color: green;">Aeronave adquirida correctamente.<h3/>';
  25.    
  26. ?>

Me da estos errores:

Cita:
Notice: Undefined index: FirstClass in C:\xampp\htdocs\new_aircraft_process.php on line 13
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Range, Price, FirstClass, BusinessClass, EconomyClass) VALUES ('a320', 'A320', '' at line 1
Por que?
  #2 (permalink)  
Antiguo 28/12/2012, 06:57
 
Fecha de Ingreso: diciembre-2012
Mensajes: 223
Antigüedad: 11 años, 4 meses
Puntos: 2
Respuesta: Errores Formulario

El erro es en esta linea $FirstClass = $_POST['FirstClass'];

En el formulario hay algun input que se llame FirstClass?
  #3 (permalink)  
Antiguo 28/12/2012, 07:30
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Errores Formulario

Esto no es exactamente un error
Notice: Undefined index: FirstClass in C:\xampp\htdocs\new_aircraft_process.php on line 13

Es simplemente porque ese campo lo tenés como disabled y no se envía.
Te recomendaría que revises el MySql y los campos de la tabla

hacé esta prueba, cambiá tu php por esto

Código PHP:
Ver original
  1. <?php
  2.  
  3. //include('./db.inc.php');
  4.  
  5. $ICAO = $_POST['ICAO'];
  6. $Name = $_POST['Name'];
  7. $WeightEmpty = $_POST['WeightEmpty'];
  8. $WeightFull = $_POST['WeightFull'];
  9. $CargoFull = $_POST['CargoFull'];
  10. $CruiseSpeed = $_POST['CruiseSpeed'];
  11. $Range = $_POST['Range'];
  12. $Price = $_POST['Price'];
  13. $FirstClass = $_POST['FirstClass'];
  14. $BusinessClass = $_POST['BusinessClass'];
  15. $EconomyClass = $_POST['EconomyClass'];
  16.  
  17. //    mysql_query("INSERT INTO aircrafts (ICAO, Name, WeightEmpty, WeightFull, CargoFull, CruiseSpeed, Range, Price, FirstClass, BusinessClass, EconomyClass) VALUES ('$ICAO', '$Name', '$WeightEmpty', '$WeightFull', '$CargoFull', '$CruiseSpeed', '$Range', '$Price', '$FirstClass', '$BusinessClass', '$EconomyClass')") or die(mysql_error());
  18.    
  19. echo "INSERT INTO aircrafts (ICAO, Name, WeightEmpty, WeightFull, CargoFull, CruiseSpeed, Range, Price, FirstClass, BusinessClass, EconomyClass) VALUES ('$ICAO', '$Name', '$WeightEmpty', '$WeightFull', '$CargoFull', '$CruiseSpeed', '$Range', '$Price', '$FirstClass', '$BusinessClass', '$EconomyClass')";
  20.  
  21. ?>

y procesá el form, con y sin disabled para FirstClass, vas a ver que recoge las variables correctamente

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #4 (permalink)  
Antiguo 28/12/2012, 08:58
 
Fecha de Ingreso: junio-2011
Mensajes: 342
Antigüedad: 12 años, 9 meses
Puntos: 5
Exclamación Respuesta: Errores Formulario

Cita:
Iniciado por emprear Ver Mensaje
Esto no es exactamente un error
Notice: Undefined index: FirstClass in C:\xampp\htdocs\new_aircraft_process.php on line 13

Es simplemente porque ese campo lo tenés como disabled y no se envía.
Te recomendaría que revises el MySql y los campos de la tabla

hacé esta prueba, cambiá tu php por esto

Código PHP:
Ver original
  1. <?php
  2.  
  3. //include('./db.inc.php');
  4.  
  5. $ICAO = $_POST['ICAO'];
  6. $Name = $_POST['Name'];
  7. $WeightEmpty = $_POST['WeightEmpty'];
  8. $WeightFull = $_POST['WeightFull'];
  9. $CargoFull = $_POST['CargoFull'];
  10. $CruiseSpeed = $_POST['CruiseSpeed'];
  11. $Range = $_POST['Range'];
  12. $Price = $_POST['Price'];
  13. $FirstClass = $_POST['FirstClass'];
  14. $BusinessClass = $_POST['BusinessClass'];
  15. $EconomyClass = $_POST['EconomyClass'];
  16.  
  17. //    mysql_query("INSERT INTO aircrafts (ICAO, Name, WeightEmpty, WeightFull, CargoFull, CruiseSpeed, Range, Price, FirstClass, BusinessClass, EconomyClass) VALUES ('$ICAO', '$Name', '$WeightEmpty', '$WeightFull', '$CargoFull', '$CruiseSpeed', '$Range', '$Price', '$FirstClass', '$BusinessClass', '$EconomyClass')") or die(mysql_error());
  18.    
  19. echo "INSERT INTO aircrafts (ICAO, Name, WeightEmpty, WeightFull, CargoFull, CruiseSpeed, Range, Price, FirstClass, BusinessClass, EconomyClass) VALUES ('$ICAO', '$Name', '$WeightEmpty', '$WeightFull', '$CargoFull', '$CruiseSpeed', '$Range', '$Price', '$FirstClass', '$BusinessClass', '$EconomyClass')";
  20.  
  21. ?>

y procesá el form, con y sin disabled para FirstClass, vas a ver que recoge las variables correctamente

Saludos
Pues nada, la db está OK y los nombre son correctos.

Si le quito el disabled el error SQL lo da igual.
  #5 (permalink)  
Antiguo 28/12/2012, 09:25
 
Fecha de Ingreso: junio-2011
Mensajes: 342
Antigüedad: 12 años, 9 meses
Puntos: 5
Exclamación Respuesta: Errores Formulario

El error después de procesar el echo y el insert a la vez es este:

Cita:
INSERT INTO aircrafts (ICAO, Name, WeightEmpty, WeightFull, CargoFull, CruiseSpeed, Range, Price, FirstClass, BusinessClass, EconomyClass) VALUES ('fgf', 'a320', '12', '12', '12', '12', '21', '12', '32', '10', '150')You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Range, Price, FirstClassSeats, BusinessClassSeats, EconomyClassSeats) VALUES ('f' at line 1
  #6 (permalink)  
Antiguo 28/12/2012, 09:31
 
Fecha de Ingreso: junio-2011
Mensajes: 342
Antigüedad: 12 años, 9 meses
Puntos: 5
Exclamación Respuesta: Errores Formulario

Vale, el error está en Range. Si quito todo lo que tiene que ver con este todo funciona OK. A que es debido si hay una columna en la tabla que se llama Range?
  #7 (permalink)  
Antiguo 28/12/2012, 09:36
 
Fecha de Ingreso: junio-2011
Mensajes: 342
Antigüedad: 12 años, 9 meses
Puntos: 5
Exclamación Respuesta: Errores Formulario

OJO AL DATO:

Si pongo Casa en vez de Range, como nombre, todo funciona OK.

Por qué no puedo poner Range?
  #8 (permalink)  
Antiguo 28/12/2012, 09:43
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Errores Formulario

Prueba usando los delimitadores de nombres de columnas:
Código MySQL:
Ver original
  1. `Range`
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #9 (permalink)  
Antiguo 28/12/2012, 09:45
 
Fecha de Ingreso: junio-2011
Mensajes: 342
Antigüedad: 12 años, 9 meses
Puntos: 5
Exclamación Respuesta: Errores Formulario

Cita:
Iniciado por David Ver Mensaje
Prueba usando los delimitadores de nombres de columnas:
Código MySQL:
Ver original
  1. `Range`
Así funciona, gracias otra vez David!

Pero que tiene de especial Range que no lo tenga Casa o otra palabra?
  #10 (permalink)  
Antiguo 28/12/2012, 11:54
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Errores Formulario

Cita:
Iniciado por carlosuc99 Ver Mensaje
Así funciona, gracias otra vez David!

Pero que tiene de especial Range que no lo tenga Casa o otra palabra?
Será por
http://dev.mysql.com/doc/refman/5.5/...ved-words.html

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Etiquetas: errores, formulario, mysql, sql
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 17:17.