Comunidad de diseño web y desarrollo en internet online

Como trabajar en php con mysql

Citar            
MensajeEscrito el 04 Sep 2006 02:42 pm
Buenas! antes de nada deciros que he aprendido muchisimo gracias a vuestros tutoriales y vuestros foros... yo era un aficionado al Flash, sin mas, y conocia de sus posibilidades pero nunca les habia sacado rendimiento. Desde que necesito informacion para hacer una web de unos amigos he estado buscando y vuestros tutoriales y consejos son los que mas me han ayudado y enseñado.

Ahora tengo un problema o duda, que para vosotros sera muy tonto pero a mi me saca de quicio. Tengo un dominio con su base de datos sql creada y desde una pagina php quiero acceder a la db para comprobar nombres de usuarios y sus respectivas contraseñas.

El caso es que ya en el primer paso, el registro, parece que algo no va bien pues no consigo que me agregue el registro a la db y es que yo tengo mis dudas de si lo he hecho bien porque algo me da que ni tan siquiera se conecta a la db. Como podria saber algo tan simple como saber si los parametros host, user and pass son correctos???

El codigo es el siguiente:

Código :

$sqlhost = "mysql.secureserver.net";
$sqluser = "katanas";
$sqlpass = "mipassword";
$sqldb = "katanas";

$conn = mysql_connect($sqlhost, $sqluser, $sqlpass);
$sdb = mysql_select_db($sqldb);


como podeis ver el usuario y la db se llaman igual, katanas, esto puede influir de forma negativa?? imagino que no tiene porque. los datos son los que "interpreto" me facilita el servidor para las conexiones a mysql pero al ser un servidor ingles me cuesta lo mio entenderlo.

Podeis ayudarme? si necesitais alguna info mas pedidmela porfavor!

Gracias cracks!

Por Deivis

6 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 04 Sep 2006 02:45 pm
He pensao que mejor os cuelgo el resto del codigo de la pagina register.php:

Código :

switch($_GET['mode']){
default:

?>
<p align="center"><span class="Estilo4">Introduce tu usuario y password para registrarte</span></p>
<form action="register.php?mode=register" method="POST">
  <table width="30%"  border="0" align="center" cellpadding="1" cellspacing="1">
    <tr>
      <td width="22%"><p class="Estilo1 Estilo2">Usuario:</p>
      <p class="Estilo3">password: </p></td>
      <td width="78%"><p>
        <input type="text" name="user">      
      </p>
      <p>
        <input type="password" name="pass">
      </p></td>
    </tr>
  </table>
  <p align="center"><br>
    <input type="submit" value="Registrar">
  </p>
</form>
<?php
break;

case "registrar";

$query = "SELECT * FROM zonaprivada WHERE user='$user'";
$result = mysql_query($query);
if(mysql_num_rows($result) < 1){
$password = md5($password);
$query = "INSERT INTO zonaprivada VALUES('NULL','$user','$pass')";
$result = mysql_query($query);

if(mysql_affected_rows() > 0){
echo "Tu cuenta privada ha sido creada, entra <a href=\"main.htm\">aqui</a>";
}
else {
echo mysql_error();
}
}
else {
echo "El usuario ya existe";
}

break;
}
?>

Por Deivis

6 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 04 Sep 2006 08:30 pm
Hola Deivis,

has comprobado primero que te estas connectando bien al servidor mySQL?. Utiliza el siguiente codigo:

$conn = mysql_connect($sqlhost, $sqluser, $sqlpass) or die (mysql_Error());

Esto te dira si te has conectado con exito o no.

Txusm

Por txusm

6 de clabLevel



 

safari
Citar            
MensajeEscrito el 05 Sep 2006 07:49 am
Bingo!!

Access denied for user: '[email protected]' (Using password: YES)

El caso es que anoche leyendo un manual que tengo de dreamweaver con php y mysql vi que el dreamweaver tiene una opcion para conectar la base de datos en Ventana - Bases de Datos. Pues alli poniendole los datos ya no me hace ni puto caso. Asi que algun dato esta mal... pero mi servidor web es godaddy.com que da muchas prestaciones pero son americanos y no entiendo ni papa de lo que ponen en su pagina de soporte (aunque estoy seguro que yo lo hago bien).

Puede ser que mi servidor tengan que configurarme algo? tengan que habilitarme algo? la db la he creado sin problemas desde su panel de control...

Otra cosita... el control panel me deja crear una DSN para la db, para que puedo necesitar una DSN???

PD: el soporte tecnico donde tengo el hosting... no me han dicho nada bueno.

Por Deivis

6 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 06 Sep 2006 06:35 am
hola, eso es porque el usuario no esta autorizado a entrar en esa base de datos. Estas seguro de que el nombre de usuario y contrsna son correctos?

Por txusm

6 de clabLevel



 

safari
Citar            
MensajeEscrito el 06 Sep 2006 01:54 pm
Buenas txusm.

La cosa es que he encontrado un pequeño error en mi codigo... en la accion del formulario ponia que fuera a "register" y luego en el case va y pongo "registrar". Por otro lado he vuelto a crearlo todo de cero... usuario, contraseña, db y tabla. Me he asegurado de que todo lo este poniendo bien en mi register.php

Una vez esto resuelto me daba la sensacion de que me entraba en la db de mysql pero no... ahora esta obsesionado cada vez que me registro en decirme "el usuario ya existe" que se encuentra en el else del condicionante if donde verifico si user=$user.

Mi codigo actual es este:

Código :

<body>
<?php

$sqlhost = "mysql177.secureserver.net";
$sqluser = "katadmin";
$sqlpass = "mipassword";
$sqldb = "katadmin";

$conn = mysql_connect($sqlhost, $sqluser, $sqlpass);
$sdb = mysql_select_db($sqldb);

switch($_GET['mode']){
default:

?>
<p align="center"><span class="Estilo4">Introduce tu usuario y password para registrarte</span></p>
<form action="register.php?mode=register" method="POST">
  <table width="30%"  border="0" align="center" cellpadding="1" cellspacing="1">
    <tr>
      <td width="22%"><p class="Estilo1 Estilo2">Usuario:</p>
      <p class="Estilo3">password: </p></td>
      <td width="78%"><p>
        <input type="text" name="user">      
      </p>
      <p>
        <input type="password" name="pass">
      </p></td>
    </tr>
  </table>
  <p align="center"><br>
    <input type="submit" value="Registrar">
  </p>
</form>
<?php
break;

case "register";

$query = "SELECT * FROM users WHERE user='$user'";
$result = mysql_query($query);
if(mysql_num_rows($result) < 1)
{
   $password = md5($password);
   $query = "INSERT INTO users VALUES('NULL','$user','$pass')";
   $result = mysql_query($query);

   if(mysql_affected_rows() > 0)
   {
      echo "<span class="Estilo1">Tu cuenta privada ha sido creada, entra <a href=\"main.htm\">aqui</a>";
   }
   else {
   echo mysql_error();
   }
}
else {
echo "El usuario ya existe";
}

break;
}
?>

</body>


Es normal que el hosting me ponga como nombre de la db el mismo que uso para identificarme?
En mysql_select_db que debo poner? la db o la tabla?
No me fio de los datos que me da mi servidor hosting, como puedo verificar si el acceso se realiza o no?

Confio en vosotros gente, mis conocimientos de php (antes nulos ahora minimos) no llegan mas alla, entiendo todo el codigo pues en los estudios de informatica haces mucho C++, pero no se por donde atacar...

Por Deivis

6 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 07 Sep 2006 10:09 am
Hola Deivis,

yo sigo encontrando problemas, lo he probado en mi servidor conectandome a una base de datos mia. El primero es que deberías asegurarte de que te conectas al servidor mySQL desde el principio con $conn = mysql_connect($sqlhost, $sqluser, $sqlpass) or die (mysql_Error());. Tambien he encontrado un error T_STRING en la linea echo "<span class="Estilo1">Tu cuenta privada ha sido creada, entra <a href=\"main.htm\">aqui</a>";, esto es porque utilizas dobles comillas en "Estilo1" y en la direccion del link. Debería ser:
echo "<span class='Estilo1'>Tu cuenta privada ha sido creada, entra <a href='\main.htm\'>aqui</a>";
En mysql_select_db debes seleccionar la base de datos y luego en el query mySQL seleccionar la tabla en la que quieres hacer las operaciones.
Yo suelo trabajar con formularios en Flash asi que disculpa que no conozca muy bien como funciona un formulario en HTML, pero lo que he visto por ahi es que si utilizas el metodo POST para enviar los datos desde el formulario necesitas usar las variables superglobales &_REQUEST['nombreVariable'] para recuperar los datos. Seria algo asi como $query = "SELECT * FROM users WHERE user='&_REQUEST['user']'";.
El tipo de form action que he utilizado alguna vez es <form action="<?print $_SERVER['PHP_SELF']?>"
method="post" enctype="multipart/form-data" target="_blank">. $_SERVER['PHP_SELF'] representa el nombre del archivo que se esta ejecutando en ese momento.
Bueno, espero no haberte liado mucho....
Txusm

Por txusm

6 de clabLevel



 

msie
Citar            
MensajeEscrito el 07 Sep 2006 11:36 am

txusm escribió:

para enviar los datos desde el formulario necesitas usar las variables superglobales &_REQUEST['nombreVariable'] para recuperar los datos.
Seria algo asi como $query = "SELECT * FROM users WHERE user='&_REQUEST['user']'";.
El tipo de form action que he utilizado alguna vez es <form action="<?print $_SERVER['PHP_SELF']?>"
method="post" enctype="multipart/form-data" target="_blank">. $_SERVER['PHP_SELF'] representa el nombre del archivo que se esta ejecutando en ese momento.
Bueno, espero no haberte liado mucho....
Txusm


Es buenisimo! no, por dios! no me lias, todo lo contrario.. aprendo a marchas forzadas! nunca habia trabajado con php y ahora soy capaz de asimilar los codigos e interpretarlos. Codigos simples como los que estamos viendo aqui claro.

La cosa es que como en este foro venimos a aprender y no a hacer "copiar - pegar" hay algo que no he entendido... por lo que me dices, causado por el method de form que uso, yo tendria que llamar a las variables con el REQUEST, esto lo entiendo. Pero entonces, yo tengo que modificar el form action y ponerlo como tu? porque ese form action con el SERVER['PHP_SELF']? no se por donde cogerlo.

Una duda tonta mas: hay algun compilador o algo parecido con el que programar en php y que te diga donde y con que la estas cagando? porque el dreamweaver, que yo sepa!, no te avisa de ningun error... ni de los tipograficos vamos.

Gracias txusm por todo el favor!

Por Deivis

6 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 07 Sep 2006 11:41 am
Otra cosa... he hecho esto nada mas empezar para saber si empiezo ya mal.

Código :

$sqlhost = "mysql177.secureserver.net";
$sqluser = "katadmin";
$sqlpass = "mipassword";
$sqldb = "katadmin";

$conn = mysql_connect($sqlhost, $sqluser, $sqlpass) or die(mysql_error());
$sdb = mysql_select_db($sqldb) or die(mysql_error());

$consulta = "SELECT user FROM users";
$prueba = mysql_query($consulta);
echo $prueba;


Los die los pasa sin problemas, no lanza error. Luego hago una consulta para saber si me coge algo de la tabla... ya es pura curiosidad! y cuando veo el resultado me muestra esto: Resource id #2

Que quiere decir??? como puedo saber si estoy accediendo o no a la maldita tabla??!!!

Perdonad por tanta insistencia.

Por Deivis

6 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 07 Sep 2006 12:19 pm
Si estuvieras en BCN cogia la moto e iba a darte un beso en la frente!!!!!!!

La solucion ha sido:

$user1 = $_REQUEST['user'];
$pass1 = $_REQUEST['pass'];

y a partir de aqui trabajar con user1 y pass1.

por algun motivo no me cogia directamente el request en las instrucciones sql (seguro que escribia algo mal) pero da igual porque asi yo me aclaro mil veces mejor.

me ha añadido el registro correctamente a la db.

Funciona!!!!!

Ahora voy a repasar el codigo del login.php para que se loguee correctamente.

GRACIAS!!!!!!!!

Por Deivis

6 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 07 Sep 2006 12:35 pm
Ya esta!!!!! Funciona todo! gracias! mil gracias a todos los que me han ayudado en Cristalab (jodidamente bueno este foro) y en especial a ti txusm.

Llevaba una semana dando palos de ciego. Y lo he logrado!

Saludos!!!!!

Por Deivis

6 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 07 Sep 2006 01:22 pm
Me alegro muchisimo : )). Cualquier cosa ya sabes, aqui estamos para compartir conocimientos : )

Txusm.

Por txusm

6 de clabLevel



 

msie

 

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