[TUTORIAL] Sistema de Usuarios-PHP MySQL

INTRODUCCIÓN
Pues me he dado a la tarea de hacerte un tutorial algo básico para un sistema de registro, explicado paso a paso. Bien, pues por decir "básico" me refiero a que no tiene opciones muy avanzadas pero es completamente funcional e incluso adaptable para tu web.
Esto lo hago con el propósito de difundir lo que hasta ahora sé y espero que en verdad te sea útil. Pidiendo únicamente que reconozcas el autor principal de este pequeño tutorial, yo Geze. (Este tutorial lo puedes encontrar en diferentes webs como ComoCrearTuWeb.com, TuWebDeInformatica.com; todos estos bajo mi nick: Geze)
CONOCIMIENTOS MÍNIMOS
Lo primero que necesitamos es saber lo esencial de PHP, como: manejar variables, manejar cadenas de texto; funciones como if, else... y claro, saber algo sobre bases de datos, no mucho, les repito, mínimo. Si sabes al menos lo primario de esto, se te hará muy fácil.
MATERIAL
Lo que necesitaremos además de ganas de trabajar es un servidor que tenga instalado PHP y MySQL para las bases de datos. Si no tienes un servidor con esto puedes buscar información en internet de cómo instalarlo en el servidor que estás usando, hay mucha información.
Por lo pronto si no tienes ni servidor, podemos utilizar uno gratuito que ofrese UEUO.COM
Puedes registrar tu cuenta gratis desde este enlace: http://www.freewebhostingarea.com/
Te aconsejo poner en el desplegable de “Select Subdomain” la opción de ueuo.com
Una vez que nos registremos, recuerda los datos del FTP para conectarnos al servidor (de forma rápida y si seguiste mi consejo anterior serán estos: Servidor ueuo.com Usuario mipagina.ueuo.com Contraseña *****
Ahora ya tenemos una servidor con PHP y MySQL, pero eso es sólo el principio, si queremos continuar con esto necesitaremos un editor para escribir el código fuente del programa. El que uses está bien, incluso el Bloc de Notas de Windows sirve o el Gedit de Ubuntu. [Recomiendo en Windows: NotePad++ o PsPad] [Recomiendo en Linux: BlueFish ]
¡A TRABAJAR!
Iremos a la página de UEUO.COM e iniciaremos sesión con nuestra cuenta que antes ya hemos creado.
http://www.ueuo.com/
El Username es el nombre de nuestra página, por ejemplo: mipagina.ueuo.com y la Password nuestra contraseña (¡duhg!).
Una vez iniciada sesión iremos al apartado que dice “Create your MySQL Databases” y daremos al botón “Create DB”. Se mostrarán algunos datos para acceder a PhpMyAdmin como el “Database username” que es comúnmente un número que nos servirá para entrar a crear la bases de datos y conectarnos desde nuestro código que haremos en php, listo, ya se creo la base de datos. Daremos clic en “Main menu” y nos llevará de nuevo a la pantalla de Member Area; daremos de nuevo al apartado de la base de datos, pero ahora debe de decir algo como “Manage DB”. Daremos clic en el botón que dice “PhpMyAdmin” y observamos una ventana que nos pide un usuario y una contraseña, pues nada más ingresamos el usuario que es aquel numero que les mencioné que recordaran cuando creábamos la base de datos, el llamado “Database username”. La contraseña será la que hemos usado para registrarnos en ueuo.com. Dando los datos correctos ingresamos a PhpMyAdmin. Del lado izquierdo daremos clic sobre el enlace que tiene el mismo número que el que usamos para entrar.
Una vez seleccionada esta será la base de datos en la que crearemos una tabla para añadir los registro, si no lo sabias la tabla es donde se guardarán los valores que queramos almacenar, como noticias, direcciones o en nuestro caso, usuario y contraseña. Para añadir una tabla rellenaremos los datos que nos pide como “Nombre” y “Número de campos”. En mi caso pondré de nombre usuarios y sólo 2 campos que será uno para el Nick y otro para la contraseña, daremos clic en Continuar.
El siguiente paso es nombrar el Campo que será como lo reconoceremos (yo le pondré “nick” y al otro “pass”), el tipo de campo que será (te recomiendo varchar en los dos) y la longitud que quieres que almacene cada campo, yo le daré 15. Con esto es suficiente para crear la tabla de usuarios, pues bien, pulsaremos Grabar y eso es todo en este lado de la base de datos. Ahora continuaremos con el código que hará todo el trabajo.


En nuestro editor...
Escribiremos primero el formulario de registro, es decir, en donde pediremos a un “Nuevo usuario” que ingrese sus datos para que se identifique.

registro.html

<html>
<form action='registro.php' method='POST'>
Nick <input type='text' name='nick'>

Contrasena <input type='password' name='contrasena'>

<input type='submit' value='Enviar'>
</form>
</html>

Fácil, un formulario HTML, ya te toca a ti ponerlo más original, pero por el momento nos bastará con que pida Nick y una contraseña que repetirá dos veces. El siguiente paso es crear la página PHP que procese los datos que ha ingresado el usuario. A esta página la llamaremos justo con el mismo nombre que le hemos puesto en el atributo de la etiqueta FORM de la página registro.html, en mi caso le he puesto registro.php. Entonces esto va quedando así:

registro.php

<?php
//conexión con la base de datos
$conexion=mysql_connect('localhost','USUARIO','CON TRASENA');
//Selección de la base de datos.
mysql_select_db('BASE_DE_DATOS',$conexion);
//Recibimos lo que ingresó por teclado el usuario y lo asignamos a un variable para un mejor manejo
$nick=$_POST;
$pass=$_POST;
//Una vez recibidos el valor de cada campo, lo ingresaremos en la base de datos
mysql_query("insert into usuarios(nick,pass) values('$nick','$pass')",$conexion) or die (mysql_error());
//Le mencionamos al usuario que se ha registrado correctamente.
echo 'Te has registrado con éxito.';
?>

¿Ahora ves porque pedía conocimiento mínimo de PHP? Pues porque sería más difícil entender todo le código si no supiéramos como funciona PHP. Si no sabes mucho no te preocupes, pondré al final del enlace para que descargues los archivos y las instrucciones listos para que lo pongas en tu página.
Explicaré el código de registro.php: En la primera parte nos estamos conectando con la base de datos que en un principio creamos, tan sólo cambia los valores de USUARIO y CONTRASEÑA por tu usuario que es el número que te dieron al crear la base de datos, sí, el mismo con el que ingresamos a PhpMyAdmin. La contraseña es con la que te registraste en ueuo.com. Después estamos recibiendo los valores que se ingresaron por teclado en el formulario; pon atención en esta parte porque en el archivo de registro.html cada etiqueta de input tiene un valor de name, este valor deverá ser el mismo que el que pones en registro.php en la parte de $_POST, por ejemplo, si yo pongo en el formulario un campo con name=”geze” en la página php debería recoger el valor con $_POST ¿me entiendes?
Otra cosa importante es que en la etiqueta de form de registro.html el atributo method debe ser POST esto es porque enviamos los valores ingresados en el formulario por POST y los recibimos por POST ¿sí?
Una vez recibidos los asignamos a una variable para manejarlos mejor, depsués los estamos metiendo a la base de datos...atención aquí.
La línea de mysql_query("insert into usuarios(nick,pass) values('$nick','$pass')",$conexion) or die (mysql_error());
Quiere decir...
mysql_query(“INSERTA DENTRO nombre_de_mi_tabla en los campos (nick, contrasena) LOS VALORES('$nick',$pass'')”,$conexion) SI NO SUCEDE ESTO (mysql_error());

En donde dice nombre_de_mi_tabla será el nombre que le pusimos a la tabla cuando la cremaos en PhpMyAdmin, en mi caso le puse usuarios. Los valores de $nick y $pass son lso que ya habiamos recibido por POST y los pusimos en variable para un mejor manejo. En la parte de OR DIE lo que esté en paréntesis es una función que nos dirá si ocurrió algún erro al hacer el mysql_query. Por último imprimimos en pantalla con echo que los datos se han ingresado correctamente, para que el usuario vea qué sucedió.
Lo siguiente es hacer un formulario para iniciar sesión, con el mismo que se registró nos bastará, sólo hay que cambiar el nombre del archivo, por ejemplo entrar.html. También hay que cambiar el atributo de action en la etiqueta form por algo como entrar.php. Recuerda que será la página que procesará los valores del formulario.



Lo siguiente es hacer un formulario para iniciar sesión, con el mismo que se registró nos bastará, sólo hay que cambiar el nombre del archivo, por ejemplo entrar.html. También hay que cambiar el atributo de action en la etiqueta form por algo como entrar.php. Recuerda que será la página que procesará los valores del formulario.
Una vez hecho esto, seguiremos por hacer la página para iniciar sesión que llamaré entrar.php esta tendrá la siguiente estructura.

entrar.php

<?php
//conexión con la base de datos.
$conexion=mysql_connect('localhost','USUARIO','CONTRASEÑA');
//Selección de la base de datos.
mysql_select_db('BASE_DE_DATOS',$conexion);
//Recibimos lo que ingresó por teclado el usuario y lo asignamos a un variable para un mejor manejo
$nick=$_POST;
$pass=$_POST;
//Buscamos en la tabla si existe un usuario con ese nombre y esa contraseña
$registrado=mysql_query("select nick,pass from usuarios where nick='$nick' and pass='$pass'",$conexion) or die (mysql_error());
//Si existe un usuario con ese nick y esa contraseña le damos una session
if($usuario=mysql_fetch_array($registrado))
{
//Le damos una coockie que se guarda en su computadora que será igual al su nombre de nick.
setcookie("usuario",$usuario['nick'],time()+7776000);
setcookie("contrasena",$usuario['pass'],time()+7776000);
//Le mencionamos al usuario que ha iniciado correctamente.
echo 'Has iniciado sesión con éxito.';
}
//Si no existe no existen esos datos en la tabla, le decimos que no son correctos
else
{
echo 'Los datos ingresados no son correctos.';
}
?>

La explicación:
La primer parte ya la saben, nos conectamos a la base de datos, sencillo.
Después recibimos lo que ingresó en los campos de formulario y lo asignamos a una variable.
La línea interesante es esta:
$registrado=mysql_query("select nick,pass from usuarios where nick='$nick' and pass='$pass'",$conexion) or die (mysql_error());
Que se entiende así:
$usuario es igual a mysql_query("SELECCIONA los campos de nick,pass en la tabla usuarios donde nick='$nick' y $pass='$pass'",$conexion) SI NO SUCEDE (dime el error);

Esto buscará si existe un usuario ya registrado en la tabla de usuarios y una contraseña cokmo la que también ingresó.
Después la consoulata la ponemos en un array que nombramos $usuario, que con esta variable, ya podemos acceder a los valores de la consulta tal y como lo hiceramos con un array común, por el el nombre del campo en este caso, claro que si no genera resultados esto, entonces el programa se va hacia el else, lo que pondría en pantalla un mensaje de que los datos son incorrectos.
Regresando a la condición de que si hay resultados (al if) entonces le crearé dos cookies en su computadora, una que almacena el usuario y otra la contraseña. Esta es la forma de crear COOKIES:

Se crean con la función setcookie y contiene al emnos tres parámetros; el primeor es el nombre de la cookie, con este nombre después verificaremos si existe en la computadora del usuario, el segundo es el valor de la cookie, en este caso accedemos al array nombrado como $usuario y que a su vez contiene los valores de la consulta mysql_query y utilizamos el campo pass ($usuario['pass']). Recuérda que pass no es un nombre a nuestro gusto, es el nombre del campo de la tabla que creamos al inicio; el útimo parámetro es el tiempo que durará la cookie en la computadora del usuario. Como en algún foro que nos pregunta en una casilla “recordar cuenta” esto hará que se guarde por más tiempo la cookie y asi podremos entrar a cualquier hora que gustemos, sin tener que ir al formulario para inicar sesión.

Ahora veremos una página con un ejemplo para que puedas ver cómo restringir el acceso a un usuario o como permitir verle el contenido.

ejemplo.php

<?php

if(isset($HTTP_COOKIE_VARS["usuario"]) && isset($HTTP_COOKIE_VARS["contrasena"]))

{

echo 'Binvenido';

}

else

{

echo 'Área sólo para usuarios registrados';

}

?>

Bastante fácil: la función isset comprueba si existe la cookie que llamamos usuario, si esta cookie existe. Significa que quien intenta entrar es un usuario registrado, por eso tiene la cookie.
Si es falta la enterior condición, es decir que no existe, entocnes le diremos con un emsnaje que el área es sólo para registrados.
Esto es todo, ya sólo falta una página que cierre la sesión actual para evitar problemas de seguridad, para ello basta con este código:

cerrar.php

<?
setcookie("usuario",time()-7776000);
setcookie("contrasena",time()-7776000);
echo 'Has cerrado sesión.';
?>

Esto es sencillo, así como al crearla le dabamos un número positivo, para destruir la cookie hay que dar un número negativo, pero esta vez sólo estamos dandos dos parámetros, el parámetro de valor, no hace falta nombrarlo; así que la próxima vez que quiera la cookie de nuevo, tendrá que inicar sesión.

Hemos terminado nuestro sistema de usuarios en PHP y MySQL, espero te sea de gran utilidad y con esto puedes crear el tuyo, o personalizar este. Puedes bajar el código de estos archivos y modificarlos a tu gusto para adapatarloa a tu web o para ver cómo funciona.
Descargar: [enlace roto]
Un saludo: GEZE.
Estoy tratando de probar el tutorial, pero tengo una dificultad, una vez trato de registrar un usuario me sale el siguiente mensaje, Lost connection to MySQL server at 'reading initial communication packet', system error: 111, puedes ayudarme a solucionarlo
Estoy tratando de probar el tutorial, pero tengo una dificultad, una vez trato de registrar un usuario me sale el siguiente mensaje, Lost connection to MySQL server at 'reading initial communication packet', system error: 111, puedes ayudarme a solucionarlo
Bueno, pues alguna fallo está teniendo tu base de datos, la verdad ese error, al menos para mí, es poco conocido, ¿lo estás allojando en UEUO.COM? Si no, es así, es probale que tenga caidas el hosting que estér utilizando, de la misma forma si es localhost.
Gracias Geze.

Aun no he probado tu código, pero es lo mas sencillo, mejor explicado y que mas al grano va de todo lo que e encontrado y te digo que me he pasado todo el día buscando en libros, webs, blogs, foros, etc... justamente esto.

Te puedo preguntar donde estas aprendiendo??
#cazaplanetas

Gracias, me da gusto en verdad que te sea últil.
He visitado de muchos sitios, videos y demás, pero con la que empezé a aprender mucho, fue en http://www.phpya.com.ar

Espero te sirva y te deseo éxito =)
Saludos, he puesto este código por que no me seleccionba la base de datos (he modificado un poco xD) Y resulta que me da error en la línea 15 que es la de color rojo. ¿Podeis decirme dodne está el fallo? mis datos están en USUARIOS y PASSWORD y la llamada a config.php es por que ahí están los datos de mi MySQL. Mil gracias.

<?php
include("config.php") ;
mysql_connect($server, $db_user, $db_pass) or die ("error1".mysql_error());
//Seleccionamos la base de datos
mysql_select_db($database) or die ("error2".mysql_error());
//Recibimos lo que ingresó por teclado el usuario y lo asignamos a un variable para un mejor manejo
$nick=$_POST[USUARIO];
$pass=$_POST[PASSWORD];
//Buscamos en la tabla si existe un usuario con ese nombre y esa contraseña
[COLOR="red"]$registrado=mysql_query("select nick,pass from usuarios where nick='$nick' and pass='$pass'",$conexion) or die (mysql_error());[/COLOR]
//Si existe un usuario con ese nick y esa contraseña le damos una session
if($usuario=mysql_fetch_array($registrado))
{
//Le damos una coockie que se guarda en su computadora que será igual al su nombre de nick.
setcookie("USUARIO",$usuario['USUARIO'],time()+7776000);
setcookie("PASSWORD",$usuario['PASSWORD'],time()+7776000);
//Le mencionamos al usuario que ha iniciado correctamente.
echo 'Has iniciado sesión con éxito.';
}
//Si no existe no existen esos datos en la tabla, le decimos que no son correctos
else
{
echo 'Los datos ingresados no son correctos.';
}
?>
Bueno, he conseguido solucionar mi problema, solo era cosa de que no sabá que datos tenía que sustituir. El codigo funciona de maravilla. Muchas gracias! [:D]
hola a todos, no consigo conectar desde php ni desde java a mi base de datos mysql hospedada en freehostingarea.com

p.ej. en el hosting me facilitan estos parámetros:

Main DataBase
DataBase name: DBname
DataBase username: USERname
DataBase password: password
DataBase host: localhost

mi codigo php:

<?php
$db_host="localhost";
$db_usuario="USERname";
$db_password="password";
$db_nombre="DBname";
$conexion = @mysql_connect($db_host, $db_usuario, $db_password) or die(mysql_error());
$db = @mysql_select_db($db_nombre, $conexion) or die(mysql_error());
?>

y el de java:

package basededatos0;

import java.sql.*;
import javax.swing.*;

public class Conectar {
Connection conect = null;
public Connection conexion()
{
try {

Class.forName("org.gjt.mm.mysql.Driver");
conect = DriverManager.getConnection("jdbc:mysql://localhost/DBname","USERname","password");

} catch (Exception e) {
JOptionPane.showMessageDialog(null,"Error "+e);
}
return conect;

}}

no conectan a la base de datos

pero estos códigos funcionan sin problemas con la base de datos mysql que tenía en mi localhost con apache2 y ubuntu ...

¿qué se me puede estar pasando?

muchas gracias de antemano

PD.: estaba pensando ... ¿abro un tema nuevo?
@el_ignaky: el código no funcionará nunca si especificas el host como localhost y no estás en el servidor local. En el panel de control deben aparecer los datos para conectarse a la base de datos. Si aún así no puedes, entonces intenta conectarte a través de la línea de comandos (en Windows presiona la tecla Windows + R, escribe CMD y presiona enter; en Linux presiona Control + Alt + T), siempre y cuando tengas instalado mysql:

mysql -u usuario -h [http://host.algo/|100.100.100.100] -P puerto -p

Te pedirá la contraseña de MySQL. Es una forma de comprobar que el enlace funciona.

En el fondo estaría bien si es que utilizas localhost y has subido el script a freehostingarea.com, de lo contrario tiene que ser una URL o dirección IP.
@skaparate:

gracias por la respuesta

entiendo que no pueda conectar con mi php hospedado en "mi" localhost y que no tenga problema en conectarme cuando mi php esté hospedado allí, espero llegar allí y que suceda ésto jejeje

pero no veo donde conseguir la dirección o ip del host para que funcione mi programa remoto en java que se encargar de ir tomando valores de sensores en campo e insertarlos ordenadamente a la bd (el php solo los leerá en principio). Me pareció leer que es posible que no se pueda acceder a la bd desde fuera y que ésto se puede ver en un fichero config o ini o algo así, pero no sé donde encontrarlo, como el panel de control que me comentas para localizar el host.algo o la ip, no lo veo ni en el phpmyadmin, ni en ACCOUNT MANAGER de freewebhostingarea.com, ni en el correo que me enviaron después de la apertura ...

otro tema es que he instalado el joomla en el servidor y, poniendo la dirección tal no se abre la página index.php con una configuración como veo en un tutorial que tiene que pasar, pero ésto puede esperar, prefiero empezar por ir llenando la base de datos para luego contar ya con esos datos para ir probando la web en sí

muchas gracias, como verás es mi primer "intento" de hospedar una web :-S
@el_ignaky: mira lo que dice al momento de registrarse:

ATTENTION!!! MySQL databases must be activated @ Account Manager >> Hit Create DB button.
MySQL HostName is localhost only. We don't allow external connections.

Eso significa que no se admiten conexiones externas.

...ni en el correo que me enviaron después de la apertura

Al parecer las cuentas son demasiado básicas, por ende solo te dan lo mínimo (ni siquiera un correo de activación).

Te aconsejo que busques otros hosting gratuitos, como el que ofrece Como Crear tu Web o 000webhost.com.
@skaparate:

ok, muchísimas gracias y perdona mi ignorancia en html, php, java, hostings, inglés ... bufff

gracias, crack, da gusto encontrar gente como vos

al final aún no consigo ni que corra la página, estoy un poco ... voy a cambiar todo a otro de los hostings que me recomiendas y te contaré por si tienes curiosidad

un gran abrazo from cartagena-spain!!!
@ skaparate:

bueno, he abierto cuenta en 000webhost.com (que no pedía tener una cuenta en tuiter) y ya he importado mi base de datos; he modificado mi php de conexión (que sigue en mi localhost) a la base de datos alojada:

<?php
$db_host="mysql4.000webhost.com";
$db_usuario="nombreusuario";
$db_password="password";
$db_nombre="nombreBD";
$conexion = @mysql_connect($db_host, $db_usuario, $db_password) or die(mysql_error());
$db = @mysql_select_db($db_nombre, $conexion) or die(mysql_error());
?>

y obtengo normalmente:
Can't connect to MySQL server on 'mysql4.000webhost.com' (113)

y alguna vez:
Can't connect to MySQL server on 'mysql4.000webhost.com' (4)

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarg
@skaparate:

al menos la web empieza a correr

http://www.pigfarmproject.site90.com

edit: topo con problemas en php cuando toco temas relacionados con DateTime() que supongo que será alguna bobada ...

aquí:

...
$fechahoraactual = new DateTime();
$fechahoraactual->getTimestamp();
...

edit otra vez: ya veo que el getTimestamp() no rula en versiones anteriores de php a la 5.3.0. Procedo a buscar alternativas
Para obtener la fecha y la hora actual en PHP puedes usar:
<?php

// Día, mes y año actuales con formato Año/Mes/Día (Ej: 1970/01/22);
$fecha = date("Y/m/d");
// Hora actual (Ej: 15:16)
$hora = date("H:i:s");
// Fecha actual y hora almacenadas en una sola variable
$fechayhora = date("Y-m-d H:i:s");

echo "Día: $fecha Hora: $hora <br />";
echo $fechayhora;

?>
gracias, ya he solucionado todos los problemas con el código que no corría en php 5.2

pero tengo el mismo problema con la conexión desde el exterior con la base de datos, al final creo que tendré que hacerme una cuenta en twiter y probar comocreartuweb.com

si el mismo código php conecta con la bd hospedado remotamente y no corre cuando lo tengo hospedado en mi localhost ... creo que la conclusión es ésa ¿no?

edit: confirmado, no se puede conectar desde fuera a la bd con cuenta gratis :-(

How can I connect to MySQL from my computer?

Remote MySQL connections are disabled for security and server performance reasons.

However remote MySQL connections will be enabled if you upgrade your account at http://www.000webhost.com/upgrade
Buuuu... que mal :(. Lo siento, yo pensé que se podían establecer conexiones remotas.
no pasa nada, seguiré buscando entre las gratis, si no encuentro pediré en la universidad a ver si ... y si tampoco pues ...

importé la bd desde mi localhost y así puedo hacer todas las pruebas con el software, mientras sigo acumulando datos localmente que también subiré, así hasta que tenga mi bd con acceso remoto jejeje

estoy esperando que me activen los servicios en serednet a ver ...

gracias, cracks!!!
hola a tod@s!!!

creé otra bd en : http://free-mysql.bizhostnet.com que dice tener acceso remoto.

Es un problemilla que no se pueda importar la base de datos por lo que primero tengo que conseguir que conecte mi programa.java para poder probar el tratamiento de datos que hace la parte php, pero bueno, no es un gran problema

el problema es que no consigo conectar el módulo java, éste:

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package serialtalk0;

import java.sql.*;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.*;
/**
*
* @author Sony
*/

public class Conectar {
Connection conect = null;
public Connection conexion()
{
try {

//Cargamos el Driver MySQL
Class.forName("org.gjt.mm.mysql.Driver");
conect = DriverManager.getConnection("jdbc:mysql://free-mysql.BizHostNet.com:PORT/BDNAME","USERNAME","PASSWORD");
System.out.println("Acceso Conseguido a Hosting Remoto");
//Cargamos el Driver Access
//Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//Conectar en red base
//String strConect = "jdbc:odbc:Driver=Microsoft Access Driver (*.mdb);DBQ=//servidor/bd_cw/cw.mdb";
//Conectar Localmente
//String strConect = "jdbc:odbc:Driver=Microsoft Access Driver (*.mdb);DBQ=D:/cwnetbeans/cw.mdb";
//conect = DriverManager.getConnection(strConect,"","");
} catch (Exception e) {
System.out.println("No conectado :-S");
}
return conect;
}
}

éste es parte del e-mail de acceso que recibí:

Thank you for choosing BizHostNet.com, your
free mysql database has been created successfully.

Here is your mySQL account info:

Server Address : free-mysql.BizHostNet.com
Port : PORT
Database Name : DBNAME
User : USERNAME
Password : PASSWORD

For Web Administration:
Go to : http://free-mysql.bizhostnet.com/mysql
User : USERNAME
Password : PASSWORD


Your URL : http://www.pigfarmproject.site90.com/



GET YOUR FREE DOMAIN NAME http://www.BizHostNet.com/


Sal-U2!!!
¿Estas utilizando algún IDE? Si utilizas Netbeans o Eclipse, entonces podrías intentar conectarte con el gestor de conexiones primero y, si funciona, intenta utilizar el código.

Es un problemilla que no se pueda importar la base de datos

Si permite conexiones remotas, entonces deberías poder. Con la consola (cmd en Windows o terminal en Linux), deberías poder hacer esto (primero tienes que exportar la actual base de datos - las tablas, no la base completa):

mysql -u usuario -p -h free-mysql.BizHostNet.com -P puerto nombre_base_datos < ruta/archivo.sql

Una cosa más, en cuanto al driver, intenta utilizar el conector desarrollado por Oracle (MySQL) y ve si funciona (si es que no es el que utilizas): http://dev.mysql.com/downloads/connector/j/.
ésto:

mysql -u 1354165668 -p -h free-mysql.BizHostNet.com -P 3306 1354165668 < /home/juan/Documentos/Descargas/Tll201212.sql

Tll201212=tabla exportada
ó
Tll201212=base de datos completa exportada

me da este error:

Enter password:
ERROR 1193 (HY000) at line 10: Unknown system variable 'SQL_MODE'

pero con ésto ya sé que llego a la base de datos ya que si pongo un password erróneo me lo dice :-)

veo que estaba usando el siguiente drv: mysql-connector-java-5.1.22-bin.jar que es el mismo que me ofrece oracle

ahora voy a ver qué conexión automática me ofrece netbeans

edit:

creando la conexión con netbeans obtengo:
Cannot*establish*a*connection*to*jdbc:mysql://free-mysql.BizHostNet.com:3306/1354165668?zeroDateTimeBehavior=convertToNull*using*com.mysql.jdbc.Driver*(ResultSet*is*from*UPDATE.*No*Data.)

edit otra vez:

veo que mi localhost usa también el mismo puerto, el 3306 ¿puedo tener ahí el problema?
en caso de que así sea:
uso ubuntu 12.04 con apache2

¿cómo podría cambiar el local?

gracias!!!
ERROR 1193 (HY000) at line 10: Unknown system variable 'SQL_MODE'

Eso puede ser porque el servidor esta usando una versión mas antigua que la usada en tu servidor local. Intenta abrir el archivo .sql y comenta o quita todas las apariciones de SQL_MODE y luego intenta ejecutar el comando nuevamente.

¿Las tablas tienen datos? Puede ser que al no tener datos se produzca el error.
sí, las tablas tienen datos ya

no sé si has leído el último edit, donde digo que el puerto de mi localhost es también el 3306 (igual que el que me ofrece free-mysql.bizhostnet.com)
perfecto, la tabla está importada, he tenido que "tapar" del .sql:

/*SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"*/;
/*SET time_zone = "+00:00"*/;
....
) /*ENGINE=InnoDB DEFAULT CHARSET=utf8mb4*/;

:-))))))