Foros del Web » Programando para Internet » PHP »

PHP OO Problema con espacios en blanco

Estas en el tema de Problema con espacios en blanco en el foro de PHP en Foros del Web. Hola a todos!! Normalmente cuando tengo un problema lo busco por internet y puedo encontrar alguna solución, pero en este caso... Es la primera vez ...
  #1 (permalink)  
Antiguo 23/10/2012, 08:31
 
Fecha de Ingreso: octubre-2012
Mensajes: 3
Antigüedad: 11 años, 6 meses
Puntos: 0
Problema con espacios en blanco

Hola a todos!!

Normalmente cuando tengo un problema lo busco por internet y puedo encontrar alguna solución, pero en este caso... Es la primera vez que no he encontrado a nadie con este problema. De verdad que se me saltan las lágrimas porque ya no sé ni de dónde puede venir el problema.

PROBLEMA: Si no guardo ningún espacio en blanco en cualquiera de todos los campos que se ven a continuación, el formulario de modificación para editar el usuario funciona perfectamente porque me muestra los datos para poder editarlos. En cuanto haya un espacio en blanco (en mi caso si en el nombre escribo "Pepe Moreno") en el formulario no me muestra ningún dato de la base de datos.

Mi base de datos es phpmyadmin:
usuario
clave
nombre
email

plantilla-usuario.php
<?php
session_start();
if (!isset($_SESSION['User'])) {
header("Location: login.php");
}
?>
<html>
<div id="nombre-usuario">
<ul>
<li>
<?
echo 'Hola ',$_SESSION[User], '! ';
?>
</li>
<li><a href="editar-usuario.php">Editar</a></li>
<li><a href="salir.php">Salir</a></li>
</ul>
</div>
</html>

editar-usuario.php
<?php
session_start();
if (!isset($_SESSION['User'])) {
header("Location: login.php");
}
?>
<html>
<?
include("conexion.php");
$nombre_usuario = $_SESSION['User'];
print $nombre_usuario;
$consulta = "SELECT * FROM usuarios WHERE usuario='$nombre_usuario';"; //Realiza la consulta
$datos = mysql_query($consulta, $conexion); //Envía y ejecuta la consulta
$recup_datos = mysql_fetch_array($datos); //Recupera una fila de resultados en un array

?>

<form method="post" action="procesar-usuario.php">
<table>
<tr><td colspan=2>Formulario de Modificación</td></tr>
<tr>
<td> Usuario: </td>
<td><input type="text" name="usuario" value="<?php echo $recup_datos["usuario"]; ?>"/></td>
</tr>
<tr>
<td> Clave: </td>
<td><input type="text" name="clave" value="<?php echo $recup_datos["clave"]; ?>"/></td>
</tr>
<tr>
<td> Nombre: </td>
<td><input type="text" name="nombre" value="<?php echo $recup_datos["nombre"]; ?>"/></td>
</tr>
<tr>
<td> Email: </td>
<td><input type="text" name="email" value="<?php echo $recup_datos["email"]; ?>"/></td>
</tr>
<tr>
<td> Foto: </td>
<td><input type="text" name="foto" value="<?php echo $recup_datos["foto"]; ?>"/></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input type="submit" value="Modificar datos"/></td>
<tr>
<td>&nbsp;</td>
<td><input type="submit" value="Eliminar usuario"/></td>
</tr>
</tr>
</table>
</form>
</html>

Gracias de antemano y saludos,
Miriam
  #2 (permalink)  
Antiguo 23/10/2012, 08:40
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema con espacios en blanco

Lo que dices carece completamente de sentido.

Si de verdad algo estuviera mal seguro te mostraría un error, ¿pero no lo muestra o si?

Además puedes comprobarlo imprimiendo la consulta y luego ejecutarla manualmente en phpMyAdmin.

Por último puedes depurar los resultados de la consulta para ver si hay algo.
Código PHP:
var_dump($recup_datos); 
Debes entender que tu código no tiene errores, si los tuviera no funcionaría de ningún modo.

Además no nos dices nada de información adicional, así es complicado adivinar lo que te sucede con solo leer tu código.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 23/10/2012, 17:09
 
Fecha de Ingreso: octubre-2012
Mensajes: 3
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: Problema con espacios en blanco

Hola pateketrueke!

Ante todo, miles de gracias por perder tu tiempo conmigo.

Para mi tampoco tiene ningun sentido. Es que no lo llego a comprender. A ver si esta vez me explico mejor, porque soy nueva en esto (y también es la primera vez que pregunto).

1º El usuario se registra, es decir, introduce sus datos en la base de datos. Lo que acabo de decir funciona perfectamente. El usuario introduce los siguientes datos:
usuario = varchar (10) clave primaria
clave = varchar (20)
nombre = varchar (30)
email = varchar (30)


2º El usuario introduce su usuario y su clave. Clica "Entrar" e inicia su sesión.

3º El usuario quiere modificar sus datos. Pincha en "Editar" y le muestro un formulario con sus datos introducidos anteriormente (aquí es donde tengo el problema).

Si el usuario se ha registrado con los siguientes datos el formulario FUNCIONA PERFECTAMENTE BIEN, es decir, te muestra los datos de la base de datos para poder modificarlos:
Usuario: pepe
Clave: pepito
Nombre: Pepe
Email: [email protected]

En cambio, si el usuario se ha registrado con los siguientes datos el formulario está totalmente en blanco. Usuario, clave, nombre y email están todos en blanco:
Usuario: juan
Clave: juancho
Nombre: Juan Santos
Email: [email protected]

A qué se debe? Al espacio en blanco de Juan Santos?

Escribo el formulario otra vez:
editar-usuario.php
Código PHP:
<?php
session_start
();
if (!isset(
$_SESSION['User'])) {
header("Location: login.php");
}
?>
<html>
<?
include("conexion.php");
$nombre_usuario $_SESSION['User'];
print 
$nombre_usuario//Funciona
$consulta "SELECT * FROM usuarios WHERE usuario='$nombre_usuario';"//Realiza la consulta
$datos mysql_query($consulta$conexion); //Envía y ejecuta la consulta
$recup_datos mysql_fetch_array($datos); //Recupera una fila de resultados en un array
?>
<form method="post" action="procesar-usuario.php">
<table>
<tr><td colspan=2>Formulario de Modificación</td></tr>
<tr>
<td> Usuario: </td>
<td><input type="text" name="usuario" value="<?php echo $recup_datos["usuario"]; ?>"/></td>
</tr>
<tr>
<td> Clave: </td>
<td><input type="text" name="clave" value="<?php echo $recup_datos["clave"]; ?>"/></td>
</tr>
<tr>
<td> Nombre: </td>
<td><input type="text" name="nombre" value="<?php echo $recup_datos["nombre"]; ?>"/></td>
</tr>
<tr>
<td> Email: </td>
<td><input type="text" name="email" value="<?php echo $recup_datos["email"]; ?>"/></td>
</tr>
<tr>
<td> Foto: </td>
<td><input type="text" name="foto" value="<?php echo $recup_datos["foto"]; ?>"/></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input type="submit" value="Modificar datos"/></td>
<tr>
<td>&nbsp;</td>
<td><input type="submit" value="Eliminar usuario"/></td>
</tr>
</tr>
</table>
</form>
</html>
Espero haberme explicado bien esta vez.

Gracias y un saludo!
Miriam
  #4 (permalink)  
Antiguo 23/10/2012, 17:29
 
Fecha de Ingreso: octubre-2012
Mensajes: 3
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: Problema con espacios en blanco

Soy yo otra vez

Si hago un
Código PHP:
var_dump($recup_datos); 
con
Usuario: pepe
Clave: pepito
Nombre: Pepe
Email: [email protected]

el resultado es:
array(10) { [0]=> string(4) "pepe" ["usuario"]=> string(4) "pepe" [1]=> string(6) "pepito" ["clave"]=> string(6) "pepito" [2]=> string(4) "Pepe" ["nombre"]=> string(4) "Pepe" [3]=> string(16) "[email protected]" ["email"]=> string(16) "[email protected]" [4]=> string(1) "0" ["foto"]=> string(1) "0" }

Si hago un
Código PHP:
var_dump($recup_datos); 
con
Usuario: juan
Clave: juancho
Nombre: Juan Santos
Email: [email protected]

el resultado es:
bool(false)
  #5 (permalink)  
Antiguo 23/10/2012, 17:45
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema con espacios en blanco

Una pregunta, ¿por qué utilizas el nombre del usuario al hacer el SELECT y no su ID?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: blanco, espacios, formulario, html, mysql, usuarios
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 16:40.