Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: jhonatanAsm en 14 Octubre 2011, 14:17 pm



Título: registrar a un usuario desde php y almacenarlo en mysql con mysqli_query() SOLUC
Publicado por: jhonatanAsm en 14 Octubre 2011, 14:17 pm
hola, tengo un problema al momento de añadir un usuario a una tabla de mysql,con el sgte codigo:

Código:
mysqli_query($conexion,"insert into registro (nombre,edad,pass) values ($nombre,$edad,$pass)");



ya le puse un echo entre cada linea para ver si algo falla, y no hay problema ahí,tambien puse varios if(), pero no habian errores.

le cambie la consulta por select * from registro( asi se llama mi tabla), y con un mysql_fetch_array obtuve todos los valores de la tabla, entonces la conexion esta bien(aparentemente).

pd: al momento de crear mi tabla. le puse 4 columnas, un id int unsigned auto_increment primary key,nombre varchar(30) not null, edad int not null, pass varchar(20) not null. saludos.


-------------------------------------------------------------------------
GRACIAS A LA AYUDA DE LAS PERSONAS QUE HAN COMENTADO ABAJO ES QUE PUDE SOLUCIONARLO ASÍ:

para ingresar datos con mysqli_query se hace de la sgte manera;

$variable="juan";
$edad=20;

mysqli_query($conexion,"insert into registro (nombre,edad) values ('".$variable."','".$edad."');

como se habran dado cuenta las variables tienen que estar entre '".$variable."'

pd:no hay problema con el wamp server en windows 7 64 bits.

-------------------------------------------------------------------------


Título: Re: problema al registrar a un usuario desde php y almacenarlo en mysql
Publicado por: jhonatanAsm en 14 Octubre 2011, 16:16 pm
en la pag. de mysql, citan el ejemplo:

Código:
mysqli_query($link, "INSERT INTO t1 SELECT * FROM City ORDER BY ID LIMIT 150");


ayuda helme!.saludos



estoy usando wamp server 64 bit, no sé si ésto influye en la conexion, quiza se me ha olvidado configurar algo, estare pendiente de las respuestas gracias.



creo que es problema de wamp server en win7, alguien sabe como configurarlo??saludos!



encontre en otro foro a personas que tenias problemas con el wamp server, en win7 64 bits,

que servidor me recomiendan para win7 64 bit... saludos


Título: Re: problema al registrar a un usuario desde php y almacenarlo en mysql
Publicado por: ~ Yoya ~ en 14 Octubre 2011, 18:13 pm
Dudo mucho que tenga que ser por el servidor.

Instala PhpMyAdmin y prueba hacer consultas SQL, si todas funcionan correctamente ps bien, el problema no esta con el serve.

Otra cosa, activa la directiva display_errors del php.ini y verifica que php este mostrando los errores. Tienes que provocar un error de sintaxis para saber si los errores están saliendo luego.

En el problema que tienes, lo mejor siempre es realizar un PoC (Prueba de conceptos), así todos podemos probar el código y verificar si existe algún error.

Y agrega todo el código que sea necesario, empezando con la conexión hacia mysql.

Saludos.


Título: Re: problema al registrar a un usuario desde php y almacenarlo en mysql
Publicado por: jhonatanAsm en 14 Octubre 2011, 22:58 pm
gracias por la atencion, bueno el trabajo esta dividido en 3 partes

1- en registro.php el usuario ingresa nombre, edad y contraseña:

Código:

<body>

<form method="POST" action="validarRegistro.php" >

<p>como te hubiera gustado llamarte:<input type="text" name="nombre" /></p>
<p>edad:<input type="text" name="edad" /></p>
<p>contraseña:<input type="password" name="pass" /></p>

<input type="submit" value="finalizar" />

</form>

</body>

2- los datos ingresados van a validarRegistro.php:

Código:
<?php
$host="localhost";
$usuario="root";
$pass="";

$conexion=mysqli_connect($host,$usuario,$pass);

$nombre=$_POST['nombre'];
$edad=$_POST['edad'];
$pass=$_POST['pass'];

$bd="users";

$sbd=mysqli_select_db($conexion,$bd);

$redireccion=mysqli_query($conexion,"insert into registro (nombre,edad,pass) values ($nombre,$edad,$pass)");

if($redireccion)
header("location: inicio.html");
else
header("location: http://www.google.com");

?>

-he cambiado la consulta, para obtener los datos de la tabla, y lo he conseguido.
solo al momento de ingresar datos tengo problemas.gracias por la atencion.saludos


Título: Re: problema al registrar a un usuario desde php y almacenarlo en mysql
Publicado por: ~ Yoya ~ en 15 Octubre 2011, 00:54 am
Si el problema es con el serve aunque lo dudo, probaste realizar insert directamente desde un cliente MYSQL?

Debes verificar que existe contenido en las variables que recibes vía POST, yo  haria esto para probar nomas.

Código
  1. <?php
  2. $host="localhost";
  3. $usuario="root";
  4. $pass="";
  5.  
  6. $conexion=mysqli_connect($host,$usuario,$pass);
  7.  
  8. $bd="users";
  9.  
  10. $sbd=mysqli_select_db($conexion,$bd);
  11.  
  12. $redireccion=mysqli_query($conexion,"insert into registro (nombre,edad,pass) values ('xDxx',15,'asasas11212')");
  13.  
  14. if($redireccion)
  15. header("location: inicio.html");
  16. else
  17. header("location: http://www.google.com");
  18.  
  19. ?>


Título: Re: problema al registrar a un usuario desde php y almacenarlo en mysql
Publicado por: jhonatanAsm en 16 Octubre 2011, 01:32 am
gracias por el consejo, ya lo probe y no me funciono en win 7 64 bit.

-En una pc xp 32 bit, puse el mismo codigo con el wampServer 32bit y si me funciono.
no se si es por el S.O , o los bits... help me!. por ahora me instale el wampServer y mysql de 32 bit en win7 64 bit y no me funciono. alguien que me pueda ayudar,salu2.
o me podrian recomendar un server que a uds. les hayan funcionado en win 7 64 bit??ayudaa.


Título: Re: problema al registrar a un usuario desde php y almacenarlo en mysql
Publicado por: ~ Yoya ~ en 16 Octubre 2011, 14:19 pm
si usaras linux no fuera ningun problema XD


Título: Re: problema al registrar a un usuario desde php y almacenarlo en mysql
Publicado por: Hurubnar en 16 Octubre 2011, 16:21 pm
Bueno, el error (creo) está al introducir los datos, que son variables. Tú estás haciendo lo siguiente:

Código
  1. $redireccion=mysqli_query($conexion,"insert into registro (nombre,edad,pass) values ($nombre,$edad,$pass)");

Al ser $nombre, $edad y $pass unas variables, los debes poner entre apóstrofes ('):
Código
  1. $redireccion=mysqli_query($conexion,"insert into registro (nombre,edad,pass) values ('$nombre','$edad','$pass')");

Espero haberte ayudado,
atte. Herio


Título: Re: problema al registrar a un usuario desde php y almacenarlo en mysql
Publicado por: jhonatanAsm en 16 Octubre 2011, 18:01 pm
yo creo que linux es el sgte paso ( programar hardware ),   :silbar:
me convencì ( en estos dias ) de que estudio para aprender y xq me gusta ::) y todavia no profundizaré en los temas, asi que debido los problemas en win 7 64 bits, me paso a una compu con 32 bits ( mas tiempo para aprender, menos busqueda de compatibilidades ).

La batalla con win 7 64 bit aun no acaba, se posterga.saludos


Título: Re: problema al registrar a un usuario desde php y almacenarlo en mysql
Publicado por: hacknival en 16 Octubre 2011, 20:16 pm
Bueno, el error (creo) está al introducir los datos, que son variables. Tú estás haciendo lo siguiente:

Código
  1. $redireccion=mysqli_query($conexion,"insert into registro (nombre,edad,pass) values ($nombre,$edad,$pass)");

Al ser $nombre, $edad y $pass unas variables, los debes poner entre apóstrofes ('):
Código
  1. $redireccion=mysqli_query($conexion,"insert into registro (nombre,edad,pass) values ('$nombre','$edad','$pass')");

Espero haberte ayudado,
atte. Herio

Yo casi no uso PHP pero estoy de acuerdo con Herio, posiblemente el error sea al llamar tus variables a parte de poner apostrofes seria usando una concatenacion. Quedaria algo asi (Mencione que no uso mucho php pero espero me entiendas en eso de la concatenacion):

$redireccion=mysqli_query($conexion,"insert into registro (nombre,edad,pass) values (".'$nombre'.",".'$edad'.",".'$pass'.")");

y si la variable edad es numerica no necesita apostrofes:

$redireccion=mysqli_query($conexion,"insert into registro (nombre,edad,pass) values (".'$nombre'.",".$edad.",".'$pass'.")");
 espero te sirva saludos desde México...


Título: Re: problema al registrar a un usuario desde php y almacenarlo en mysql
Publicado por: hacknival en 16 Octubre 2011, 20:32 pm
ya cheque eso de la concatenacion y si no me equivoco quedaria asi:

$redireccion=mysqli_query($conexion,"insert into registro (nombre,edad,pass) values ('".$nombre."','".$edad."','".$pass."')");




Título: Re: problema al registrar a un usuario desde php y almacenarlo en mysql
Publicado por: jhonatanAsm en 18 Octubre 2011, 00:45 am
graciasssss,
subi mi pagina a la web,
le enviaba los datos y solo registraba cuando a todos los campos le enviaba numeros.

pero una vez que le puse '".$variable."' empezo a registrar cualquier caracter xD!.
pero yo no entiendo por qué poner comilla simple,comilla doble y punto??

entiendo que el punto es el operador concatenacion:
ejem: $a="hola";
$b=$a."mundo"; // $b almacena holamundo

y que para caracteres especiales tenemos comillas dobles.
ejem: "hola \n ";

pero por qué utilizar '".$variable."'    ???
muchas gracias por su ayuda.cuidense,xaufa.


Título: Re: registrar a un usuario desde php y almacenarlo en mysql con mysqli_query() SOLUC
Publicado por: ~ Yoya ~ en 18 Octubre 2011, 16:48 pm
Los string tienen que ir entre comillas simples o dobles.


Título: Re: registrar a un usuario desde php y almacenarlo en mysql con mysqli_query() SOLUC
Publicado por: jhonatanAsm en 19 Octubre 2011, 04:51 am
hola yoya, entiendo lo de string entre comillas, pero por qué poner punto al costado de comillas??, saludos.


Título: Re: registrar a un usuario desde php y almacenarlo en mysql con mysqli_query() SOLUC
Publicado por: Shell Root en 19 Octubre 2011, 06:58 am
Ese es el operador para concatenar, unir, -como lo llames-.

Es decir,
Código
  1. $sHola   = "Hola";
  2. $sComo   = "Como";
  3. $sEstas  = "Estas?";

Lo que puedes hacer para unirlo en una sola variable podría ser,
Código
  1. $sTodo = "$sHola $sComo $sEstas.";

Que como resultado sería,
Código
  1. Hola Como Estas?

Pero ahora, si lo que tienes es una Query, podría ser,
Código
  1. $sTodo = "SELECT id,nombre,apellido FROM tblPoC WHERE( nombre = '".$sField."' ) LIMIT 1;"

Aunque podría ser,
Código
  1. $sTodo = "SELECT id,nombre,apellido FROM tblPoC WHERE( nombre = '$sField' ) LIMIT 1;"

Pero en algunas ocasiones se necesita escapar el cierre de las comillas principales, para que la variable no sea tomada como String.

:http://www.google.com.co/#hl=es&sugexp=kjrmc&cp=12&gs_id=19&xhr=t&q=concatenar+php&fp=bbda4c02d5c15e16


Título: Re: registrar a un usuario desde php y almacenarlo en mysql con mysqli_query() SOLUC
Publicado por: jhonatanAsm en 19 Octubre 2011, 22:40 pm
gracias, pero mhmhm, creo que el estrés y el saber que la semana que viene tengo parcial de analisis matematico 4 me ha bloqueado un poquito la mente.

es valida la sgte consulta:
Código:
$sTodo = 'SELECT id,nombre,apellido FROM tblPoC WHERE( nombre = "'.$sField.'" ) LIMIT 1;'

muchas gracias shell root.

pd:creo que "shell root", es una contradiccion, ya que shell significa cascara, y root raiz, y decir "raiz cascara" es una contradiccion. soy un novato que dice lo que piensa, pero de vez en cuando no piensa en lo que dice. Salu2


Título: Re: registrar a un usuario desde php y almacenarlo en mysql con mysqli_query() SOLUC
Publicado por: Shell Root en 19 Octubre 2011, 22:48 pm
La Query que de dí, es sólo un ejemplo.




Pues no quiero entrar en discusión con mi nick, pero yo lo entiendo personalmente como,
SHELL = Consola
ROOT  = SuperAdmin

Así que unido sería como administrador de consola, eso es a mi parecer, si a alguien no le gusta que se lo meta por "##$R#$%#" ahahahhha


Título: Re: registrar a un usuario desde php y almacenarlo en mysql con mysqli_query() SOLUC
Publicado por: jhonatanAsm en 20 Octubre 2011, 06:26 am
lo de tu nick, no lo dije en mala onda men.salu2.