funcion en php

Iniciado por elezekiel, 28 Junio 2014, 00:00 AM

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

elezekiel

hola amigos, conozco muy poco de php y aca se que hay expertos, lo que voy a decir seguramente es absolutamente ridiculo y de novato, pero no tengo idea...

Yo tengo una web montada la cual tiene un "script" en uno de los archivos de php, no se si llamarlo asi que es este:


switch ($reset_points_formula){
                        case '0': $new_bpoints = ($select_req->fields[3]+$reset_points); break;
                        case '1': $new_bpoints = ($reset_points*($select_req->fields[2]+1)); break;
                    }


El case 1, es el que ejecuta, pues he hecho cambios ahi y obtuve resultados satisfactorios comprobando que efectivamente ahi se realizan los cambios.

Despues tengo otro archivo en php que tiene esto :

$reset_credits = trim($load_reset_settings->bcredits);

junto con otras variables (creo que son variables, no estoy seguro)
es decir, creo que ese reset_credits es una variable,  no ?


El tema es este, lo tengo en archivos separados, es posible que yo desde el primer code, tome el valor de esa variable "reset_credits"

Si es asi, como lo puedo leer?

No se si se entiende lo que digo...

Espero que si, cualquier duda me dicen y aclaro.. gracias de ante mano por ayudarme (como siempre)

MinusFour

Hay varias formas de hacer esto, pero la verdad no tengo idea de como este tu código. A menos que la variable sea super necesaria en muchos otros archivos te sugeriría que revalues la composición de tu código.

Algunas opciones incluyen hacer la variable global o pasar la variable como argumento de la función. Para ambas opciones vas necesitar incluir el otro archivo en tu script.

elezekiel

#2
Como incluyo el archivo que contiene el segundo codigo en el script del primero?

Eso se hace con algun code especial, te paso parte del codigo inicial para que te orientes:

esto va en el primer archivo del cual tengo que ejecutar el script y de ahi tomar el valor del segundo:

Código (php) [Seleccionar]
<?
$load_reset_settings = simplexml_load_file('engine/config_mods/reset_character_settings.xml');
$active = trim($load_reset_settings->active);
if($active == '0'){
echo msg('0','Sorry, this feature is temporarily unavailable at the moment.');
}else{
$reset_level = trim($load_reset_settings->level);
$reset_zen  = trim($load_reset_settings->zen);
$reset_points = trim($load_reset_settings->bpoints);
$reset_points_formula = trim($load_reset_settings->bpoints_formula);
$reset_clear_skills = trim($load_reset_settings->clear_skills);
$reset_clear_inv = trim($load_reset_settings->clear_inv);
$reset_stats = trim($load_reset_settings->reset_stats);
$reset_limit = trim($load_reset_settings->reset_limit);

if(isset($_GET['rid'])){
echo '<div style="margin-top: 10px;">';
$id = safe_input($_GET['rid'],'');
if(empty($id) || !is_numeric($id)){
header('Location: '.$core_run_script.'');
exit();
}else{
if(character_and_account($id,$user_auth_id) === false){
header('Location: '.$core_run_script.'');
exit();
}else {
if(account_online($user_auth_id) === true){
echo msg('0','Estas conectado al juego,porfavor desconectate para resetear.');
}else{
$select_req = $core_db->Execute("select clevel,money,resets,leveluppoint from character where mu_id=? and accountid=?",array($id,$user_auth_id));
if($select_req->fields[0] < $reset_level){
echo msg('0','Unable to reset, reason: lacking '.($reset_level - $select_req->fields[0]).' levels.');
$no_reset = 1;
}
if($select_req->fields[1] < $reset_zen){
echo msg('0','Unable to reset, reason: lacking '.number_format($reset_zen - $select_req->fields[1]).' zen.');
$no_reset = 1;
}
if($select_req->fields[2] >= $reset_limit){
echo msg('0','Unable to reset, reason: reset limit reached : '.number_format($reset_limit).'');
$no_reset = 1;
}
if($no_reset != '1'){
$new_money = $select_req->fields[1] - $reset_zen;
switch ($reset_points_formula){
case '0': $new_bpoints = ($select_req->fields[3]+$reset_points); break;
case '1': $new_bpoints = ($reset_points*($select_req->fields[2]+1)); break;
}
switch ($reset_stats){
case '1':
if($reset_clear_inv == '1' and $reset_clear_skills == '1'){
$reset_formula = "Update character set [resets]=(resets+1),[clevel]='1',[experience]='0',[leveluppoint]=?,[money]=?,[strength]='25',[dexterity]='25',[vitality]='25',[energy]='25',[leadership]='25',[inventory]=CONVERT(varbinary(1080), null),[magiclist]=CONVERT(varbinary(180), null) where mu_id=?";
}elseif ($reset_clear_inv == '1'){
$reset_formula = "Update character set [resets]=(resets+1),[clevel]='1',[experience]='0',[leveluppoint]=?,[money]=?,[strength]='25',[dexterity]='25',[vitality]='25',[energy]='25',[leadership]='25',[inventory]=CONVERT(varbinary(1080), null) where mu_id=?";
}elseif ($reset_clear_skills == '1'){
$reset_formula = "Update character set [resets]=(resets+1),[clevel]='1',[experience]='0',[leveluppoint]=?,[money]=?,[strength]='25',[dexterity]='25',[vitality]='25',[energy]='25',[leadership]='25',[magiclist]=CONVERT(varbinary(180), null) where mu_id=?";
}elseif ($reset_clear_inv == '0' and $reset_clear_skills == '0'){
$reset_formula = "Update character set [resets]=(resets+1),[clevel]='1',[experience]='0',[leveluppoint]=?,[money]=?,[strength]='25',[dexterity]='25',[vitality]='25',[energy]='25' where mu_id=?";
}
break;
case '0':
if($reset_clear_inv == '1' and $reset_clear_skills == '1'){
$reset_formula = "Update character set [resets]=(resets+1),[clevel]='1',[experience]='0',[leveluppoint]=?,[money]=?,[inventory]=CONVERT(varbinary(1080), null),[magiclist]=CONVERT(varbinary(180), null) where mu_id=?";
}elseif ($reset_clear_inv == '1'){
$reset_formula = "Update character set [resets]=(resets+1),[clevel]='1',[experience]='0',[leveluppoint]=?,[money]=?,[inventory]=CONVERT(varbinary(1080), null) where mu_id=?";
}elseif ($reset_clear_skills == '1'){
$reset_formula = "Update character set [resets]=(resets+1),[clevel]='1',[experience]='0',[leveluppoint]=?,[money]=?,[magiclist]=CONVERT(varbinary(180), null) where mu_id=?";
}elseif ($reset_clear_inv == '0' and $reset_clear_skills == '0'){
$reset_formula = "Update character set [resets]=(resets+1),[clevel]='1',[experience]='0',[leveluppoint]=?,[money]=? where mu_id=?";
}
break;
}
$exc_reset_formula=$core_db->Execute($reset_formula,array($new_bpoints,$new_money,$id));
if($exc_reset_formula){
echo msg('1','Character successfully reseted.');
}else{
echo msg('0','Unable to reset, reason: system error, please contact administrator.');
}
}
}
}
}
echo '</div>';
}


Tiene mucho mas pero creo que con eso alcanza, no ? el otro archivo tiene este code:

(que de este archivo es de donde obtengo el valor pero para este archivo, yo lo quiero tomar para el otro)

Código (PHP) [Seleccionar]
<?
$load_reset_settings = simplexml_load_file('engine/config_mods/grandreset_character_settings.xml');
$active = trim($load_reset_settings->active);
if($active == '0'){
echo msg('0','Sorry, this feature is temporarily unavailable at the moment.');
}else{
$reset_resets_need = trim($load_reset_settings->resets_need);
$reset_level = trim($load_reset_settings->level);
$reset_zen  = trim($load_reset_settings->zen);
$reset_points = trim($load_reset_settings->bpoints);
$reset_points_formula = trim($load_reset_settings->bpoints_formula);
$reset_clear_skills = trim($load_reset_settings->clear_skills);
$reset_clear_inv = trim($load_reset_settings->clear_inv);
$reset_stats = trim($load_reset_settings->reset_stats);
$reset_limit = trim($load_reset_settings->reset_limit);
$reset_credits = trim($load_reset_settings->bcredits);
$reset_credits_formula = trim($load_reset_settings->bcredits_formula);

if(isset($_GET['rid'])){
echo '<div style="margin-top: 10px;">';
$id = safe_input($_GET['rid'],'');
if(empty($id) || !is_numeric($id)){
header('Location: '.$core_run_script.'');
exit();
}else{
if(character_and_account($id,$user_auth_id) === false){
header('Location: '.$core_run_script.'');
exit();
}else {
if(account_online($user_auth_id) === true){
echo msg('0','Account is connected on game, please logout.');
}else{
$select_req = $core_db->Execute("select clevel,money,resets,leveluppoint,grand_resets from character where mu_id=? and accountid=?",array($id,$user_auth_id));

if($select_req->fields[2] < $reset_resets_need){
echo msg('0','Unable to reset, reason: lacking '.($reset_resets_need - $select_req->fields[2]).' resets.');
$no_reset = 1;
}

if($select_req->fields[0] < $reset_level){
echo msg('0','Unable to reset, reason: lacking '.($reset_level - $select_req->fields[0]).' levels.');
$no_reset = 1;
}
if($select_req->fields[1] < $reset_zen){
echo msg('0','Unable to reset, reason: lacking '.number_format($reset_zen - $select_req->fields[1]).' zen.');
$no_reset = 1;
}
if($no_reset != '1'){
$new_money = $select_req->fields[1] - $reset_zen;
switch ($reset_points_formula){
case '0': $new_bpoints = ($select_req->fields[3]+$reset_points); break;
case '1': $new_bpoints = ($select_req->fields[3]+ ($reset_points*($select_req->fields[2]+1))); break;
}

switch ($reset_credits_formula){
case '0': $new_bcredits = ($reset_credits); break;
case '1': $new_bcredits = ($reset_credits*($select_req->fields[4]+1)); break;
}
switch ($reset_stats){
case '1':
if($reset_clear_inv == '1' and $reset_clear_skills == '1'){
$reset_formula = "Update character set [resets]='0',[clevel]='1',[experience]='0',[leveluppoint]=?,[money]=?,[strength]='25',[dexterity]='25',[vitality]='25',[energy]='25',[leadership]='25',[inventory]=CONVERT(varbinary(1080), null),[magiclist]=CONVERT(varbinary(180), null),[grand_resets]=(grand_resets+1) where mu_id=?";
}elseif ($reset_clear_inv == '1'){
$reset_formula = "Update character set [resets]='0',[clevel]='1',[experience]='0',[leveluppoint]=?,[money]=?,[strength]='25',[dexterity]='25',[vitality]='25',[energy]='25',[leadership]='25',[inventory]=CONVERT(varbinary(1080), null),[grand_resets]=(grand_resets+1) where mu_id=?";
}elseif ($reset_clear_skills == '1'){
$reset_formula = "Update character set [resets]='0',[clevel]='1',[experience]='0',[leveluppoint]=?,[money]=?,[strength]='25',[dexterity]='25',[vitality]='25',[energy]='25',[leadership]='25',[magiclist]=CONVERT(varbinary(180), null),[grand_resets]=(grand_resets+1) where mu_id=?";
}elseif ($reset_clear_inv == '0' and $reset_clear_skills == '0'){
$reset_formula = "Update character set [resets]='0',[clevel]='1',[experience]='0',[leveluppoint]=?,[money]=?,[strength]='25',[dexterity]='25',[vitality]='25',[energy]='25',[leadership]='25',[grand_resets]=(grand_resets+1) where mu_id=?";
}
break;
case '0':
if($reset_clear_inv == '1' and $reset_clear_skills == '1'){
$reset_formula = "Update character set [resets]='0',[clevel]='1',[experience]='0',[leveluppoint]=?,[money]=?,[inventory]=CONVERT(varbinary(1080), null),[magiclist]=CONVERT(varbinary(180), null),[grand_resets]=(grand_resets+1) where mu_id=?";
}elseif ($reset_clear_inv == '1'){
$reset_formula = "Update character set [resets]='0',[clevel]='1',[experience]='0',[leveluppoint]=?,[money]=?,[inventory]=CONVERT(varbinary(1080), null),[grand_resets]=(grand_resets+1) where mu_id=?";
}elseif ($reset_clear_skills == '1'){
$reset_formula = "Update character set [resets]='0',[clevel]='1',[experience]='0',[leveluppoint]=?,[money]=?,[magiclist]=CONVERT(varbinary(180), null),[grand_resets]=(grand_resets+1) where mu_id=?";
}elseif ($reset_clear_inv == '0' and $reset_clear_skills == '0'){
$reset_formula = "Update character set [resets]='0',[clevel]='1',[experience]='0',[leveluppoint]=?,[money]=?,[grand_resets]=(grand_resets+1) where mu_id=?";
}
break;
}
$exc_reset_formula=$core_db->Execute($reset_formula,array($new_bpoints,$new_money,$id));


$check_for_memb_id = $core_db2->Execute("Select ".MU_COINS_USERID_COLUMN." from ".MU_COINS_TABLE." where ".MU_COINS_USERID_COLUMN."=?",array($user_auth_id));
if($check_for_memb_id->EOF){
$set_credits = $core_db2->Execute("insert into ".MU_COINS_TABLE." (".MU_COINS_USERID_COLUMN.",".MU_COINS_COLUMN.")VALUES(?,?)",array($user_auth_id,$new_bcredits));
}else{
$set_credits = $core_db2->Execute("Update ".MU_COINS_TABLE." set ".MU_COINS_COLUMN."=".MU_COINS_COLUMN."+?  where ".MU_COINS_USERID_COLUMN."=?",array($new_bcredits,$user_auth_id));
}


if($exc_reset_formula && $set_credits){
echo msg('1','Character successfully grand reseted.');
}else{
echo msg('0','Unable to grand reset, reason: system error, please contact administrator.');
}
}
}
}
}
echo '</div>';
}


Gracias por tu pronta respuesta, hace 4 dias estoy con esto, y ayer publique en varios foros pero nadie quiso ayudarme.

Gracias por la sugerencia, ya lo modifique

engel lex

te recomiendo para que se pueda entender algo en tu codigo (es sumamente dificil de leer) modificalo y el codigo colocalo entre etiquetas GeSHi (donde está la etiqueta simple de codigo, a la derecha al final) y escoges tu lenguaje
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

MinusFour

#4
En este caso yo creo que podrías hacer un archivo que cargue toda la información de tus archivos xml. Por ejemplo:

Config.php
Código (php) [Seleccionar]

$load_reset_settings = simplexml_load_file('engine/config_mods/reset_character_settings.xml');
$load_grand_reset_settings = simplexml_load_file('engine/config_mods/grandreset_character_settings.xml');
..
//Agrega mas archivos aqui
$reset_credits = trim($load_grand_reset_settings->bcredits);
$reset_level = trim($load_reset_settings->level);
..
//Agrega mas variables aqui


GrandReset.php
Código (php) [Seleccionar]

include 'Config.php'
$reset_credits;
//Tambien puedes ver $reset_level por si lo necesitas


Reset.php
Código (php) [Seleccionar]

include 'Config.php'
$reset_level;
//Tambien puedes ver $reset_credits por si lo necesitas


elezekiel

Entiendo perfectamente lo que decis, gracias por la claridad, como agrego el archivo??..
sorry se que soy nulo en php..

o el code que me facilitaste ya lo tiene cargado?

Creo otro con extension html y agrego el script que me pasaste?
no me queda claro lo de agregar mas archivos.. si le llamas aregar a la linea de code o a crear un archivo nuevo de 0.

de verdad disculpas por no saber, yo solo manejo visual basic 6.

gracias

MinusFour

Los archivos pueden estar donde sea, lo único importante es que el include apunte correctamente a él archivo de configuración. El archivo tiene que cargar todas las variables y los archivos correspondientes para configurar las variables.

Cuando quieras utilizar las variables sólo llamas al archivo vía include y listo.

elezekiel

Excelente, gracias, ya entiendo mas... muchas gracias.. voy a llevar a cabo la modificacion y comento  como me fue.

Nuevamente muchas gracias por tu tiempo y experiencia.

elezekiel

#8
Cita de: MinusFour en 28 Junio 2014, 02:35 AM
Los archivos pueden estar donde sea, lo único importante es que el include apunte correctamente a él archivo de configuración. El archivo tiene que cargar todas las variables y los archivos correspondientes para configurar las variables.

Cuando quieras utilizar las variables sólo llamas al archivo vía include y listo.

Bueno intente pero no pude, me ignora el resto del code si coloco el "include"
Quiero decir que cuando voy a la pagina y apreto el boton para que vaya a aesa opcion no aparece nada, no me muestra nada.

Hay alguna parte especial donde deba colocarlo?

En el nombre del archivo con el nombre basta o tengo que colocar la ruta completa?

Saludos.

MinusFour

Probablemente haya un error en tu archivo de configuración. Sólo con el nombre basta si los archivos comparten el mismo directorio.