Indicar a php. que cree X cosa en DB mysql ( e indicarle la db que tiene k usar)

Iniciado por XXXXXX, 23 Abril 2010, 01:24 AM

0 Miembros y 1 Visitante están viendo este tema.

XXXXXX

Necesitaria saber como hago para que un comando PHP me escriba unas databases mysql..


el codigo es este

CREATE TABLE usuarios (
      id bigint(7) NOT NULL AUTO_INCREMENT,
      nick char(100) NOT NULL,
      password char(100) NOT NULL,
      nombre char(255) DEFAULT NULL,
      email char(100) DEFAULT NULL,
      KEY id (id)) 


como soy nuevo no tengo ni pajotera idea de como hacerlo, haber si alguien me echa una mano..

el codigo php es este


<FORM ACTION="registrar.php" METHOD="post">
Nick: <INPUT TYPE="text" NAME="nick" SIZE="20" MAXLENGTH="20">
<BR>
Email: <INPUT TYPE="text" NAME="email" SIZE="28" MAXLENGTH="100">
<BR>
Password: <INPUT TYPE="password" NAME="password" SIZE="28" MAXLENGTH="20">
<BR>
Nombre: <INPUT TYPE="text" NAME="nombre" SIZE="28" MAXLENGTH="255">
<BR>
<INPUT TYPE="submit" CLASS="boton" VALUE="Registrar">
</FORM>


con esto seria suficiente?

PD:
esto tiene algo que ver?

<?php 
//AQUI CONEXION O include() DE ARCHIVO DE CONEXION CON BASE DE DATOS.
function quitar($mensaje)
{
$mensaje str_replace("<","&lt;",$mensaje);
$mensaje str_replace(">","&gt;",$mensaje);
$mensaje str_replace("\'","'",$mensaje);
$mensaje str_replace('\"',"&quot;",$mensaje);
$mensaje str_replace("\\\\","\\",$mensaje);
return 
$mensaje;
}
 
if(
trim($HTTP_POST_VARS["nick"]) != "" && trim($HTTP_POST_VARS["email"]) != "")
{
$sql "SELECT id FROM usuarios WHERE nick='".quitar($HTTP_POST_VARS["nick"])."'";
$result mysql_query($sql);
if(
$row mysql_fetch_array($result))
{
echo 
"Error, nick escogido por otro usuario";
}
else
{
$sql "INSERT INTO usuarios (nick,password,nombre,email) VALUES (";
$sql .= "'".quitar($HTTP_POST_VARS["nick"])."'";
$sql .= ",'".quitar($HTTP_POST_VARS["password"])."'";
$sql .= ",'".quitar($HTTP_POST_VARS["nombre"])."'";
$sql .= ",'".quitar($HTTP_POST_VARS["email"])."'";
$sql .= ")";
mysql_query($sql);
echo 
"Registro exitoso!";
}
mysql_free_result($result);
}
else
{
echo 
"Debe llenar como minimo los campos de email y password";
}
mysql_close();
?>



gracias y saludos

MinusFour

Pues te dire, el primer codigo al que dices que es PHP no es PHP sino vil HTML, y en el P.D que pones es completamente PHP.

CREATE es una query, por lo tanto podrias usar el metodo de php mysql_query()

WHK

Código (php) [Seleccionar]
function quitar($mensaje)
{
$mensaje = str_replace("<","&lt;",$mensaje);
$mensaje = str_replace(">","&gt;",$mensaje);
$mensaje = str_replace("\'","'",$mensaje);
$mensaje = str_replace('\"',"&quot;",$mensaje);
$mensaje = str_replace("\\\\","\\",$mensaje);
return $mensaje;
}


pwned, según el primer filtro las comillas " no se filtran porque está encerrada en comillas simples y la secuencia de escape se invalida  :P

Código (php) [Seleccionar]
<?php
function quitar($mensaje){
$mensaje str_replace("<","&lt;",$mensaje);
$mensaje str_replace(">","&gt;",$mensaje);
$mensaje str_replace("\'","'",$mensaje);
$mensaje str_replace('\"',"&quot;",$mensaje);
$mensaje str_replace("\\\\","\\",$mensaje);
return 
$mensaje;
}

echo 
quitar('1: " 2: \\" 3: \\\\" ');
?>


Resultado:
Citar1: " 2: &quot; 3: \&quot;

por lo tanto str_replace está esperando literalmente un \" y no un " debido a que la secuencia de escape no funciona porque se encerró en comillas simples, sería válido si se hubiera encerrado en comillas dobles.
es vulnerable a inyección sql.

Además esta función ya existe de forma nativa en php, reemplazas:
$sql .= "'".quitar($HTTP_POST_VARS["nick"])."'";

por
$sql .= "'".mysql_real_escape_string($_POST["nick"])."'";

también recuerda que desde php6 $HTTP_POST_VARS ya no existe, para eso se usa $_POST $_GET $_COOKIES $_SERVER etc etc.

http://php.net/manual/en/reserved.variables.post.php

Citar$_POST -- $HTTP_POST_VARS [deprecated] — HTTP POST variables

deprecated, obsoleto, que ya no se usa ni se usará y que será eliminado y hechado en la hoguera.

XXXXXX

esque e estado buscando sistemas de usuarios, php y mysql y lo unico que e logrado encontrar, an sido tutoriales anticuados, y mal explicados...

alguien tiene idea de donde conseguir uno que funcione? porque con tanto codigo ya me estoy volviendo majara  :laugh:

algun tutorial?

gracias de nuevo

WHK

esque explicar a hacer un sistema de usuario es muy laaaaargo, yo tengo un tutorial y me gustaría pegarlo acá pero es demasiado largo asi que veré si puedo hacer un poco de spam y pegarte el link xD

http://tinyurl.com/2aagdpk

XXXXXX

creo que seria mas facil, vincular las db de smf a la web, ya tengo metido el loging...


solo me faltaria crear el sistema de post, para los videos, eso es posible?

esque ahora que encontre eso, seria mas practico, asi seria la misma cuenta, tanto del foro como de la web, y podria asignar, que si no estan logueados en la web, no pudieran comentar, en los videos.

es posible? por donde empiezo?

MinusFour

Busca acerca del SSI de SMF entonces. Creo que te puede ayudar para lo que quieres!

XXXXXX

ahora solo me falta, el chat, ya tengo funcionando el loging, el logout y el mensaje de bienvenida, solo que ahora, hay algo raro, cuando te logueas no te redirige a la web, si no al foro, y no tendria que ser asi...

alguna idea?

XXXXXX

Gracias a todos, ya esta arreglado


abrire nuevo post, para mi nueva pregunta.