Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - Jumarras

Páginas: 1 2 [3] 4 5
31
Bueno siquillote, no he usado tu sistema de login al 100%, solo lo he usado para aprender el poo, es asi como yo aprendo, con ejemplos, y asi es como aprendi php xD. Este sistema que he usado lo he "basado" en el tuyo, porque he aprendido de el, pero he usado el login y registro que uso yo, el que no esta en poo para hacerlo.

Pero bueno, no queria "plagiar" nada, si es por eso, te pongo los creditos.

Salu2

32
Hola, hace mucho que no comento nada en el foro, siempre hos adelantais a las respuestas xD. Bueno, pues he estado empezando a mirar un poco el POO, y la verdad, me ha parecido sencillo (cuando he visto el sistema de login de siquillote y algun otro post). El caso es que he estado pasando mis archivos que tenia hechos, como el sistema de usuarios, a POO, y me gustaria compartirlo con vosotros. Se parece al sistema de loguin de siquillote, pero este lo hice yo usando de base mi login. Asi que esta comprobado que funciona correctamente.

Este sistema ya viene protegido contra MySQL Injection, o eso creo, porque los $_POST estan filtrados. La contraseña de los usuarios esta encriptado en MD5. Aun asi me gustaria que le hechaseis un vistazo y comentarlo para haber como puedo mejorarlo o lo que sea.

Salu2

login.php
Código: [Seleccionar]
<?php
class login
{
    public 
$user;
    public 
$post_password;
    public 
$query;
    public 
$mysql_password;
    public 
$error;
    public 
$ok;
    public 
$numrows;
    public 
$fields;

    public function 
__construct($username$password)
    {    
        include 
"config.php";
        
$this->user                 =    $username;
        
$this->post_password    =    $password;
        
$this->query             =    mysql_query("SELECT * FROM users WHERE username = &#39;".$this->user."&#39;");
        
$this->mysql_password    =    mysql_fetch_array($this->query);
        
$this->numrows            =    mysql_num_rows($this->query);
        
$this->error            =    "Nombre de usuario o contraseña incorrectos.";
        
$this->ok                =    "Bienvenido ".$this->user.". Te has logueado correctamente.";
        
$this->fields            =    "Por favor, rellena todos los campos.";
    }
    public function 
check()
    {
        if(
$this->user && $this->post_password)
        {
            if(
$this->numrows !=0)
            {
                if(
$this->mysql_password[&#39;password&#39;] == md5($this->post_password))
                
{
                    
session_start();
                    
$_SESSION[&#39;username&#39;] = $this->user;
                    
echo $this->ok;
                }
                else
                {
                    echo 
$this->error;
                }
            }
            else
            {
                echo 
$this->error;
            }
        }
        else
        {
            echo 
$this->fields;
        }
    }
}
include_once 
"clear.php";
$login = new login(clear($_POST[&#39;username&#39;]), clear($_POST[&#39;password&#39;]));
echo $login->check();
?>

login.html
Código: [Seleccionar]
<form name="login" method="post" action="login.php">
    Username: <input name="username" class="textbox" type="text"></br>
    Password: <input name="password" class="textbox" type="password"></br>                   
    <input name="login" value="Login" class="button" type="submit"></br>       
</form>

register.php
Código: [Seleccionar]
<?php
class register
{
    public 
$user;
    public 
$password;
    public 
$repassword;
    public 
$email;
    public 
$fullname;
    public 
$query;
    public 
$numrows;
    public 
$error;
    public 
$error2;
    public 
$error3;
    public 
$error4;
    public 
$ok;
    public 
$fields;
    public 
$regquery;
    
    public function 
__construct($username$password$repeatpassword,  $email$fullname)
    {
    include 
"config.php";
        
$this->user         =    $username;
        
$this->password        =    $password;
        
$this->repassword    =    $repeatpassword;
        
$this->email        =    $email;
        
$this->fullname        =    $fullname;
        
$this->query        =    mysql_query("SELECT * FROM users WHERE username = &#39;".$this->user."&#39;");
        
$this->numrows        =    mysql_num_rows($this->query);
        
$this->error        =    "Nombre de usuario en uso.";
        
$this->error2        =    "Las contraseñas no coinciden";
        
$this->error3        =    "Nombre completo y/o nombre de usuarios superan los 25 caracteres.";
        
$this->error4        =    "La contraseña debe tener un minimo de 6 caracteres y un maximo de 25";
        
$this->ok            =    "Te has registrado correctamente";
        
$this->fields        =    "Por favor, rellena todos los campos.";
    }
    public function 
check()
    {
        if(
$this->numrows!=0)
        {
            die (
$this->error);
        }
        if(
$this->user&&$this->password&&$this->email&&$this->fullname)
        {
            if(
$this->password == $this->repassword)
            {
                if(
strlen($this->username)>25||strlen($this->fullname)>25)
                {
                    echo 
$this->error3;
                }
                else
                {
                    if(
strlen($this->password)>25||strlen($this->password)<6)
                    {
                        echo 
$this->error4;
                    }
                    else
                    {
                        
$this->password md5($this->password);
                        
$register mysql_query("INSERT INTO `users` (`id`, `fullname`, `username`, `password`, `email`, `admin`) VALUES (NULL, &#39;".$this->fullname."&#39;, &#39;".$this->user."&#39;, &#39;".$this->password."&#39;, &#39;".$this->email."&#39;, &#39;0&#39;)");
                        echo 
$this->ok;
                    }
                }
            }
            else
            {
                echo 
$this->error2;
            }            
        }
        else
        {
            echo 
$this->fields;
        }
    }
}
include_once 
"clear.php";
$reg = new register(clear($_POST[&#39;username&#39;]), clear($_POST[&#39;password&#39;]), clear($_POST[&#39;repeatpassword&#39;]), clear($_POST[&#39;email&#39;]), clear($_POST[&#39;fullname&#39;]));
echo $reg->check();
?>

register.html
Código: [Seleccionar]
<form action='register.php' method='POST'>
    Fullaname: <input type='text' name='fullname' class="textbox"></br>
    Username: <input type='text' name='username' class="textbox"></br>
    Password: <input type='password' name='password' class="textbox"></br>
    Repeat Password: <input type='password' name='repeatpassword' class="textbox"></br>
    E-Mail: <input type='text' name='email' class="textbox"></br>
    <input type='submit' name='submit' value='Register' class="button">
</form>

clear.php
Código: [Seleccionar]
<?php
function clear($texto)
{
    
$limpio strip_tags($texto);
    
$limpio htmlspecialchars($limpio);
    
$limpio stripslashes($limpio);
    return 
$limpio;
}
?>

config.php
Código: [Seleccionar]
<?php

$error1 
= &#39;Problem connecting to Host&#39;;
$error2 = &#39;Problem connecting to MySQL&#39;;
$connect mysql_connect (&#39;hostmysql&#39;,&#39;usuariomysql&#39;,&#39;contraseñamysql&#39;) or die($error1);
$db mysql_select_db (&#39;basededatos&#39;) or die($error2);

?>

Mysql
Código: [Seleccionar]
CREATE TABLE IF NOT EXISTS `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `fullname` varchar(100) NOT NULL DEFAULT '',
  `username` varchar(25) NOT NULL DEFAULT '',
  `password` varchar(100) NOT NULL DEFAULT '',
  `email` varchar(100) NOT NULL DEFAULT '',
  `admin` char(1) NOT NULL DEFAULT '',
  PRIMARY KEY (`id`)
)

Creditos: Siquillote (del sistema de usuarios que he aprendido poo)

33
PHP / Re:Ayuda con rss en php
« en: 23 de Julio de 2010, 22:10:51 pm »
No entiendo nada de rss, ni sabia que existia, pero por lo que veo, abres y cierras todo menos el <rss> y el <chanel>, tal vez devas poner el </chanel> y </rss> al final.

34
PHP / Re:[Help] Error en la Session_start y login
« en: 20 de Abril de 2010, 18:37:38 pm »
hola shapari, creo que poniendo de esta forma el archivo funcionaria:

Código: [Seleccionar]
<?php
session_start
();
if (
$_session[&#39;username&#39;] = $exe[&#39;username&#39;] && $exe[&#39;password&#39;] == $passwordcript])
{
 echo 
"
 <form method=&#39;post&#39; name=&#39;form2&#39;>
<table width=&#39;95%&#39; border=&#39;0&#39; cellspacing=&#39;0&#39; cellpadding=&#39;1&#39; align=&#39;center&#39; class=&#39;poll&#39;>
<thead>
</thead>
   <tr>
      <td align=&#39;center&#39;><div align=&#39;center&#39;><span class=&#39;Estilo1&#39;>Usuario</span></div>
        <label>
        <div align=&#39;center&#39;>
          <input name=&#39;username&#39; type=&#39;text&#39; id=&#39;username&#39; value="
.$_POST[&#39;username&#39;]!=&#39;&#39; ? print($_POST[&#39;username&#39;]) : print(&#39;&#39;); .">
          
<br><br>
            <
span class=&#39;Estilo1&#39;>Password</span><br><br>
            
<input name=&#39;password&#39; type=&#39;password&#39; id=&#39;password&#39; value=".$_POST[&#39;password&#39;]!=&#39;&#39; ? print($_POST[&#39;password&#39;]) : print(&#39;&#39;); ."><br>
            
<label><br>
            <
input name=&#39;Login&#39; type=&#39;submit&#39; id=&#39;Login&#39; value=&#39;Login&#39;>
            
</label>
        </
div>
        </
label></td>
   </
tr>
</
table>

</
form>";
}
else
{
include ("
Config.php");

if(
$_POST[&#39;Login&#39;]=="Login") 
{
$username = htmlspecialchars($_POST[&#39;username&#39;]);
$password = htmlspecialchars($_POST[&#39;password&#39;]);

if(empty(
$username) || empty($password)) 
{
echo "
<center><p><br><p><font color=red>All fields are Mandatory Todos Los  Campos Son  Obligatorios</font>";

else 
{
//Encriptando Password
$passwordsha = sha1($password, true);
$passwordcript = base64_encode($passwordsha);
//Consultando el Usuario
$qry = "SELECT usernamepassword FROM user_game WHERE username=&#39;$username&#39;" or die("Error in $qry");
$exe mysql_query($qry$connect) or print(mysql_error());
//Comparando la Password
if($exe[&#39;password&#39;] == $passwordcript && $exe[&#39;username&#39;] == $username) 
{
echo "Login Incorrecto";
}
else
{
echo"Te has logueado";
}
}
}
}
?>

35
PHP / Re:[Help]Seleccion de Pais
« en: 18 de Abril de 2010, 12:07:00 pm »
lo que puedes hacer es guardar las imagenes dependiendo del nombre de cada pais, es decir, si un usuario es de venezuela y lo tienes guardado en la mysql como venezuela, llamas a la imagen de venezuela. por ejemplo:

Código: [Seleccionar]
<?php $seleccionar mysql_query("SELECT FROM pais WHERE usuario = &#39;".$_SESSION[&#39;usuario&#39;]."&#39;"); ?>
<img rc=imagenes/pais/<?php echo$select;?>.gif></img>


haber si em explico mejor,

36
PHP / Re:Resource id #11
« en: 18 de Abril de 2010, 11:56:22 am »
gracias west west xD me ha funcionado. Salu2

37
PHP / Resource id #11
« en: 17 de Abril de 2010, 22:11:21 pm »
Hola, estoy intentando borrar una palabra de un texto que se encuentra en la mysql, por eso, uso este código de aquí abajo. No se que pasa, pero cada vez que intento borrar el texto desde la mysql, no me tira ningún error concreto, sino que en la mysql se guarda este texto: Resource id #11

El código funciona así. Es un inlude de otra pagina, por eso la session esta abierta. Al entrar en la pagina, encuentra el texto que se encuentra en la mysql dependiendo del usuario logueado. Despues, si encuentra algún texto, borra el texto, en este caso, el texto se saca desde la url con un GET, y despues hace un UPDATE de la mysql del texto. Pero como ya he dicho, no hecha el error, aparece el texto de Deleting... es decir, que ha hecho todo bien, pero en la mysql, no aparece el texto correctamente con la palabra borrada, sino el Resource id #11

Haber si me podéis decir porque es este error o alguna solución para el error, que me he comido el tarro pero no consigo sacarlo adelante.

Salu2

Código: [Seleccionar]
<?php

$username 
$_SESSION[&#39;username&#39;];
include"config.php";
$find mysql_query("SELECT friends FROM users WHERE username = &#39;$username&#39;");
if(
$find)
{
$deleteuser $_GET[&#39;delete&#39;].",";
$delete str_replace($deleteuser, &#39;&#39;, $find);
$set mysql_query("UPDATE `users` SET `friends` = &#39;$delete&#39; WHERE username = &#39;$username&#39;");
if($set
{     
echo&#39;Deleting...&#39;;
}
}

?>

38
Tutoriales PHP / Poner (...) al superar una cantitad de caracteres
« en: 11 de Abril de 2010, 17:48:39 pm »
Estaba copiando el tipico (leer mas), (read more) o (...) de las webs de novedades y demas, cuando me ha venido a la cabeza hacer una funcion sobre eso. Como queria compartirlo, aqui os dejo. Lo malo de esto, es que corta las palabras de la mitad, contando los caracteres que haya, espacios incluidos. por ejemplo, si el limite de caracteres es de 100, y la ultima palabra es TEMA y la  letra E es el caracter numero 100, aparecera TE (...). pero bueno, no todo es perfecto.

/**********************OPCION 1************************/

Código: [Seleccionar]
<?php
function cut($text//creamos la funcion
{
$count strlen($text); //contamos los caracteres que hay en el texto
$limit 100//ponemos un limite para los caracteres (no sobrepasara los 100 caracteres)
if($count $limit// hacemos un if, si el texto tiene mas de 100 caracteres...
{
return substr($text0$limit)." (leer mas)"//cortamos el texto y ponemos el (leer mas) por si tiene mas maracteres que 100
}
else //si el texto no tiene mas de 100 caracteres, ponemos el mismo texto
{
return $text;
}
}
?>

y para usar el texto, hariamos un include al archivo php y ponemos cut() donde queramos que corte el texto:

Código: [Seleccionar]
<?php 

$text 
cut("Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla");

echo 
$text;

?>

/**********************OPCION 2************************/

en codigo simple y sin funcion, seria de esta otra forma:

Código: [Seleccionar]
<?php

$text 
"Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla";

$count strlen($text); //contamos los caracteres que hay en el texto
$limit 100//ponemos un limite para los caracteres (no sobrepasara los 100 caracteres)
if($count $limit// hacemos un if, si el texto tiene mas de 100 caracteres...
{
echo substr($text0$limit)." (leer mas)"//cortamos el texto y ponemos el (leer mas) por si tiene mas maracteres que 100
}
else 
//si el texto no tiene mas de 100 caracteres, ponemos el mismo texto
{
echo $text;
}

?>

Salu2

39
PHP / Re:[AYUDA] PHP
« en: 14 de Marzo de 2010, 18:46:29 pm »
Hola alegus9, mira, es facil aprender php, o por lo menos para mi, no soy un experto en el tema, pero te puedo decir que puedes aprender con videotutoriales, hay un autor que sube sus videotutoriales a youtube, si sabes escribir, podras aprender.

Lo malo k esta en ingles, pero viendo lo que escribe, se entiende facilmente. Tiene mas de 200 videos, empezando desde las variables, mysql, hasta api-s de twiter, o por lo menos ese es el ultimo k ha subido xD

te recomiendo que veas los videos de como crear una web con login, registro, admin... son como unos 20 videos, pero seguro k con eso aprendes.

el link a su perfil es este

http://www.youtube.com/user/phpacademy

y los videos k te recomiendo mirar son estos:

http://www.youtube.com/user/phpacademy#p/c/7C9AFC3942AC8E40/0/4oSCuEtxRK8


salu2 y suerte!

40
PHP / Re:[Ayuda] Error sistema de usuarios
« en: 28 de Febrero de 2010, 17:01:30 pm »
hola, en tutoriales hay miles de ejemplos de como hacer la conexión a mysql...

unas cuantas osas mas...

el include lo pondría despues de "-if $_POST['enviar']-", no necesitas hacer un logueo a la mysql sin primero saber los datos del usuario, otra cosa, quita el "-require 'config.php'-", no sirve para nada...

no se porque encriptas 2 veces la contraseña con md5, y tampoco entiendo por que pones "-[b ]include("conectar.php");[/b ]-" pudiendo poner solo "-include("conectar.php");-"


para no entrar en el panel si no estas logueado, es fácil, SI USAS SESSION:

Código: [Seleccionar]
if ($_SESSION['usuario']) //el usuario cambias por tu session del usuario user, nick, usuario...
{
 //todo el codigo del panel
}
else
{
die("No estas logueado, si quieres usar el panel, logueate")
}


aunque si quieres poner en archivos a parte puedes crear un archivo llamado session.php y meter este código

Código: [Seleccionar]
if ($_SESSION['usuario']) //el usuario cambias por tu session del usuario user, nick, usuario...
{}
else
{
die("No estas logueado, si quieres usar el panel, logueate")
}

y hacer un include en panel.php, al principio de la pagina y despus de <?php, si usas este método puedes crear mas paginas y poner solo el include, en vez de andar copiando y pegando todo el rato el mismo código.

salu2

41
Minichat o MC / Re:Wamp Server
« en: 20 de Febrero de 2010, 10:57:45 am »
Hola, mira, yo en wamp no lo he usado nunca, solo xampp, cosa, que no se como hacer un login ahí, pero dudo mucho que necesites poner @localhost, y el nombre de la base de datos en mysql, seguramente no sea la misma k el nombre de usuario, eso deberías mirarlo en tu mysql y verificar si se llama así.

prueba a poner:

$user = "root";
$dbname = ""; // esto lo deberías mirar en tu mysql y ponerlo entre comillas.


Salu2

42
PHP / Re:[Error ] mysql_num_rows
« en: 31 de Enero de 2010, 21:50:46 pm »
el mysql:num_rows, cuenta los mismos resultados encontrados en la mysql, EN NUMEROS, por eso, poniendo mysql_num_rows() no funcionara, deves usar de esta forma:

Código: [Seleccionar]
$numrow = mysql_num_rows($result); //hacemos una variable con num_rows
if($numrow!=0) //comprobamos si el usuario existe, si no es 0, no puedes continuar
{
die "Nombre de usuario en uso."; //aqui el error
}

por lo tanto, reemplaza esta parte de codigo por la que te he dado antes:

Código: [Seleccionar]
if(mysql_num_rows($result)){ //error  aqui tambien
echo "Nombre de usuario en uso.";
} else {
mysql_result($result);//error aqui
//procedimos a comprobar contraseñas


yo no usaria mysql_result(); pudiedo terminar la lectura del codigo con un die("");


salu2

43
PHP / Re:Problema con SESSION
« en: 27 de Enero de 2010, 15:21:59 pm »
hola, a simple vista ese codigo esta bien, no tiene errores, yo tambien suelo tener guerra con sassion_start(); y queo recordar que una vez lo solucione poniendo session_start(); en otra fila k no sea <?php, parece una tonteria, pero prueba.

tambien, comprueba los includes k haces y las sessiones k hay en ellas...

y otra cosa k puedes hacer, pon session_start(); donde creas la session, es decir, asi:

Código: [Seleccionar]
session_start();
$_SESSION['user']="$user";
$_SESSION['pass']=md5($pass);


salu2

44
PHP / Re:[Ayuda] añadir una cantidad a una fila MYSQL
« en: 22 de Enero de 2010, 16:55:01 pm »
pues yo uso xampp, y al no poner las variables, no me coje las consultas mysql  :confused:

tal vez sea dependiendo k programa uses para hacerte el server en local...

45
PHP / Re:[Ayuda] añadir una cantidad a una fila MYSQL
« en: 22 de Enero de 2010, 15:11:06 pm »
hola de nuevo

bueno despidstado, antes se me olvido explicartelo, en el php5, las sentencias de mysql no se pueden usar cin una variable es decir

esto funciona
Código: [Seleccionar]
$conectar = mysql_connect("host","user","pass");pero no este otro
Código: [Seleccionar]
mysql_connect("host","user","pass");
y por otro lado, creo k en ese codigo hay un error en la suma, prueba sumar sin espacios, asi:

Código: [Seleccionar]
$query = "SELECT * FROM `usuarios` WHERE nick = '".$autor."'";
$query = mysql_query ("UPDATE `usuarios` SET post = post+1 WHERE nick ='".$autor."'");
mysql_query($query);

es decir:

post = post+1

Páginas: 1 2 [3] 4 5