Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: neopuerta360 en 22 Diciembre 2010, 15:14 pm



Título: Registro de usuario con mysql no me funciona !
Publicado por: neopuerta360 en 22 Diciembre 2010, 15:14 pm
Hola a  todos y feliz navidad! Tengo un problema con un codigo q no me funciona...el problema esta en q cuando el usuario va inisiar sesion...no puede entrar....me sale un error, aqui esta  el codigo.


Código
  1. <title><? echo $titulo; ?>-Entrar</title>
  2. <?
  3. include("config.php") ;
  4. if($entrar) {
  5. function quitar($texto) {
  6. $texto = trim($texto) ;
  7. $texto = htmlspecialchars($texto) ;
  8. return $texto ;
  9. }
  10. $nick = quitar($nick) ;
  11. $contrasena = quitar($contrasena) ;
  12. $tema = quitar($tema) ;
  13. $resp = mysql_query("select contrasena,tema from usuarios where nick='$nick'") ;
  14. $datos = mysql_fetch_array($resp) ;
  15. if(mysql_num_rows($resp) != 0) {
  16. if($datos[contrasena] == $contrasena) {
  17. setcookie("npnick",$nick,time()+3600) ;
  18. setcookie("nptema",$tema,time()+3600) ;
  19. header("location: index.php") ;
  20. }
  21. else {
  22. echo "La contraseña es incorrecta. Haz click <a href=javascript:history.back()>aquí</a> para regresar." ;
  23. }
  24. }
  25. else {
  26. echo "Este usuario no existe en la base de datos." ;
  27. }
  28. }
  29. else {
  30. echo "
  31. <form method=post action=index.php?id=entrar>
  32. <b>Nick:</b><br>
  33. <input type=text name=nick maxlength=20 class=form><br>
  34. <b>Contraseña:</b><br>
  35. <input type=password name=contrasena maxlength=20 class=form><br><br>
  36. <input type=submit name=entrar value=Entrar class=form>
  37. </form>
  38. " ;
  39. }
  40. ?>
  41.  


Título: Re: Registro de usuario con mysql no me funciona !
Publicado por: Shell Root en 22 Diciembre 2010, 15:52 pm
y cual es el error, no somos adivinos.


Título: Re: Registro de usuario con mysql no me funciona !
Publicado por: xassiz~ en 22 Diciembre 2010, 16:13 pm
Así por encima.. ¿La variable $contraseña?


Título: Re: Registro de usuario con mysql no me funciona !
Publicado por: Shell Root en 22 Diciembre 2010, 16:47 pm
Observaciones,

De donde sale el valor de la variable $entrar?
Código
  1.  if($entrar){

-----

Para qué el TRIM(), en la función QUITAR();?
Código
  1.    function quitar($texto){
  2.      $texto = trim($texto);
  3.      $texto = htmlspecialchars($texto);
  4.      return $texto ;
  5.    }
Si existe un usuario con el nick 'Shell Root', podrá loggearse?

-----
El código más organizado, y creo que deberías de re-estructurar esos campos con caracteres especiales en la base de datos...
Código
  1. <title><?PHP echo $titulo; ?> - sLogin</title>
  2. <?PHP
  3.  include( "config.php" );
  4.  if( $sLogin ){
  5.    function sRemove( $sString ){
  6.      $sString = trim( $sString );
  7.      $sString = htmlspecialchars( $sString );
  8.      return $sString;
  9.    }
  10.  
  11.    $sNick = sRemove( $sNick );
  12.    $sPassword = sRemove( $sPassword );
  13.    $sTopic = sRemove( $sTopic );
  14.  $sSQL = "SELECT Password, Topic FROM tblUsers WHERE nick = '".$sNick."'";
  15.    $sQuery = mysql_query( $sSQL );
  16.    $sFetchRows = mysql_fetch_array( $sQuery );
  17.    if( mysql_num_rows( $sQuery ) != 0 ){
  18.      if( $sFetchRows['Password'] == $sPassword ){
  19.        setcookie( "npnick", $sNick, time() + 3600 );
  20.        setcookie( "nptopic", $sTopic, time() + 3600) ;
  21.        header( "location: index.php" );
  22.      }else{
  23.        echo "La Password es incorrecta. Haz click <a href = 'javascript:history.back()'>aquí</a> para regresar.";
  24.      }
  25.    }else{
  26.      echo "Este usuario no existe en la base de datos.";
  27.    }
  28.  }else{
  29.    echo "<form method='POST' action='index.php?id=sLogin'>
  30.      <b>Nick:</b><br>
  31.      <input type='text' name='nick' maxlength='20' class='form'><br>
  32.      <b>Password:</b><br>
  33.      <input type = 'password' name = 'Password' maxlength = '20' class = 'form'><br><br>
  34.      <input type = 'submit' name = 'Login' value = 'Login' class = 'form'>
  35.     </form>";
  36.  }
  37. ?>


Título: Re: Registro de usuario con mysql no me funciona !
Publicado por: neopuerta360 en 22 Diciembre 2010, 20:58 pm
Gracias! voy aver si me funciona....


Título: Re: Registro de usuario con mysql no me funciona !
Publicado por: Spider-Net en 23 Diciembre 2010, 16:04 pm
Para qué el TRIM(), en la función QUITAR();?
Código
  1.    function quitar($texto){
  2.      $texto = trim($texto);
  3.      $texto = htmlspecialchars($texto);
  4.      return $texto ;
  5.    }
Si existe un usuario con el nick 'Shell Root', podrá loggearse?

La verdad es que sí que podrá, creo que el trim() ahí no está de más.

Citar
string trim ( string $str [, string $charlist ] )
Esta función devuelve una cadena con los espacios en blanco eliminados del inicio y final del str. sin el segundo parámetro, trim() eliminará estos caracteres:

" " (ASCII 32 (0x20)), espacio simple.
"\t" (ASCII 9 (0x09)), tabulación.
"\n" (ASCII 10 (0x0A)), salto de línea.
"\r" (ASCII 13 (0x0D)), retorno de carro.
"\0" (ASCII 0 (0x00)), el byte NUL.
"\x0B" (ASCII 11 (0x0B)), tabulación vertical.

http://php.net/manual/es/function.trim.php

trim() borra los espacios al principio y final de la cadena, pero no los que están entre dos palabras.


Título: Re: Registro de usuario con mysql no me funciona !
Publicado por: Shell Root en 24 Diciembre 2010, 02:25 am
:o eso no lo sabía...


Título: Re: Registro de usuario con mysql no me funciona !
Publicado por: cassiani en 27 Diciembre 2010, 23:06 pm
si vale, igual que en vb


Título: Re: Registro de usuario con mysql no me funciona !
Publicado por: neopuerta360 en 3 Enero 2011, 16:15 pm
Shell Root Tengo una pregunta como hago esto:

Citar
creo que deberías de re-estructurar esos campos con caracteres especiales en la base de datos...

Por q creo q el error esta en la base de datos...x q el codigo esta bien! :)


Título: Re: Registro de usuario con mysql no me funciona !
Publicado por: neopuerta360 en 3 Enero 2011, 16:32 pm
hola, Nesesito ayuda con este codigo q no  me funciona:...

Código
  1. <title><? echo $titulo ?>-Enviar Boletin</title>
  2. <?php
  3. if (isset ($enviar)) {
  4. if($enviar) {
  5. function quitar($texto) {
  6. $texto = trim($texto) ;
  7. $texto = htmlspecialchars($texto) ;
  8. return $texto ;
  9. }
  10. $fecha = time() - 25200 ;
  11. $mensaje = quitar($mensaje) ;
  12. include ("conexion.php");
  13. $resp = mysql_query ("SELECT nick FROM usuarios where boletin='si'",$conexion);
  14. while ($row = mysql_fetch_array ($resp)) {
  15. $nick = $row ["nick"];
  16. $mensaje = $_POST ["mensaje"];
  17. }
  18. }
  19. else {
  20. $remitente =Boletin ;
  21. mysql_query("insert into mensajes (fecha,destinatario,remitente,asunto,mensaje) values ('$fecha','$nick','$remitente','Boletin','$mensaje')") ;
  22. echo "<p>El Boletin ha sido enviado con éxito. Haz click <a href=index.php>aquí</a> para regresar." ;
  23. }
  24. }
  25. else {
  26. ?>
  27. <form action="<?php $PHP_SELF ?>" method="post">
  28. Introduce el mensaje:<br><br>
  29. <textarea name="mensaje" cols=30 rows=5 class="form"></textarea>
  30. <br><br>
  31. <input type="submit" name="enviar" value="Enviar Boletin" class="form">
  32. </form>
  33.  
  34. <?php
  35. }
  36. ?>
  37.  


Título: Re: Registro de usuario con mysql no me funciona !
Publicado por: Shell Root en 5 Enero 2011, 06:38 am
Código
  1. <title><? echo $titulo; ?>-Enviar Boletin</title>
  2. <?php
  3. if (isset ( $enviar )){
  4. if( $enviar ){
  5. function quitar( $texto ){
  6. $texto = trim( $texto );
  7. $texto = htmlspecialchars( $texto );
  8. return $texto;
  9. }
  10. $fecha = time() - 25200;
  11. $mensaje = quitar( $mensaje );
  12. include ( 'conexion.php' );
  13. $resp = mysql_query ( "SELECT nick FROM usuarios WHERE boletin='si'", $conexion );
  14. while ($row = mysql_fetch_array ($resp)) {
  15. $nick = $row ['nick'];
  16. $mensaje = $_POST ['mensaje'];
  17. }
  18. }else{
  19. $remitente = Boletin;
  20. mysql_query( "INSERT INTO mensajes (fecha, destinatario, remitente, asunto, mensaje) VALUES ('". $fecha ."', '". $nick ."', '". $remitente. "', '". Boletin. "', '". $mensaje ."')" );
  21. echo "<p>El Boletin ha sido enviado con éxito. Haz click <a href='index.php'>aquí</a> para regresar.";
  22. }
  23. }else{
  24. ?>
  25. <form action='<?php $PHP_SELF; ?>' method='POST'>
  26. Introduce el mensaje:<br><br>
  27. <textarea name='mensaje' cols='30' rows='5' class='form'></textarea>
  28. <br><br>
  29. <input type='submit' name='enviar' value='Enviar Boletin' class='form'>
  30. </form>
  31.  
  32. <?php
  33. }
  34. ?>


Título: Re: Registro de usuario con mysql no me funciona !
Publicado por: neopuerta360 en 5 Enero 2011, 15:54 pm
1000 gracias Shell Root...