Regresar a la página www.ComoCrearTuWeb.com
Resultados 1 al 8 de 8

Tema: Registro y conexion PHP formulario con base de datos en servidor remoto

  1. #1
    Me va gustando esto... Habitante Avatar de Game Over
    Fecha de Ingreso
    27 nov, 12
    Ubicación
    Barcelona, Spain
    Mensajes
    39
    Poder de Reputación
    11

    Registro y conexion PHP formulario con base de datos en servidor remoto

    Hola , hay algun post parecido por el foro pero no veo que tengan los mismos problemas y he abierto este para de esta manera , si lo soluciono, le sirva mas concretamente a la gente a solucionar sus problemas.

    Detalles de la transferencia de archivos
    IP FTP 31.170.166.73
    Servidor FTP spyworld.webxlacara.tk
    Usuario FTP u227873964
    Contraseña FTP ••••••••••
    FTP Port 21
    Carpeta para subir archivos public_html
    http://spyworld.webxlacara.tk/newRegistro.html

    Tengo un formulario para registrar al usuario en la web. Y lo envio por el metodo POST a registrar.php.

    Código PHP:
    <?php
    session_start
    ();
    //datos para establecer la conexion con la base de mysql.
    mysql_connect("spyworld.webxlacara.tk","u227873964_user","contraseña"); //or die ('Ha fallado la conexión: '.mysql_error());
    mysql_select_db("u227873964_bduser"); //or die ('Error al seleccionar la Base de Datos: '.mysql_error());

    // verificamos si se han enviado ya las variables necesarias.
    if (isset($_POST['username'])) {
        
    $username $_POST['username'];
        
    $password $_POST['password'];
        
    $password2 $_POST['password2'];
        
    $email $_POST['email'];
        
    // Hay campos en blanco
        
    if($username==NULL|$password==NULL|$password2==NULL|$email==NULL) {
            
    /*echo "un campo está vacio.";*/
            
    header('Location: newRegistro.html');
            
    /*error();
            formRegistro();*/
        
    }else{
            
    // ¿Coinciden las contraseñas?
            
    if($password!=$password2) {
                
    /*echo "Las contraseñas no coinciden";*/
                
    header('Location: newRegistro.html');
                
    /*formRegistro();*/
            
    }else{
                
    // Comprobamos si el nombre de usuario o la cuenta de correo ya existían
                
    $checkuser mysql_query("SELECT usuario FROM usuarios WHERE usuario='$username'");
                
    $username_exist mysql_num_rows($checkuser);
                
    $checkemail mysql_query("SELECT email FROM usuarios WHERE email='$email'");
                
    $email_exist mysql_num_rows($checkemail);
                if (
    $email_exist>0|$username_exist>0) {
                    
    /*echo "El nombre de usuario o la cuenta de correo estan ya en uso";*/
                    
    header('Location: newRegistro.html');
                    
    /*formRegistro();*/
                
    }else{
                    
    $query 'INSERT INTO usuarios (usuario, password, email, fecha)
                    VALUES (\''
    .$username.'\',\''.$password.'\',\''.$email.'\',\''.date("Y-m-d").'\')';
                    
    mysql_query($query) or die(mysql_error());
                    echo 
    'El usuario '.$username.' ha sido registrado de manera satisfactoria.<br />';
                    echo 
    'Ahora puede entrar ingresando su usuario y su password <br />';
                    
    ?>
                    <FORM ACTION="validar_usuario.php" METHOD="post">
                      Usuario : <INPUT TYPE="text" NAME="usuario" SIZE=20 MAXLENGTH=20>
                      Password: <INPUT TYPE="password" NAME="password" SIZE=10 MAXLENGTH=10>
                      <INPUT TYPE="submit" VALUE="Ingresar">
                    </FORM>
                    <?php
                
    }
            }
        }
    }else{
        
    /*formRegistro();*/
        
    header('Location: newRegistro.html');
    }
    ?>
    pero me salen una serie de errores que no consigo solucionar...

    Warning: mysql_connect() [function.mysql-connect]: Host '31.170.166.73' is not allowed to connect to this MySQL server in /home/u227873964/public_html/registrar.php on line 4

    Warning: mysql_select_db() [function.mysql-select-db]: Access denied for user 'root'@'localhost' (using password: NO) in /home/u227873964/public_html/registrar.php on line 5

    Warning: mysql_select_db() [function.mysql-select-db]: A link to the server could not be established in /home/u227873964/public_html/registrar.php on line 5

    Warning: mysql_query() [function.mysql-query]: Access denied for user 'root'@'localhost' (using password: NO) in /home/u227873964/public_html/registrar.php on line 27

    Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /home/u227873964/public_html/registrar.php on line 27

    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/u227873964/public_html/registrar.php on line 28

    Warning: mysql_query() [function.mysql-query]: Access denied for user 'root'@'localhost' (using password: NO) in /home/u227873964/public_html/registrar.php on line 29

    Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /home/u227873964/public_html/registrar.php on line 29

    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/u227873964/public_html/registrar.php on line 30

    Warning: mysql_query() [function.mysql-query]: Access denied for user 'root'@'localhost' (using password: NO) in /home/u227873964/public_html/registrar.php on line 38

    Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /home/u227873964/public_html/registrar.php on line 38
    Access denied for user 'root'@'localhost' (using password: NO)

    Por más que miro en "San Google" no encuentro la manera o el problema de dichos errores...lo unico que se me ocurre es que el server tiene "cerrado" algúna cosa y no puedo acceder por ello.. pero seguro que no es eso.. ;(

    Alguna sugerencia??.. y por favor que sea explicada para "tontos".. ;D

  2. #2
    Administrador CCTW Webmaster de CCTWHabitante Avatar de Jorgens_CCTW
    Fecha de Ingreso
    30 ene, 11
    Ubicación
    Cartagena, Murcia, España.
    Mensajes
    1,184
    Poder de Reputación
    10
    Disculpa, pero.... Imagino qué la base de datos està creada y tal, verdad?

    El dominio con extensión .tk me da mal rollo. Por qué no lo intentas con la URL auténtica? Eso es una redireccion, no?

    No dejes de comentarnos! Esta nos la terminamos! Jajaja

  3. #3
    Administrador CCTW Webmaster de CCTWHabitante Avatar de Jorgens_CCTW
    Fecha de Ingreso
    30 ene, 11
    Ubicación
    Cartagena, Murcia, España.
    Mensajes
    1,184
    Poder de Reputación
    10
    Si, parece que la web y la base de datos no estuvieran en el mismo dominio o ip? En qué hosting estas? Cuál es tu dominio? Tienes una dirección que no termine en .tk?

  4. #4
    Esto empieza a ser un vicio... Habitante
    Fecha de Ingreso
    28 jun, 08
    Mensajes
    498
    Poder de Reputación
    19
    Al parecer estas en un hosting gratuito, ese tipo de hosting y en la red en que esta, generalmente el servidor de bases de datos es mysql.dominiodelhosting.exetencion en tu caso seria: mysql.webxlacara.tk

  5. #5
    Me va gustando esto... Habitante Avatar de Game Over
    Fecha de Ingreso
    27 nov, 12
    Ubicación
    Barcelona, Spain
    Mensajes
    39
    Poder de Reputación
    11
    Pues va ser que era mysql.webxlacara.com .... :((premio para serverdns.. jejejeje) . Igualmente me dá muchos problemas este hosting, he enviado un ticket de ayuda al hosting y me comentan que tienen problemas con sus servidores. Y he decidido cambiar a otro que tengo y mas estable en miarroba.es.

    Bueno.. ya estoy en el nuevo hosting con la base conectada y funcionando.:

    spyworld.webcindario.com

    • he registrado un usuario satisfactoriamente
    • me he logueado satisfactoriamente entrando en una página aparte(principal.php)
    • y me deslogueo

    . pero .. (siempre tengo 'peros".. ) a ver si me ayudáis a depurar el tema de sesión y pulir el codigo, que se qué estáis aburridos.

    Puntos a tratar:

    * Registro un usuario y se me queda la pagina colgada. (antes no me pasaba .. algo he tocado.. :( ..) (SOLUCIONADO)

    * No consigo destruir bien la sesion porque despues de desloguearme sigo podiendo entrar en principal.php y al destruir sesion tendria que no dar acceso al contenido de ella. :(

    Ahora os paso todo el codigo en el siguiente post.
    Última edición por Game Over; 17/01/2013 a las 01:36 Razón: MODIFICAR datos

  6. #6
    Me va gustando esto... Habitante Avatar de Game Over
    Fecha de Ingreso
    27 nov, 12
    Ubicación
    Barcelona, Spain
    Mensajes
    39
    Poder de Reputación
    11
    index.php

    Código HTML:
    <!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=iso-8859-1" />
    
    <title>Spy-World</title>
    
    
    
    <link rel="stylesheet" href="estilos.css" type="text/css">
    
    </head>
    
    
    
    <body>
    
    
    
    <div id="container">
    
    
    
    	<div id="loginc">
    
    	
    
    		<table class="centro">
    
     			 <td>
    
    			 	<form action="validar_usuario.php" method="post">
    
    				<div>
    
    				  
    
     		  		    <h3 class="Estilo1">Agente</h3>
    
     				    <input type="text" name="usuario" size="20" maxlength="20" />
    
      			            
    
      					<h3 class="Estilo2">Password</h3>
    
    	  			 	<input type="password" name="password" size="20" maxlength="20" />
    
        				
    
      	   		    	<input name="submit" type="submit" value="Ingresar" style="width:148px" />
    
    				
    
    					<div>
    
    						<a class="Estilo1" href="newRegistro.html"> Registrarse </a>
    
    					</div>
    
    				</div>
    
      				</form>
    
    			</td>
    
    			
    
    		</table>
    
    
    
    	</div> <!-- loginc -->
    
    </div> <!-- container -->
    
    </body>
    
    </html>
    validar_usuario.php
    Código PHP:
    <?php
    session_start
    ();
    mysql_connect('mysql.webcindario.com','spyworld','contrasenya')or die ('Ha fallado la conexión: '.mysql_error());
    mysql_select_db('spyworld')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
    function 
    quitar($mensaje)
    {
        
    $nopermitidos = array("'",'\\','<','>',"\"");
        
    $mensaje str_replace($nopermitidos""$mensaje);
        return 
    $mensaje;
    }
    /*if(trim($HTTP_POST_VARS["usuario"]) != "" && trim($HTTP_POST_VARS["password"]) != "")*/
    if(trim($_POST["usuario"]) != "" && trim($_POST["password"]) != "")
    {
        
    // utilizar la funcion para eliminar algun caracter en especifico
        //$usuario = strtolower(quitar($HTTP_POST_VARS["usuario"]));
        //$password = $HTTP_POST_VARS["password"];
        // convertir los a su entidad HTML aplicable con htmlentities
        
    $usuario strtolower(htmlentities($_POST["usuario"], ENT_QUOTES));
        
    $password $_POST["password"];
        
    mysql_free_result($result);
        
    $result mysql_query('SELECT password, usuario FROM usuarios WHERE usuario=\''.$usuario.'\'');
        
        if(
    $row mysql_fetch_array($result)){
            if(
    $row["password"] == $password){
                
    $_SESSION["k_username"] = $row['usuario'];
                
    //datos para establecer la conexion con la base de mysql.
                
    header ('Location: principal.php');
                
                }else{
                
    //echo 'Password incorrecto';
                
    header('Location: index.php');
                        }
                        }else{
                            
    header ('Location: index.php');
                            
    //echo 'Usuario no existente en la base de datos';
                             
    }
                    
    //mysql_free_result($result);
                                
    }else{
                                     
    header('Location: index.php');
                                    
    /* echo 'Debe especificar un usuario y password'; */
                                     
    }
    mysql_close();
    ?>

    registrar.php
    Código PHP:
    <?php
    session_start
    ();
    //datos para establecer la conexion con la base de mysql.
    mysql_connect("mysql.webcindario.com","spyworld","contrasenya"); or die ('Ha fallado la conexión: '.mysql_error());
    mysql_select_db("spyworld"); or die ('Error al seleccionar la Base de Datos: '.mysql_error());

    // verificamos si se han enviado ya las variables necesarias.
    if (isset($_POST['username'])) {
        
    $username $_POST['username'];
        
    $password $_POST['password'];
        
    $password2 $_POST['password2'];
        
    $email $_POST['email'];
        
    // Hay campos en blanco
        
    if($username==NULL|$password==NULL|$password2==NULL|$email==NULL) {
            
    /*echo "un campo está vacio.";*/
            
    header('Location: newRegistro.html');
            
        }else{
            
    // ¿Coinciden las contraseñas?
            
    if($password!=$password2) {
            
                
    /*echo "Las contraseñas no coinciden";*/
                
    header('Location: newRegistro.html');
                
            }else{
                
    // Comprobamos si el nombre de usuario o la cuenta de correo ya existían
                
    $checkuser mysql_query("SELECT usuario FROM usuarios WHERE usuario='$username'");
                
    $username_exist mysql_num_rows($checkuser);
                
    $checkemail mysql_query("SELECT email FROM usuarios WHERE email='$email'");
                
    $email_exist mysql_num_rows($checkemail);
                if (
    $email_exist>0|$username_exist>0) {
                    
                    
    header('Location: newRegistro.html');
                    
    /*echo "El nombre de usuario o la cuenta de correo estan ya en uso";*/
                    
                
    }else{
                    
    $query 'INSERT INTO usuarios (usuario, password, email, fecha)
                    VALUES (\''
    .$username.'\',\''.$password.'\',\''.$email.'\',\''.date("Y-m-d").'\')';
                    
    mysql_query($query) or die(mysql_error());
                    
    header('Location: index.html');
                    
                }
            }
        }
    }else{
        
        
    header('Location: newRegistro.html');
    }
    ?>
    principal.php
    Código PHP:
    <?php
    session_start
    ();
    ?>
    <p>Bienvenidos a SpyWorld</p>
    <a href="logout.php">Salir</a>

    logout.php
    Código PHP:
    <?php
    session_start
    ();// Inicializa la sesión.
    // Destruye todas las variables de la sesión
    $_SESSION = array();
     
    //guardar el nombre de la sessión para luego borrar las cookies
    $session_name session_name();
     
    //Para destruir una variable en específico
    session_unset($_SESSION['usuario']);
     
    // Finalmente, destruye la sesión
    session_destroy();
     
    // Para borrar las cookies asociadas a la sesión
    // Es necesario hacer una petición http para que el navegador las elimine
    if ( isset( $_COOKIE$session_name ] ) ) {
        if ( 
    setcookie(session_name(), ''time()-3600'/') ) {
            
    header("Location: index.php");
            exit();   
        }
     
    }
     
    ?>

  7. #7
    Me va gustando esto... Habitante Avatar de Game Over
    Fecha de Ingreso
    27 nov, 12
    Ubicación
    Barcelona, Spain
    Mensajes
    39
    Poder de Reputación
    11
    Jorgens... pasame el post a Php Bases de Datos y MySQL (Nuevo!) que creo será más razonable y util tenerlo allí abierto.

    A ver si alguien me puede ayudar con el tema de las sesiones que me vuelvo loco.. no sé si es que no abro la sesion bien o es que no la cierro bien.. :(

  8. #8
    Me va gustando esto... Habitante Avatar de Game Over
    Fecha de Ingreso
    27 nov, 12
    Ubicación
    Barcelona, Spain
    Mensajes
    39
    Poder de Reputación
    11
    POR FIN!!!... Solucionado..

    En las paginas donde NO quiero que entren sin estar logueado me faltaba un if

    Código PHP:
    if (isset($_SESSION=['k_username'])) {

    mostrar el contenido a ver si estas logueado;

    }else{

    sino estas loqueado mandarte al formulario de logueo;


    Todo resuelto.. a trabajar toca.. gracias por la ayuda.. ;D

    jorgens.. pasalo al foro de php plisss.. seguro que les servirá a mucha gente...

Temas Similares

  1. conexión a base de datos
    Por lamigat en el foro Problemas de Conexión con tu Servidor?
    Respuestas: 6
    Último Mensaje: 17/05/2012, 16:18
  2. problemas conexion base de datos
    Por toti en el foro Php Bases de Datos y MySQL (Nuevo!)
    Respuestas: 3
    Último Mensaje: 04/08/2011, 14:37
  3. base de datos y registro de usuarios
    Por puyakas en el foro Sistema de Registro de Usuarios
    Respuestas: 2
    Último Mensaje: 25/01/2009, 11:22
  4. Como mandar datos de un formulario a una base de datos
    Por yunyi en el foro Php Bases de Datos y MySQL (Nuevo!)
    Respuestas: 13
    Último Mensaje: 18/12/2007, 01:35

Permisos de Publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •