Foros del Web » Programando para Internet » PHP »

Problema al recoger variables

Estas en el tema de Problema al recoger variables en el foro de PHP en Foros del Web. Hola tengo estos problemas al recoger las varibales de un formulario: las recojo con $_POST y tengo Register_Globalls=Off, como debe ser. Como puedo recoger con ...
  #1 (permalink)  
Antiguo 06/05/2004, 11:15
Avatar de capuleto  
Fecha de Ingreso: octubre-2003
Ubicación: Cartagena
Mensajes: 219
Antigüedad: 20 años, 5 meses
Puntos: 0
Problema al recoger variables

Hola tengo estos problemas al recoger las varibales de un formulario:
las recojo con $_POST y tengo Register_Globalls=Off, como debe ser.

Como puedo recoger con $_POST este resultado del formulario, ok:

*********
//Parte del Formulario que envia los datos
<tr>
<td align="right">Fecha de Nacimiento:</td>
<td align="left">
<select name="p_v5[2]">
<? for($i=0;$i<32;$i++){
echo "<option>$i</option>";
}
?>
</select> de
<select name="p_v5[1]">
<? for($i=0;$i<13;$i++){
echo "<option>$i</option>";
}
?>
</select> de
<select name="p_v5[0]">
<? for($i=1901;$i<2005;$i++){
echo "<option>$i</option>";
}
?>
</select>
</td>
</tr>//La variable a recoger seria p_v5
***********

//Script de PHP que los recoge:

# Recogemos la fecha encadenandolas
//$v5=$_POST['p_v5[0]'."-".'p_v5[1]'."-".'p_v5[2]'];//Asi no me funciona
$v5=$p_v5[0]."-".$p_v5[1]."-".$p_v5[2]; //Asi Register Global=on

Y las coloco en el mysql_insert:
# Preparamos la Sentencia y Añadimos el Registro
mysql_query("INSERT $tabla (DNI,Nombre,Apellido1,Apellido2, Nacimiento) VALUES
('".$_POST['p_v1']."','".$_POST['p_v2']."','".$_POST['p_v3']."','".$_POST['p_v4']."',
'$v5')",$conex);

y esta como la recojo:
//Parte del Formulario que envia los datos
<tr>
<td align="right">Fumador:</td>
<td align="left">
<input type="radio" name="p_v8" value="1" checked>Si
<input type="radio" name="p_v8" value="1">No
</td>
</tr>//La variable a recoger seria p_v8

//Script de PHP que los recoge:
if($v8==0){
$v8='"\n"'; //Asignamos NULL
}else{
$v8='""'; //Asignamos Cadena Vacia
}

La misma pregunata como los recojo con $_POST
************
Y este otro:
//Parte del Formulario que envia los datos

<tr>
<td align="right">Idiomas:
(<i>Si habla varios seleccionarlos<br>
pulsando con el mouse encima de <br>
cada uno de ellos con la tecla<br>
<b>Ctrl</b> presionada</i>)
</td>
<td align="left">
<SELECT MULTIPLE name=p_v9[] SIZE=6>
<option value=1>Castellano</option>
<option value=2>Ingles</option>
<option value=4>Frances</option>
<option value=8>Bulgaro</option>
<option value=16>Aleman</option>
<option value=32>Chino</option>
</SELECT>
</td>
</tr>//La variable a recoger seria p_v9

//Script de PHP que los recoge:
foreach($v9 as $valor) {
$v9+=$valor;
};

Lo mismo como lo recojo con $_POST??

esa es la duda, esas variables no se como colocarlas con $_POST

Cualquiera ayuda todo bien..
__________________
...Definitivamente Soy Nadie entre los Sabios....*-*Capuleto*-*
  #2 (permalink)  
Antiguo 06/05/2004, 12:52
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 9 meses
Puntos: 16
Hola,

Para controles de formulario llamado:

name="campo[]"

lo recoges con
Código PHP:
$var=$_POST['campo'];  // sin los []
// $var es un array con los valores 
Asi que tu tendrias por ejemplo:
Código PHP:
$v5=$_POST['p_v5'][0]."-".$_POST['p_v5'][1]."-".$_POST['p_v5'][2]; 
El radio esta mal el HTML, cada control debe tener un valor distinto:

<input type="radio" name="p_v8" value="1" checked>Si
<input type="radio" name="p_v8" value="0">No

Y lo lees como si seria un campo normal.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 06/05/2004, 22:40
Avatar de capuleto  
Fecha de Ingreso: octubre-2003
Ubicación: Cartagena
Mensajes: 219
Antigüedad: 20 años, 5 meses
Puntos: 0
Me salio una solo vez y despues no

el Formulario que recoge las variables:
<html>
<head>
<title>Insercción de Datos</title>
</head>
<body>
<center><h2>Tabla «demo4»<br>Formulario de altas<h2></center>
<form name="altas" method="post" action="procesar.php">
<table bgcolor="#E9FFFF" align="center" border=2>
<tr>
<td align="right">Escribe tu D.N.I. :</td>
<td align="left"><input type="text" name="p_v1" value="" size=8></td>
</tr>
<tr>
<td align="right">Nombre:</td>
<td align="left"><input type="text" name="p_v2" value="" size=20></td>
</tr>
<tr>
<td align="right">Primer Apellido:</td>
<td align="left"><input type="text" name="p_v3" value="" size=15></td>
</tr>
<tr>
<td align="right">Segundo Apellido:</td>
<td align="left"><input type="text" name="p_v4" value="" size=15></td>
</tr>

<tr>
<td align="right">Fecha de Nacimiento:</td>
<td align="left">
<select name="p_v5[2]">
<? for($i=0;$i<32;$i++){
echo "<option>$i</option>";
}
?>
</select> de
<select name="p_v5[1]">
<? for($i=0;$i<13;$i++){
echo "<option>$i</option>";
}
?>
</select> de
<select name="p_v5[0]">
<? for($i=1901;$i<2005;$i++){
echo "<option>$i</option>";
}
?>
</select>
</td>
</tr>

<tr>
<td align="right">Hora:</td>
<td align="left">
<select name="p_v7[0]">
<? for($i=0;$i<24;$i++){
echo "<option>$i</option>";
}
?>
</select> H
<select name="p_v7[1]">
<? for($i=0;$i<60;$i++){
echo "<option>$i</option>";
}
?>
</select> M
<select name="p_v7[2]">
<? for($i=0;$i<60;$i++){
echo "<option>$i</option>";
}
?>
</select> S
</td>
</tr>

<tr>
<td align="right">Sexo:</td>
<td align="left">
<input type="radio" name="p_v6" value="M" checked> Masculino
<input type="radio" name="p_v6" value="F"> Femenino
</td>
</tr>

<tr>
<td align="right">Fumador:</td>
<td align="left">
<input type="radio" name="p_v8" value="1" checked>Si
<input type="radio" name="p_v8" value="0">No
</td>
</tr>

<tr>
<td align="right">Idiomas:
(<i>Si habla varios seleccionarlos<br>
pulsando con el mouse encima de <br>
cada uno de ellos con la tecla<br>
<b>Ctrl</b> presionada</i>)
</td>
<td align="left">
<!-- <select name="mes[]" multiple size="3"> -->
<SELECT MULTIPLE name="p_v9[]" SIZE=6>
<option value=1>Castellano</option>
<option value=2>Ingles</option>
<option value=4>Frances</option>
<option value=8>Bulgaro</option>
<option value=16>Aleman</option>
<option value=32>Chino</option>
</SELECT>
</td>
</tr>
</table>
<br>
<center>
<input type="submit" Value=" Enviar ">
<input type="reset" Value= " Borrar ">
</center>
</form>
</body>
</html>

*************
el escrip php que los procesa y los ingresa a la Base de datos:
<?
# Recogemos en una variable el Nombre de la Base de datos
$base="edwarddb";

# Recogemos en una Variable el Nombre de la Tabla
$tabla="demo4";

# Recogemos la Variable Fumador
if($_POST['p_v8']==0){
$_POST['p_v8']='"\n"'; //Asignamos NULL
}else{
$_POST['p_v8']='""'; //Asignamos Cadena Vacia
}

# Recogemos la Variable Idiomas
# El truco de asignar en el formulario valores 1,2,4,8,16,32 a las opciones de idioma
# nos permite sumarlos aquí para obtener el valor conjunto
# aqui se suman todos los valores de la matriz pasada desde el formulario

foreach($_POST['p_v9'] as $valor) {
$_POST['p_v9']+=$valor;
};




# Establecemos la Conexion con el Servidor
$conex=mysql_connect("localhost","root","");

# Asignamos la Conexion a la Base de datos determinada
mysql_select_db($base,$conex);

# Preparamos la Sentencia y Añadimos el Registro
mysql_query("INSERT $tabla (DNI,Nombre,Apellido1,Apellido2,Nacimiento,Hora,Se xo,Fumador,Idiomas) VALUES ('".$_POST['p_v1']."','".$_POST['p_v2']."','".$_POST['p_v3']."','".$_POST['p_v4']."','".$_POST['p_v5'][0]."-".$_POST['p_v5'][1]."-".$_POST['p_v5'][2]."','".$_POST['p_v7'][0].":".$_POST['p_v7'][1].":".$_POST['p_v7'][2]."','".$_POST['p_v6']."','".$_POST['p_v8']."','".$_POST['p_v9']."')",$conex);

//$v5=$_POST['p_v5'][0]."-".$_POST['p_v5'][1]."-".$_POST['p_v5'][2];
# Verificamos si Hubo Exito o Fracaso
# Comprobamos el Resultado de la inserccion
# El error CERO significa no error
# El error 1062 Clave duplicada
# en otros errores forzamos a que nos ponga el número de error
# y el significado de ese error (aunque sea en ingles)....
if(mysql_errno($conex)==0){echo "<h2>REGISTRO AÑADIDO</h2><br>";
}else{
if(mysql_errno($conex)==1062){echo "<h2>No ha Podido añadirse el Registro<br>Ya existe un Campo con ese DNI</h2><br>";
}else{
$numerror=mysql_errno($conex);
$descerror=mysql_error($conex);
echo "<h2>Se ha Producido un error No: $numerror que corresponde a: $descerror </h2><br>";
}
}

# Cerramos la Conexion
mysql_close($conex);
?>

Que tengo mal...ayudenem que tengo un examen sobre esto..
__________________
...Definitivamente Soy Nadie entre los Sabios....*-*Capuleto*-*
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:28.