*********************************************************
Código :
<?php
define( "DATABASE_SERVER", "localhost" );
define( "DATABASE_USERNAME", "xxxx" );
define( "DATABASE_PASSWORD", "xxxx" );
define( "DATABASE_NAME", "xxxx" );
$mysql = mysql_connect(DATABASE_SERVER, DATABASE_USERNAME, DATABASE_PASSWORD) or die(mysql_error());
mysql_select_db( DATABASE_NAME );
$username = mysql_real_escape_string($_POST["usuario"]);
$password = mysql_real_escape_string($_POST["password"]);
$query = "SELECT * FROM tb_usuario WHERE usuario = '$username' AND password = '$password'";
$identificacion = mysql_query ("SELECT * FROM tb_usuario WHERE usuario LIKE '$username' ORDER BY id") or die (mysql_error());
if(mysql_num_rows($identificacion) != 0) {
while($row = mysql_fetch_object($identificacion)) {
$identidad .= $row->permiso;
}
mysql_free_result($identificacion);
} else {
$identidad = 'no';
}
$result = mysql_fetch_array(mysql_query($query));
$output .= "<loginsuccess>";
if(!$result)
{
$output .= "no";
}else{
$output .= "$identidad";
}
$output .= "</loginsuccess>";
print ($output);
?>
/////como resuntado de esto es un XML: <loginsuccess>no</loginsuccess>/////***************************************************************************************************************************
en uno de los archivos que me genera el flex 3 cuando realiso una aplicacion automatica para MYSQL de PHP.
solo quiero que el XML que genera el PHP de flex 3 tambien contenga este codigo personalizado, que tambien esta escrito em PHP y genera un XML pero no se donde colocar mi codigo, cada vez que trato de hacerlo me da este resultado:
***********************************************************************************************************************************
Código :
<loginsuccess>no</loginsuccess> //mi codigo// <?xml version="1.0" encoding="ISO-8859-1"?> <response> <data> <error>No operation</error> </data> <metadata /> </response>*********************************************************
este es el resultado del PHP de flex3:
*********************************************************
Código :
<?xml version="1.0" encoding="ISO-8859-1"?> <response> <data> <error>No operation</error> </data> <metadata /> </response>
*********************************************************
y este el codigo que gerera flex:
************************************************************************************************
Código :
<?php
require_once(dirname(__FILE__) . "/Fcp_gestionconn.php");
require_once(dirname(__FILE__) . "/functions.inc.php");
require_once(dirname(__FILE__) . "/XmlSerializer.class.php");
/**
* This is the main PHP file that process the HTTP parameters,
* performs the basic db operations (FIND, INSERT, UPDATE, DELETE)
* and then serialize the response in an XML format.
*
* XmlSerializer uses a PEAR xml parser to generate an xml response.
* this takes a php array and generates an xml according to the following rules:
* - the root tag name is called "response"
* - if the current value is a hash, generate a tagname with the key value, recurse inside
* - if the current value is an array, generated tags with the default value "row"
* for example, we have the following array:
*
* $arr = array(
* "data" => array(
* array("id_pol" => 1, "name_pol" => "name 1"),
* array("id_pol" => 2, "name_pol" => "name 2")
* ),
* "metadata" => array(
* "pageNum" => 1,
* "totalRows" => 345
* )
*
* )
*
* we will get an xml of the following form
*
* <?xml version="1.0" encoding="ISO-8859-1"?>
* <response>
* <data>
* <row>
* <id_pol>1</id_pol>
* <name_pol>name 1</name_pol>
* </row>
* <row>
* <id_pol>2</id_pol>
* <name_pol>name 2</name_pol>
* </row>
* </data>
* <metadata>
* <totalRows>345</totalRows>
* <pageNum>1</pageNum>
* </metadata>
* </response>
*
* Please notice that the generated server side code does not have any
* specific authentication mechanism in place.
*/
/**
* The filter field. This is the only field that we will do filtering after.
*/
$filter_field = "lugar";
/**
* we need to escape the value, so we need to know what it is
* possible values: text, long, int, double, date, defined
*/
$filter_type = "text";
/**
* constructs and executes a sql select query against the selected database
* can take the following parameters:
* $_REQUEST["orderField"] - the field by which we do the ordering. MUST appear inside $fields.
* $_REQUEST["orderValue"] - ASC or DESC. If neither, the default value is ASC
* $_REQUEST["filter"] - the filter value
* $_REQUEST["pageNum"] - the page index
* $_REQUEST["pageSize"] - the page size (number of rows to return)
* if neither pageNum and pageSize appear, we do a full select, no limit
* returns : an array of the form
* array (
* data => array(
* array('field1' => "value1", "field2" => "value2")
* ...
* ),
* metadata => array(
* "pageNum" => page_index,
* "totalRows" => number_of_rows
* )
* )
*/
function findAll() {
global $conn, $filter_field, $filter_type;
/**
* the list of fields in the table. We need this to check that the sent value for the ordering is indeed correct.
*/
$fields = array('id','lugar','fecha','descripcion','localidad');
$where = "";
if (@$_REQUEST['filter'] != "") {
$where = "WHERE " . $filter_field . " LIKE " . GetSQLValueStringForSelect(@$_REQUEST["filter"], $filter_type);
}
$order = "";
if (@$_REQUEST["orderField"] != "" && in_array(@$_REQUEST["orderField"], $fields)) {
$order = "ORDER BY " . @$_REQUEST["orderField"] . " " . (in_array(@$_REQUEST["orderDirection"], array("ASC", "DESC")) ? @$_REQUEST["orderDirection"] : "ASC");
}
//calculate the number of rows in this table
$rscount = mysql_query("SELECT count(*) AS cnt FROM `tb_avisos` $where");
$row_rscount = mysql_fetch_assoc($rscount);
$totalrows = (int) $row_rscount["cnt"];
//get the page number, and the page size
$pageNum = (int)@$_REQUEST["pageNum"];
$pageSize = (int)@$_REQUEST["pageSize"];
//calculate the start row for the limit clause
$start = $pageNum * $pageSize;
//construct the query, using the where and order condition
$query_recordset = "SELECT id,lugar,fecha,descripcion,localidad FROM `tb_avisos` $where $order";
//if we use pagination, add the limit clause
if ($pageNum >= 0 && $pageSize > 0) {
$query_recordset = sprintf("%s LIMIT %d, %d", $query_recordset, $start, $pageSize);
}
$recordset = mysql_query($query_recordset, $conn);
//if we have rows in the table, loop through them and fill the array
$toret = array();
while ($row_recordset = mysql_fetch_assoc($recordset)) {
array_push($toret, $row_recordset);
}
//create the standard response structure
$toret = array(
"data" => $toret,
"metadata" => array (
"totalRows" => $totalrows,
"pageNum" => $pageNum
)
);
return $toret;
}
/**
* constructs and executes a sql count query against the selected database
* can take the following parameters:
* $_REQUEST["filter"] - the filter value
* returns : an array of the form
* array (
* data => number_of_rows,
* metadata => array()
* )
*/
function rowCount() {
global $conn, $filter_field, $filter_type;
$where = "";
if (@$_REQUEST['filter'] != "") {
$where = "WHERE " . $filter_field . " LIKE " . GetSQLValueStringForSelect(@$_REQUEST["filter"], $filter_type);
}
//calculate the number of rows in this table
$rscount = mysql_query("SELECT count(*) AS cnt FROM `tb_avisos` $where");
$row_rscount = mysql_fetch_assoc($rscount);
$totalrows = (int) $row_rscount["cnt"];
//create the standard response structure
$toret = array(
"data" => $totalrows,
"metadata" => array()
);
return $toret;
}
/**
* constructs and executes a sql insert query against the selected database
* can take the following parameters:
* $_REQUEST["field_name"] - the list of fields which appear here will be used as values for insert.
* If a field does not appear, null will be used.
* returns : an array of the form
* array (
* data => array(
* "primary key" => primary_key_value,
* "field1" => "value1"
* ...
* ),
* metadata => array()
* )
*/
function insert() {
global $conn;
//build and execute the insert query
$query_insert = sprintf("INSERT INTO `tb_avisos` (lugar,fecha,descripcion,localidad) VALUES (%s,%s,%s,%s)" , GetSQLValueString($_REQUEST["lugar"], "text"), #
GetSQLValueString($_REQUEST["fecha"], "text"), #
GetSQLValueString($_REQUEST["descripcion"], "text"), #
GetSQLValueString($_REQUEST["localidad"], "text")#
);
$ok = mysql_query($query_insert);
if ($ok) {
// return the new entry, using the insert id
$toret = array(
"data" => array(
array(
"id" => mysql_insert_id(),
"lugar" => $_REQUEST["lugar"], #
"fecha" => $_REQUEST["fecha"], #
"descripcion" => $_REQUEST["descripcion"], #
"localidad" => $_REQUEST["localidad"]#
)
),
"metadata" => array()
);
} else {
// we had an error, return it
$toret = array(
"data" => array("error" => mysql_error()),
"metadata" => array()
);
}
return $toret;
}
/**
* constructs and executes a sql update query against the selected database
* can take the following parameters:
* $_REQUEST[primary_key] - thethe value of the primary key
* $_REQUEST[field_name] - the list of fields which appear here will be used as values for update.
* If a field does not appear, null will be used.
* returns : an array of the form
* array (
* data => array(
* "primary key" => primary_key_value,
* "field1" => "value1"
* ...
* ),
* metadata => array()
* )
*/
function update() {
global $conn;
// check to see if the record actually exists in the database
$query_recordset = sprintf("SELECT * FROM `tb_avisos` WHERE id = %s",
GetSQLValueString($_REQUEST["id"], "int")
);
$recordset = mysql_query($query_recordset, $conn);
$num_rows = mysql_num_rows($recordset);
if ($num_rows > 0) {
// build and execute the update query
$row_recordset = mysql_fetch_assoc($recordset);
$query_update = sprintf("UPDATE `tb_avisos` SET lugar = %s,fecha = %s,descripcion = %s,localidad = %s WHERE id = %s",
GetSQLValueString($_REQUEST["lugar"], "text"),
GetSQLValueString($_REQUEST["fecha"], "text"),
GetSQLValueString($_REQUEST["descripcion"], "text"),
GetSQLValueString($_REQUEST["localidad"], "text"),
GetSQLValueString($row_recordset["id"], "int")
);
$ok = mysql_query($query_update);
if ($ok) {
// return the updated entry
$toret = array(
"data" => array(
array(
"id" => $row_recordset["id"],
"lugar" => $_REQUEST["lugar"], #
"fecha" => $_REQUEST["fecha"], #
"descripcion" => $_REQUEST["descripcion"], #
"localidad" => $_REQUEST["localidad"]#
)
),
"metadata" => array()
);
} else {
// an update error, return it
$toret = array(
"data" => array("error" => mysql_error()),
"metadata" => array()
);
}
} else {
$toret = array(
"data" => array("error" => "No row found"),
"metadata" => array()
);
}
return $toret;
}
/**
* constructs and executes a sql update query against the selected database
* can take the following parameters:
* $_REQUEST[primary_key] - thethe value of the primary key
* returns : an array of the form
* array (
* data => deleted_row_primary_key_value,
* metadata => array()
* )
*/
function delete() {
global $conn;
// check to see if the record actually exists in the database
$query_recordset = sprintf("SELECT * FROM `tb_avisos` WHERE id = %s",
GetSQLValueString($_REQUEST["id"], "int")
);
$recordset = mysql_query($query_recordset, $conn);
$num_rows = mysql_num_rows($recordset);
if ($num_rows > 0) {
$row_recordset = mysql_fetch_assoc($recordset);
$query_delete = sprintf("DELETE FROM `tb_avisos` WHERE id = %s",
GetSQLValueString($row_recordset["id"], "int")
);
$ok = mysql_query($query_delete);
if ($ok) {
// delete went through ok, return OK
$toret = array(
"data" => $row_recordset["id"],
"metadata" => array()
);
} else {
$toret = array(
"data" => array("error" => mysql_error()),
"metadata" => array()
);
}
} else {
// no row found, return an error
$toret = array(
"data" => array("error" => "No row found"),
"metadata" => array()
);
}
return $toret;
}
/**
* we use this as an error response, if we do not receive a correct method
*
*/
$ret = array(
"data" => array("error" => "No operation"),
"metadata" => array()
);
/**
* check for the database connection
*
*
*/
if ($conn === false) {
$ret = array(
"data" => array("error" => "database connection error, please check your settings !"),
"metadata" => array()
);
} else {
mysql_select_db($database_conn, $conn);
/**
* simple dispatcher. The $_REQUEST["method"] parameter selects the operation to execute.
* must be one of the values findAll, insert, update, delete, Count
*/
// execute the necessary function, according to the operation code in the post variables
switch (@$_REQUEST["method"]) {
case "FindAll":
$ret = findAll();
break;
case "Insert":
$ret = insert();
break;
case "Update":
$ret = update();
break;
case "Delete":
$ret = delete();
break;
case "Count":
$ret = rowCount();
break;
}
}
$serializer = new XmlSerializer();
echo $serializer->serialize($ret);
die();
?>*******************************************************************************************************
mi correo [email protected]
Gracias
----------------
Listening to: Hillsong United - Solo Cristo
via FoxyTunes
----------------
Listening to: Hillsong United - Solo Cristo
via FoxyTunes
