Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: victorekn en 6 Mayo 2014, 07:27 am



Título: Problema con una Variable en un Formulario php
Publicado por: victorekn en 6 Mayo 2014, 07:27 am
Buenas, soy algo novato en esto y hace semanas que sigo con el mismo problema, lo que intento hacer es que despues de que el usuario se logue le permita entrar a un formulario en el que tiene que poner su solicitud en "observaciones" lo que tiene que hacer el php es al loguearse el user llevarlo a la pagina index.php y cargar automaticamente el nombre del usuario, email y otros datos para que el solo ponga la observacion.
Logre que traiga el nombre del usuario con el atributo SESSION pero no logro traer su email en la casilla que corresponde. pongo el codigo que les dejo mas abajo y lo unico que gano es la nota (<br /><b>Notice</b>:  Undefined variable: f in <b>I:\XAMMP\htdocs\Formphp\index.php</b> on line <b>44</b><br />) Ayudenme porfavor, me esta matando esto no encuentro la vuelta ya me mire miles de videos y manuales.

La base de datos se llama "usuario" la tabla "usuarios" y tiene las columnas ID - usuario - password - email - cargo - sexo

Código:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
</head>

<body>

 <?php
 

session_start();

echo 'Bienvenido, ';
if (isset($_SESSION['k_username'])) {
   echo '<b>'.$_SESSION['k_username'].'</b>.';
   echo '<p><a href="logout.php">Logout</a></p>';
}else{
   echo '<p><a href="login.php">Login</a></p>
    <p><a href="registrar.php">Registrar</a></p>';
}
?>

<?
mysql_connect('localhost', 'root', '') or die ('Error de conexión.');
mysql_select_db('usuario');

if($nombre!="");
{
//$traer= mysql_query ('SELECT * FROM usuarios WHERE usuario LIKE "'.$nombre.'"');
$traer= mysql_query ('SELECT * FROM usuarios WHERE usuario = "'.$_SESSION['k_username'].'"');
while($f=mysql_fetch_array($traer)) {
//echo $f;
$datos=$f;
}
}
//{
?>
<form id="form1" action="index.php" name="form1" method="post">
Nombre
<input name="nombre" type="text" id="textarea" value="<?php echo $_SESSION['k_username']//''.$_SESSION.'' ?>" size=45 />
<p>
Email
<input name="email" type="text" id="textarea2" value="<?php echo $f['email'] ?>" size=45 />
</p>
<p>
Ocupación
<input name="ocupación" type="text" id="textarea3" value="" size=45 />
</p>
<p>
Edad
<input name="edad" type="text" id="textarea4" value="" size=45 />
</p>
<p>
Sexo
<input name="sexo" type="text" id="textarea4" value="" size=45 />
</select>
<label>
<input type="submit" name="button" id="button" value="Guardar" onClick="this.form.action = 'Insertar.php'" />
</label>
<label>
<input type="submit" name="button2" id="button2" value="Mostrar" onClick="this.form.action = 'muestra.php'" />
</label>
</form>


<?
//}
?>
</body>
</html>


Título: Re: Problema con una Variable en un Formulario php
Publicado por: JorgeEMX en 6 Mayo 2014, 13:33 pm
Algunos comentarios:

mysql_fetch_array, deberías asegurar que te regresa un arreglo asociativo ya que tú lo estás tratando como si fuera asociativo (en el input). Además, deberías asegurarte que la consulta te regresa datos (a mi me gusta más usar var_dump en vez de echo). Y según tu lógica, deberías usar $datos y no $f.

Otra cosa, deberías colocar un límite a esa consulta, ya que en teoría debería ser sólo un registro.

Aquí está la documentación de mysql_fetch_array http://www.php.net/manual/es/function.mysql-fetch-array.php.