En estos días estoy más en esto del PHP, pero sinceramente no sé casi nada de PHP. Así que me gustaría me ayudaran con este problema:
Tengo un juego, y en este quiero crear un sistema de Log-in que me sincronize las cuentas que se crean con un script PHP, y que desde otros scripts PHP pueda leer esas cuentas con $_SESSION (creo que era así..xD)
alaberga regué el café.

BA:STFW&RTFM

no entiendo muy bien tu pregunta, para comenzar la variable $_SESSION es una superglobal array que guarda informacion que puede ser usada, por ejemplo, para almacenar una variable de sesion, ojo esto no significa que sea un loging, esta variable guarda datos en una misma pestaña o explorador en una sola computador, por decirlo asi, en esta variable puedes guardar por ejemplo un nombre, entonces mientras la persona tenga abierta esa pagina y recargue la pagina o navege atravez de ella ese nombre siempre estara guardado, sin embargo en el momento de cerrar el explorador esa variable se pierde, esta variable junto con cookies pueden usarse para por ejemplo, guardar el login de alguien por un periodo de 10 minutos, una hora o dias incluso si se cerro el explorador.


ahora bien ya explicado eso si lo que tratas de decir es un sistema "multiplayer" en base a php y nada mas, no, no se puede, el php es un codigo que es procesado por el servidor y luego te envia el resultado en forma de html, el php no puede de ninguna manera sin otra cosa,digase sql, conectarte a ti a otras personas.
no puedo creer que me hice un tumblr.
YGE Productions yep, otro tumblr.
y como no, el manual tambien

Bueno, creo que fue mi culpa, me falto explicarme...xD
No intento crear un sistema multiplayer, no es mi intención ni lo será, lo que realmente intento detrás de todo esto es crear una manera de ejecutar un script PHP desde GMS (ya lo hice), pero que se ejecute sólo si el usuario tiene sesión iniciada, esto para evitar intrusiones de agentes externos (juankers XD)
alaberga regué el café.

BA:STFW&RTFM

Cita de: NiuWeb en Noviembre 20, 2015, 10:19:00 PM
Bueno, creo que fue mi culpa, me falto explicarme...xD
No intento crear un sistema multiplayer, no es mi intención ni lo será, lo que realmente intento detrás de todo esto es crear una manera de ejecutar un script PHP desde GMS (ya lo hice), pero que se ejecute sólo si el usuario tiene sesión iniciada, esto para evitar intrusiones de agentes externos (juankers XD)

si el caso es que tu quieres que se ejecute un script en php solo si el usuario esta logeado(a juro tienes que usar sql(soy venezolano y la expresion "a juro"significa si o si)) pues puedes usar algo asi:


<?php
$usuario 
=$_GET['usuario']
$mysql_server "url donde esta alojado el servidor sql";
$mysql_username =  "tu usuario";
$mysql_password "tu clave";
$mysql_database "el nombre de la base de datos";
$mysql_table "la tabla en la que esten los datos"
//conectar a base de datos
$con mysql_connect($mysql_server,$mysql_username,$mysql_password) or die('Can not connect to server');//nos conectamos al servidor donde se aloja el sql
mysql_select_db($mysql_database) or die('Can not connect to database');//seleccionamos la base de datos en la que trabajaremos

$result mysql_query("select `nombre`from $mysql_table where `nombre`= $usuario")
$numero_resultados=mysql_num_rows($result);
if (
$numero_resultados==1)
{
//tu script
}
else
echo
"usuario inexistente";
mysql_close($con);
?>



sin embargo esta no es la unica forma de hacerlo, tambien se puede usar la variable session y que guarde que el usuario se le concedio acceso, pero no se como trabaja esa superglobal con el gamemaker y ademas es menos seguro que hacer una consulta cada vez que se vaya a realizar una accion.
no puedo creer que me hice un tumblr.
YGE Productions yep, otro tumblr.
y como no, el manual tambien

Más o menos entiendo eso :-[
Pero quisiera saber como puedo, por ejemplo:
cree un sistema de cuentas en GMS, que almacena la cuenta con usuario y contraseña, y necesito que, al usar el script PHP, éste detecte que 1)- El script se esté ejecutando desde el juego, y 2)- Que esté registrado y loggeado correctamente
alaberga regué el café.

BA:STFW&RTFM

ok, vamos a considerar que ya tienes lista la base de datos y que te programa esta listo

seria algo como esto, en el programa colocas
[gml]
//en el create o donde vayas a ejecutar el login
usuario = get_string("usuario","")
pass = get_string("pass","")
http_get(url+"?usuario="+string(usuario)+"&pass="+string(pass))
//en el evento asyncrono
estatus = ds_map_find_value(async_event,"status")
if estatus ==0
{
resultado = ds_map_find_value(async_event,"result")//donde resultado es la respuesta del servidor que por ejemplo sea 1 si todo ocurrio perfectamente y 0 si no
if resultado == 1
{
//lo que sea que quiera que aga el juego cuando se logee correctamente
}
}
[/gml]

en el php seria lo que ya te puse

<?php
$usuario 
=$_GET['usuario']
$pass =$_GET['pass']
$mysql_server "url donde esta alojado el servidor sql";
$mysql_username =  "tu usuario";
$mysql_password "tu clave";
$mysql_database "el nombre de la base de datos";
$mysql_table "la tabla en la que esten los datos"
//conectar a base de datos
$con mysql_connect($mysql_server,$mysql_username,$mysql_password) or die('Can not connect to server');//nos conectamos al servidor donde se aloja el sql
mysql_select_db($mysql_database) or die('Can not connect to database');//seleccionamos la base de datos en la que trabajaremos

$result mysql_query("select `nombre` from $mysql_table where `nombre`= $usuario and `pass`= $pass ")
$numero_resultados=mysql_num_rows($result);
if (
$numero_resultados==1)
{
//tu script
echo "1";//como respuesta de que todo fue bien
}
else
echo
"0";//si todo fue mal
mysql_close($con);
?>


como recomendacion te diria que entres en el manual de php para que trates de aprender esto, en internet hay muchos codigos que puedes usar como ejemplos, el que te puse arriba en realidad es uno muy simple, no tiene ni encriptacion, ni limpieza de caracteres especiales ni se a escapado las sentencias sql, es mas, si no se escapan las variable que introducira el sql te pueden destruir la base de datos, pero no te preocupes eso se hace con mysql_real_escape_string
no puedo creer que me hice un tumblr.
YGE Productions yep, otro tumblr.
y como no, el manual tambien

Bueno, pues en parte me ayuda, pero necesito realmente sincronizar mis cuentas del juego con una base de datos para poder ejecutar ese script.
Siendo que en el juego creas tu cuenta y esta se crea en la base de datos
alaberga regué el café.

BA:STFW&RTFM

Cita de: NiuWeb en Noviembre 21, 2015, 12:09:44 AM
Bueno, pues en parte me ayuda, pero necesito realmente sincronizar mis cuentas del juego con una base de datos para poder ejecutar ese script.
Siendo que en el juego creas tu cuenta y esta se crea en la base de datos

no entiendo si preguntas o afirmas cuando dices
Citarpero necesito realmente sincronizar mis cuentas del juego con una base de datos para poder ejecutar ese script.

si preguntas que si necesitas una base de datos si, si la necesitas, no conosco ninguna manera de almacenar una cuenta con password en un servidor sin usar una base de datos, quisas se podria usar lo que hablabamos en la pregunta de subir archivos a un hosting, pero no se muy bien si seria la mejor manera.

y con respecto a lo de sincronizar la cuenta creada desde el juego seria algo asi

[gml]
//en el create o donde vayas a ejecutar el login
usuario = get_string("usuario","")
pass = get_string("pass","")
http_get(url+"?usuario="+string(usuario)+"&pass="+string(pass))
//en el evento asyncrono
estatus = ds_map_find_value(async_event,"status")
if estatus ==0
{
resultado = ds_map_find_value(async_event,"result")//donde resultado es la respuesta del servidor que por ejemplo sea 1 si todo ocurrio perfectamente y 0 si no
if resultado == 1
{
//lo que sea que quiera que aga el juego cuando se logee correctamente
}
}
[/gml]

que realmente es el mismo que esta en el ejemplo anterior, ya quedaria de tu parte el ponerle que meta el pass dos veces, y que si no son inguales lo vuelva a pedir y cosas asi.

lo que realmente cambiaria es el php

dentro del php, por ejemplo, registro.php
<?php
$usuario 
=$_GET['usuario']
$pass =$_GET['pass']
$mysql_server "url donde esta alojado el servidor sql";
$mysql_username =  "tu usuario";
$mysql_password "tu clave";
$mysql_database "el nombre de la base de datos";
$mysql_table "la tabla en la que esten los datos"
//conectar a base de datos
$con mysql_connect($mysql_server,$mysql_username,$mysql_password) or die('Can not connect to server');//nos conectamos al servidor donde se aloja el sql
mysql_select_db($mysql_database) or die('Can not connect to database');//seleccionamos la base de datos en la que trabajaremos

$result mysql_query("INSERT INTO $mysql_table(`nombre`, `pass`) VALUES ($usuario,$pass)")//insertamos el usuario en la base de datos
$numero_resultados=mysql_num_rows($result);
if (
$numero_resultados==1)
{
//tu script
echo "1";//como respuesta de que todo fue bien
}
else
echo
"0";//si todo fue mal
mysql_close($con);
?>
no puedo creer que me hice un tumblr.
YGE Productions yep, otro tumblr.
y como no, el manual tambien

Lo intentaré, pero tengo otro problema. Cómo puedo saber cuál es la dirección URL de mi base de datos SQL, la he creado con 000webhost haciendo click en:

y después de crear esa base de datos, la abrí haciendo click en:


¿Sabes cómo encuentro la URL de mi base de datos?
alaberga regué el café.

BA:STFW&RTFM

dale click al primer boton, el que solo dice mysql hay abajo deberia de salirte el nombre de tu base de datos con los datos de usuario, servidor y nombre de base de dato, el pass deberias de saberlo tu
no puedo creer que me hice un tumblr.
YGE Productions yep, otro tumblr.
y como no, el manual tambien

y la URL sería algo como www.mipagina.algo/servidor/usuario_base_de_datos/ ? o cómo la puedo obtener?
alaberga regué el café.

BA:STFW&RTFM

#11 Noviembre 21, 2015, 02:22:12 AM Ultima modificación: Noviembre 21, 2015, 02:23:55 AM por jmbs19
bueno la cuestion es de que url hablas, si hablas de la url de la base de datos que va dentro del php, no, esa url te la da tu hoster en donde te dije, ahora bien, si hablas de la que va dentro del codigo gml tampoco seria esa, la url dentro del gml seria www.tupagina.com/tuphp.php y si usaras la variable GET dentro del php seria www.tupagina.com/tuphp.php?usuario=cualquiercosa&pass=cualquiercosa, si fuera con la variable POST pones nada mas www.tupagina.com/tuphp.php y en la parte de post colocas "usuario=cualquiercosa&pass=cualquiercosa"
no puedo creer que me hice un tumblr.
YGE Productions yep, otro tumblr.
y como no, el manual tambien

con URL me refiero al que va en la variable $mysql_server del código PHP...
alaberga regué el café.

BA:STFW&RTFM

Cita de: NiuWeb en Noviembre 21, 2015, 02:29:59 AM
con URL me refiero al que va en la variable $mysql_server del código PHP...
en esa variable va la url que encuentras donde te dije, cuando le das a mysql te sale una tabla con 3 campos, que son el nombre de la base de datos, el usuario y el hoster o servidor de la base de datos, el hoster o servidor es la url que pondras en esa variable
no puedo creer que me hice un tumblr.
YGE Productions yep, otro tumblr.
y como no, el manual tambien

async_event? Qué es esta variable...?
alaberga regué el café.

BA:STFW&RTFM