Página 1 de 3

Proglema con PHP

Publicado: 15 May 2007 13:17
por Party Boy
Ola hamigos.

Estoy haciendo un PHP simple simple que inserta datos en una tabla, pero como que no funciona. Me inserta un registro, pero con todos los campos vacíos.

El código es éste:

Código: Seleccionar todo

<?
$server="localhost"; /* Nuestro server mysql */
$database="estoestabien"; /* Nuestra base de datos */
$dbpass="estotambien"; /*Nuestro password mysql */
$dbuser="yesto"; /* Nuestro user mysql */
/* Primero comprobamos que no existe un usuario con el mismo login ya registrado */

$query="SELECT * FROM usuarios WHERE login='$login';";
$link=mysql_connect($server,$dbuser,$dbpass);
$result=mysql_db_query($database,$query,$link);
if(mysql_num_rows($result)){
echo "El usuario ya existe en la BD";
} else {
mysql_free_result($result);
/* Ahora comprobamos que los dos pass coinciden */
if($pass1!=$pass2) {
echo "Los passwords deben coincidir<br>";
echo 'Clica <a href="form.php">aquí</a> para volver al formulario';
} else {
/* $pass1=crypt($pass2, "semilla"); */

/* Encripatmos el password, con la clave "semilla" que debeis sustituirpor la que mas os guste. Hay otros metodos de encriptacion, mirad en php.net si quereis conocerlos. */

$query="INSERT INTO usuarios (login, nombre, apellidos, password, email) VALUES ('$login','$nombre','$apellidos','$pass1','$email');";

$result=mysql_db_query($database,$query,$link);
if(mysql_affected_rows($link)){
echo "Usuario introducido correctamente";
} else {
echo "Error introduciendo el usuario";
} /* Cierre del else */
} /* Cierre del else que corresponde a if(mysql_affected_rows.....) */
} /* Cierre del else que corresponde a if(mysql_num_rows...) */
?>


El caso es que la conexion a la BD parece que la hace bien.

¿Puede ser problema de las variables?

Me estoy volviendo un poco tonta... (lin2)

Publicado: 15 May 2007 13:22
por Perro De Lobo
Has probao a poner una traza justo antes del Insert para ver que las variables tienen valor?

Publicado: 15 May 2007 13:34
por Grumete
Comprueba el valor de la directiva register_globals del php.ini, que me jugaría el escroto de mi testículo favorito a que está en OFF.

Por lo tanto $login pasaría a ser $_POST["login"] (pues supongo que el formulario está enviado por método POST) $nombre pasaría a ser $_POST["nombre"] y sucesivamente.

Publicado: 15 May 2007 13:38
por Party Boy
He probado a poner ésto:

Código: Seleccionar todo

echo "Login-> $login Nombre -> $nombre Apellidos -> $apellidos Pass -> $pass1 email -> $email";


Y me muestra por pantalla ésto otro:

Login-> Nombre -> Apellidos -> Pass -> email -> Usuario introducido correctamente


Entiendo que no me estça mandando bien los valores.

Ahora solo queda saber por qué...

Publicado: 15 May 2007 13:39
por Grumete
Prueba sustituyéndo las variables que tienes por las que te digo yo, cojona.

Publicado: 15 May 2007 13:44
por Party Boy
Perdona, Grumete, que no habçia visto tu respuesta antes de poner yo la mía.

Eres un hente de hamor, era lo del register_globals.

Que os felen con pasión por darme esta hayuda.

Publicado: 15 May 2007 16:06
por Grumete
Estamos para ayudar, hamigo. (aznar)

Publicado: 19 May 2007 22:46
por Party Boy
Sigo con mis problemas básicos.

Tengo este pequeño script de prueba, que funciona perfectamente, al hilo de lo anterior que os puse:

Código: Seleccionar todo

<?
session_start();
if(!isset($SESSION)){
header("location:login.php");
} else {
echo "<html><body>";
echo "Bienvenido ";
echo $SESSION["nombre"]." ";
echo $SESSION["apellidos"];
echo "<br>Has entrado con el nombre de usuario ";
echo $SESSION["login"];
echo "<br>Y el tipo de usuario es ";
echo $SESSION["tipousuario"];
echo "<br>Para cerrar la sesión, pulsa: <a href='logout.php'>logout</a>";
echo "</body></html>";
}
?>


El caso es que tengo que insertar algunas de estas variables de sesión en un HTML normal, pero no se como tengo que escribirlo para que lo pille.

El código sería algo así (no pongo todo, que es muy tocho):

Código: Seleccionar todo

          <td width="25" height="30" align="right" valign="middle"><img src="pics/usuario_conectado.gif" alt="usuario conectado" width="19" height="16" /></td>
          <td width="135" align="right" valign="middle" class="styletext2">EL NOMBRE IRIA AQUÍ</td>


HAYUDA HAMIGOS.

Publicado: 20 May 2007 05:34
por arafat

Código: Seleccionar todo

echo '<td width="25" height="30" align="right" valign="middle"><img src="pics/usuario_conectado.gif" alt="usuario conectado" width="19" height="16" /></td>
          <td width="135" align="right" valign="middle" class="styletext2">'.$aqui_su_variable.'</td>';

Publicado: 20 May 2007 10:02
por Party Boy
No me funciona.

Tanto si pongo:

Código: Seleccionar todo

<td width="135" align="right" valign="middle" class="styletext2">'.$SESSION["nombre"].'</td>


Como si pongo:

Código: Seleccionar todo

<td width="135" align="right" valign="middle" class="styletext2">'.$nombre.'</td>


Me aparece escrito exactamente eso en vez del contenido de la variable.

Supongo que me faltará por poner algo en la cabecera o algo así. ¿no?