Comunidad de diseño web y desarrollo en internet online

Que debo mejorar con mi código

Citar            
MensajeEscrito el 07 Jul 2011 09:09 pm
Hola, llevo 3 meses practicando php y acabo de hacer ese código, y quisiera saber que puedo mejorar con el código, o que me recomiendan para mejorarlo y mejorarme como programador, esto son los códigos:
Login.php

Código PHP :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<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>
<link href="estilos.css" type="text/css" rel="stylesheet" />
<script type="text/javascript" language="javascript" src="funciones.js"></script>

</head>
<body>
<h1>Comprobar el Registro</h1>

<center>
<form method="post" action="" name="form">
<table border="0">
<tr>
<th colspan="2">Registrado?</th>
</tr>
<tr>
<td width="100" height="50">Usuario</td><td width="165"><input type="text" name="user" /></td>
</tr>
<tr>
<td width="100" height="50">Password</td><td><input type="password" name="pass" /></td>
</tr>
<tr>
<td width="50" colspan="2">¿Olvidaste tu contraseña? 
<input type="submit" name="login" value="Log-in" style="float:right;" onclick="validar()"/></td>
</tr>
</table>
</form>

<?php
require_once('class.php');
$Bd= new Bd('sm','root','');

if(isset($_POST["login"]) && $_POST["login"]=="Log-in"){
$log= new Login();
$log->registrado($_POST["user"],$_POST["pass"]);

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

-----------------------
estilos.css

Código :

/*** Estilos de login.php ***/
body{
   background:#C96;
   padding:7px;
   font: bold 15px "Palatino Linotype", "Book Antiqua", Palatino, serif;
}
table{
   background:#96F;
   border-radius:7px;
}
td{
   text-align:center;
}

---------------------------
funciones.js

Código Javascript :

function validar(){
   var form = document.form;
   if(form.user.value==0){
      alert("ingrese su nombre");
      form.user.value="";
      form.user.focus();
      return false;
   }
   if(form.pass.value==0){
      alert("ingrese su password");
      form.pass.value="";
      form.pass.focus();
      return false;
   }
   form.submit();
}

-------------------------------------
class.php

Código PHP :

<?php
class Bd{
   private $bd;
   private $bduser;
   private $bdpass;
   
   public function __construct($nombrebd,$bdusuario,$bdpassword){
      $this->bdpass=$bdpassword;
      $this->bduser=$bdusuario;
      $this->bd=$nombrebd;
      mysql_connect('localhost',$bdusuario,$bdpassword)or die('No te conectaste :(');
      mysql_select_db($nombrebd)or die('no existe la base de datos');
   }
}
class Login{
   private $user;
   private $pass;
   
   public function registrado($usuario,$password){
      $this->user=$usuario;
      $this->pass=$password;
      $sql="SELECT * 
         FROM lista 
         WHERE user='".$usuario."' 
         AND pass='".$password."'";
      $query=mysql_query($sql);
      $con="0";
      while($filas=mysql_fetch_array($query)){
         $con++;
      }
      if($con=="0"){
         echo "Usuario no Registrado<br>";
         echo "<a href='registro.php'>Registrarme!!!</a>";
      }else{
         echo "Aquél Usuario está Registrado!!";
      }   
   }
}
?>

Código MySQL :

CREATE DATABASE sm;
USE sm;
CREATE TABLE `lista` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `user` varchar(50) CHARACTER SET utf8 COLLATE utf8_spanish_ci NOT NULL,
  `pass` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
  `email` varchar(50) CHARACTER SET utf8 COLLATE utf8_spanish_ci NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

INSERT INTO `lista` VALUES (1,'Juan','hola','[email protected]');
INSERT INTO `lista` VALUES (2,'fito','1234','[email protected]');

Haber si me dicen que puedo mejorar, aunque no crean me esforcé xD

Por RubenJ

2 de clabLevel



 

firefox
Citar            
MensajeEscrito el 07 Jul 2011 09:11 pm
Me olvidé decirles que sirve para verificar si el usuario está registrado o no.
Y deben modificar la base la base de datos con su usuario y clave.

Por RubenJ

2 de clabLevel



 

firefox
Citar            
MensajeEscrito el 08 Jul 2011 07:17 pm
Los requires e includes siempre van en la primera linea ya que estos pueden contener funciones como el envio de headers y otros,
* tu clase Bd es innecesaria claramente la podrias poner en una simple funcion
* tu query SQL tiene fallos de seguridad se podria ahcer una Inyeccion sql facilmente leete esto.
http://es2.php.net/mysql_real_escape_string,

te falta comentar tu codigo , ahora no lo vees pero a la larga tu codigo crecera a cientos de lineas y archivos , por lo cual es siempre buena costumbre poner comentarios de que hace , cada clase, funcion, metodo etcetera , ya que yo estoy padeciendo con eso, y tambien con las versiones me hize bolas, por q no las psue ahroa estoy volviendo a rehacer todo , por que me canse de bsucar que cosa iba con esa cosa. es mejor empezar de 0 pero bien.

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 08 Jul 2011 09:59 pm
Aporto lo mío ya que tuadmin ha mencionado lo más importante.

Deberías programar en HTML5 y olvidar el XHMTL. Además hay cosas sospechosas.

Código HTML :

<title>Documento sin título</title> 

Mmmm... ¿Copiado de Dreamweaver?.

Código HTML :

<center> 

Obsoleto. Mejor usa text-align: center; o margin: auto;

Código HTML :

font: bold 15px "Palatino Linotype", "Book Antiqua", Palatino, serif;

Esas tipografías no son estandar. Solo tú las verás (y algún que otro visitante que por casualidad también las tenga en su computador). Mejor usa CSS para cargar fuentes no estandar o usa reemplazo de fuentes estándares.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 09 Jul 2011 04:57 am
Gracias por las recomendaciones y críticas, voy a empezar a comentar las lineas y a averiguar sobre la inyección sql, sobre lo del dreamweaver el html y el title suelo escribirlo por mi cuenta al igual que el meta del utf8 pero esta vez se me pasó, sobre el center, estoy empezando a cambiarlo por css y sobre las fonts voy a empezar a seguir las estándar, gracias por reponder.

Por RubenJ

2 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.