FAQ
BUenas a todos listeros, una consulta tengo problemas cuando deseo pasar
arreglos mediante $_POST a php

tengo lo siguiente en una pagina:

pagina1.html

<html>

<script language="JavaScript" type="text/javascript">
<!--
//Funcion para habilitar o deshabilitar las cajas de texto
function habilita(form,i){
if (form.registro[i].checked == true){
form.desde[i].disabled=false;
form.hasta[i].disabled=false;
form.desde[i].focus();
} else {
form.desde[i].disabled=true;
form.hasta[i].disabled=true;
form.desde[i].value='';
form.hasta[i].value='';
}
}
//->
</script>
<body>
<form action=muestra_datos.php method="POST">

<table>
<tr><td></td><td class="titfrm" size="10">Desde</td><td
class="titfrm" size="10">Hasta</td></tr>
<?
for ($i=0;$i<3;$i++) {

?>
<tr>
<td>
<input type="checkbox" name="registro" value="<?echo $i; ?>"
onclick="habilita(this.form,<?echo $i;?>)">
Libro<?echo $i;?>
</td>

<td><input align="right" type="text" class="inputfrm"
name="desde" size="10" maxlength="5" disabled="true"></td>
<td><input align="right" type="text" class="inputfrm"
name="hasta" size="10" maxlength="5" disabled="true"></td>
</tr>

<? } ?>
<tr><TD><input type="submit"></TD></tr>
</table>
</form>
</body>
</html>

Ahora cuando llamo a la pagina muestra_datos tengo este codigo:

<?php

$check=sizeof($_POST['registro']);

echo $check;

for ($i=0;$i<$check;$i++){

echo $_POST['registro'][$i];
echo " - ".$_POST['desde'][$i]." <br>";
echo " - ".$_POST['hasta'][$i]." <br>";

?>


entonces si ejecuto asi como estan las dos paginas
el $check asume que el tamaño del $_POST['registro'] es 1 nada mas

pero si en la primera pagina cambio el name del checkbox por name=
registro[], entonces ahi si el $check me dice
la cantidad de checkbox que he marcado y si marco 2 por ejemplo me
devuelve el valor 2, pero ahora el problema es con
javascript, por defecto las cajas de texto estan deshabilitadas y
mediante una funcion las habilito, pero al hacer este cambio
de nombre en la caja de texto el java script ya no funciona y cuando doy
check en algun checkbox este no me habilita las
cajas de texto, lo que deseo saber es como le digo a php que el checkbox
es un arreglo pero deseo conservar el name sin los corcçhetes
es decir <input type=checkbox name="registro"> y no usar <input
type=checkbox name="registro[]">

Agradesco de antemano su ayuda
Atte
Ricardo Vila

Search Discussions

  • Grover M. Campos A. at Nov 10, 2005 at 9:03 pm
    Hola Ricardo:

    Dos cosas:
    1.- Si vas a enviar múltiples valores necesariamente debes ponerle al
    control como nombre un nombre junto a los corchetes.
    2.- Para que puedas habilitar o deshabilitar pues no podrías usar el
    nombre del control, deberías hacerlo con el id

    más o menos así

    <input type="checkbox" name="registro" id="cbxRegistro<? echo $i; ?>"
    onclick="habilita(this.form,<?echo $i;?>">

    luego en tu javascript:

    function habilita(form,i){
    var registro = document.getElementById('cbxRegistro'+i);
    if (registro.checked == true){
    form.desde[i].disabled=false;
    form.hasta[i].disabled=false;
    form.desde[i].focus();
    } else {
    form.desde[i].disabled=true;
    form.hasta[i].disabled=true;
    form.desde[i].value='';
    form.hasta[i].value='';
    }
    }

    Espero te ayude.

    --
    Grover Campos <gmanuel11@yahoo.es>
  • Hari Seldon at Nov 10, 2005 at 11:47 pm
    Hola, lista:

    Por motivos profesionales no estoy demasiado "activo" últimamente,
    pero la verdad es que estoy tremendamente liado y con mucho trabajo...

    Y en el trabajo precisamente, pues ha surgido una cosa un tanto..
    "Curiosa"; no me había pasado nunca antes.

    Tengo un configurador on-line, la idea es que se puedan configurar
    todos los parámetros de un toldo a través de internet, para un B2C/B2B; la
    cuestión es que voy guardando los diferentes parámetros en variables de
    sesión, pero al llegar al cuarto paso, me pierde buena parte de los
    valores.. (No pierde todos, sino parte).

    Lo he probado en un linux -la máquina de desarrollo- y en un windows
    -la máquina de producción-, y me da exactamente el mismo error... Y uno
    tiene php 4 y el otro php 5.. Con lo cuál creo que descarto problemas de
    configuración y demás.

    Podeis verlo "funcionando" aquí:

    http://www.toldos.net/previo/config_step1.php


    Solamente está activa la selección por modelo, escoger el modelo que
    querais, en tipo de accionamiento cualquiera menos motor, y de frente un
    valor superior a 2000 ó 3000 mm (depende del modelo y del accionamiento).

    También lanzo peticiones javascript para llenar los select
    dinámicamente, y utilizo lógicamente esas variables de sesión... Aunque
    solamente las leo, con lo cuál no debería de haber problemas....

    Lógicamente, estoy buscando una forma alternativa de solucionarlo,
    que es ir pasando por POST en inputs ocultos todos los valores necesarios..
    Aunque me extraña que las sesiones se "vayan" como se van....

    Para que os hagais una idea, os pongo el código de las sesiones en
    cada paso (el de los javascript ya os digo que es solamente lectura):

    config_step1.php:

    <?php
    include_once(".incphp/c.php");


    // MAGEMENT SESSIONS:
    session_start();

    // FIRST DESTROY ALL OLD SESSION VARS:
    //session_destroy();


    // GENERAL SESSION VARS OF CONFIGURATION:
    $_SESSION["sSessionId"] = session_id();
    $_SESSION["sToldoConfigurationName"] = "";

    // SESSIONS VARS: STEPS:
    $_SESSION["aConfigSteps"] = array(0, 0, 0, 0, 0);
    $_SESSION["aConfigSteps"][0] = 1;


    // SESSION VARS: IN FORM OF ARRAYS: CONFIGURATION'S TOLDO:
    // aToldoModel(iIdModel, sModelName, sModelThumbnail, $iNumBrazos,
    bBambalinaPossible)
    // aToldoMeasures(iFront, iOutput, iHeight) (Frente, Salida, Alto) -mm-
    // aToldoAccionamiento(iIdAccio, sAccioName, sAccioThumbnail)
    // aToldoLacadoColour(iIdColour, sColourName, sColourThumbnail)
    // aToldoTela(iIdTela, sTelaName, sTelaThumbnail)
    // aToldoBambalina(bHasBambalina, iBambalinaTypeId, sBambalinaTypeName,
    sBambalinaTypeThumbnail, iBambalinaHeight)
    // aToldoBambalinaTela(iIdTela, sTelaName, sTelaThumbnail, iIdRemateColour,
    sRemateName, sRemateThumbnail)
    // aToldoFijacion(iIdFijacion, sFijacionName, sFijacionThumbnail)
    $_SESSION["aToldoModel"] = array(0, "", "", 0, false);
    // STEP 1
    $_SESSION["aToldoMeasures"] = array(0, 0, 0);
    // STEP 1 + STEP 5
    $_SESSION["aToldoAccionamiento"] = array(0, "", ""); //
    STEP 1
    $_SESSION["aToldoLacadoColour"] = array(0, "", "");
    // STEP 2
    $_SESSION["aToldoTela"] = array(0, "", "");
    // STEP 3
    $_SESSION["aToldoBambalina"] = array(false, 0, "", "", 0); //
    STEP 4
    $_SESSION["aToldoBambalinaTela"] = array(0, "", "", 0, "", ""); // STEP 4
    $_SESSION["aToldoFijacion"] = array(0, "", "");
    // STEP 5

    session_write_close();

    ?>


    config_step2.php:
    <?php
    include_once(".incphp/c.php");
    include_once(".incphp/test_step1_2.php");
    // MAGEMENT SESSIONS:
    session_start();
    // FIRST CHECK SESSION_ID AND PASSED FOR FIRST STEP
    if (($_SESSION["sSessionId"] != session_id()) ||
    (!isset($_POST["INPUTcurrentStep"])) || ($_POST["INPUTcurrentStep"] != "1"))
    {
    header('Location: ./config_step1.php');
    die();
    }
    // SE PONE LA VARIABLE DE PASOS CON EL SEGUNDO COMO ACTIVO:
    $_SESSION["aConfigSteps"][1] = 1;
    // MANDATORY VARS in POST:
    $bErrorVarsPost = false;
    if (!isset($_POST["INPUT_opt_Config"])) {
    $bErrorVarsPost = true;
    }
    $sConfigType = (string) $_POST["INPUT_opt_Config"];
    if ($sConfigType == "M") {
    if ((!isset($_POST["SELECTmodelosMod"]))
    (!isset($_POST["SELECTaccionamientoMod"])) ||
    (!isset($_POST["INPUTfrenteMod"]))
    (!isset($_POST["INPUTsalidaMod"])
    && !isset($_POST["SELECTsalidaMod"]))) {
    $bErrorVarsPost = true;
    } else {
    $iIdModelo = (int) $_POST["SELECTmodelosMod"];
    $iIdAccionamiento = (int) $_POST["SELECTaccionamientoMod"];
    $iFrente = (int) $_POST["INPUTfrenteMod"];
    if (isset($_POST["INPUTsalidaMod"])) {
    $iSalida = (int) $_POST["INPUTsalidaMod"];
    } else {
    $iSalida = (int) $_POST["SELECTsalidaMod"];
    }
    }
    } else if ($sConfigType == "F") {

    } else {
    $bErrorVarsPost = true;
    }
    if (!$bErrorVarsPost) {
    //QUERYS DE VARIABLES:
    // Database connection:
    // we use PEAR DB
    require_once('DB.php');
    $sDSN = DSN;
    $oDBConn = DB::connect($sDSN, true);
    if (DB::isError($oDBConn))
    {
    echo 'Error de Base de Datos: por favor, informe al
    administrador: <a href="mailto:webmaster@toldos.net">Administrador</a><br
    />';
    $oDBConn->disconnect();
    die ($oDBConn->getMessage());
    }
    $sDBname = DATABASENAME;
    $sQuerySQL = "SELECT
    tbl_Modelos.Id AS IdModelo,
    tbl_Modelos.Modelo,
    tbl_Modelos.Num_Brazos_por_defecto,
    tbl_Modelos.Bambalina
    FROM
    $sDBname.tbl_Modelos
    WHERE
    (tbl_Modelos.Activo = 1)
    AND
    (tbl_Modelos.Id = $iIdModelo)";
    $oResultSet = $oDBConn->query($sQuerySQL);
    if (DB::isError($oResultSet)) {
    echo 'Error de Base de Datos: por favor, informe al
    administrador: <a href="mailto:webmaster@toldos.net">Administrador</a><br
    />';
    $oDBConn->disconnect();
    die($oResultSet->getMessage());
    }
    $iNumRows = $oResultSet->numRows();
    if ($iNumRows == 1) {
    $aRow = $oResultSet->fetchRow(DB_FETCHMODE_ASSOC);
    $iIdModel = (int) $aRow["IdModelo"];
    $sModeloName = (string) $aRow["Modelo"];
    $iNumBrazosByTheModelo = (int)
    $aRow["Num_Brazos_por_defecto"];
    $bBambalinaPosible = (bool) $aRow["Bambalina"];
    } else {
    $bErrorVarsPost = true;
    }
    $sQuerySQL = "SELECT
    tbl_Accionamiento.Id,
    tbl_Accionamiento.Nombre_Accionamiento
    FROM
    $sDBname.tbl_Accionamiento
    WHERE
    (tbl_Accionamiento.Id = $iIdAccionamiento)";
    $oResultSet = $oDBConn->query($sQuerySQL);
    if (DB::isError($oResultSet)) {
    echo 'Error de Base de Datos: por favor, informe al
    administrador: <a href="mailto:webmaster@toldos.net">Administrador</a><br
    />';
    $oDBConn->disconnect();
    die($oResultSet->getMessage());
    }
    $iNumRows = $oResultSet->numRows();
    if ($iNumRows == 1) {
    $aRow = $oResultSet->fetchRow(DB_FETCHMODE_ASSOC);
    $iIdAccio = (int) $aRow["Id"];
    $sTipoAccionamientoName = (string)
    $aRow["Nombre_Accionamiento"];
    } else {
    $bErrorVarsPost = true;
    }
    if ($iNumBrazosByTheModelo != 0) {
    $aResult = testModelAccionFrenSal($iIdModelo,
    $iIdAccionamiento, $iFrente, $iSalida, $sConfigType, $oDBConn);
    if (!$aResult[0]) {
    $bErrorVarsPost = true;
    } else {
    $iNumBrazos = $aResult[1];
    }
    }
    }
    $oDBConn->disconnect();
    if ($bErrorVarsPost) {
    header('Location: ./config_step1.php?errorStep_1_2');
    die("error en vars en posteo");
    }
    // asignamos variables de session:
    // aToldoModel(iIdModel, sModelName, sModelThumbnail, $iNumBrazos,
    bBambalinaPossible)
    $_SESSION["aToldoModel"][0] = $iIdModel;
    $_SESSION["aToldoModel"][1] = $sModeloName;
    $_SESSION["aToldoModel"][2] = "";
    $_SESSION["aToldoModel"][3] = $iNumBrazos;
    $_SESSION["aToldoModel"][4] = $bBambalinaPosible;
    // aToldoMeasures(iFront, iOutput, iHeight) (Frente, Salida, Alto) -mm-
    $_SESSION["aToldoMeasures"][0] = $iFrente;
    $_SESSION["aToldoMeasures"][1] = $iSalida;
    // aToldoAccionamiento(iIdAccio, sAccioName, sAccioThumbnail)
    $_SESSION["aToldoAccionamiento"][0] = $iIdAccio;
    $_SESSION["aToldoAccionamiento"][1] = $sTipoAccionamientoName;
    $_SESSION["aToldoAccionamiento"][2] = "";
    session_write_close();

    ?>

    config_step3.php:


    <?php
    include_once(".incphp/c.php");
    // MAGEMENT SESSIONS:
    session_start();
    // FIRST CHECK SESSION_ID AND PASSED FOR SECOND STEP
    if (($_SESSION["sSessionId"] != session_id()) ||
    (!isset($_POST["INPUTcurrentStep"])) || ($_POST["INPUTcurrentStep"] != "2"))
    {
    header('Location: ./config_step1.php');
    die();
    }
    // SE PONE LA VARIABLE DE PASOS CON EL TERCERO COMO ACTIVO:
    $_SESSION["aConfigSteps"][2] = 1;
    // MANDATORY VARS in POST:
    $bErrorVarsPost = false;
    // only need the color id...
    if (!isset($_POST["SELECTcolor"])) {
    $bErrorVarsPost = true;
    }
    if (!$bErrorVarsPost) {
    $iIdColorLacado = (int) $_POST["SELECTcolor"];
    //QUERYS DE VARIABLES:
    // Database connection:
    // we use PEAR DB
    require_once('DB.php');
    $sDSN = DSN;
    $oDBConn = DB::connect($sDSN, true);
    if (DB::isError($oDBConn))
    {
    echo 'Error de Base de Datos: por favor, informe al
    administrador: <a href="mailto:webmaster@toldos.net">Administrador</a><br
    />';
    $oDBConn->disconnect();
    die ($oDBConn->getMessage());
    }
    $sDBname = DATABASENAME;
    $sQuerySQL = "SELECT
    tbl_tipo_lacado_color_lacado.Color_Lacado,
    tbl_tipo_lacado_color_lacado.Thumbnail,
    tbl_tipo_lacado_color_lacado.Id
    FROM
    $sDBname.tbl_Modelos
    INNER JOIN
    $sDBname.tbl_Relacion_Tipo_Lacado_Modelo
    ON

    ($sDBname.tbl_Modelos.Modelo=$sDBname.tbl_Relacion_Tipo_Lacado_Modelo.Modelo
    )
    INNER JOIN
    $sDBname.tbl_Tipo_Lacado
    ON

    ($sDBname.tbl_Tipo_Lacado.Id=$sDBname.tbl_Relacion_Tipo_Lacado_Modelo.ID_Tip
    o_Lacado)
    INNER JOIN
    $sDBname.tbl_tipo_lacado_color_lacado
    ON

    ($sDBname.tbl_Tipo_Lacado.Id=$sDBname.tbl_tipo_lacado_color_lacado.IdTipoLac
    ado)
    WHERE
    (tbl_Modelos.Activo = 1) AND
    (tbl_tipo_lacado_color_lacado.Id = $iIdColorLacado)";
    $oResultSet = $oDBConn->query($sQuerySQL);
    if (DB::isError($oResultSet)) {
    echo 'Error de Base de Datos: por favor, informe al
    administrador: <a href="mailto:webmaster@toldos.net">Administrador</a><br
    />';
    $oDBConn->disconnect();
    die($oResultSet->getMessage());
    }
    $iNumRows = $oResultSet->numRows();
    if ($iNumRows >= 1) {
    $aRow = $oResultSet->fetchRow(DB_FETCHMODE_ASSOC);
    $sColorLacadoName = (string) $aRow["Color_Lacado"];
    $iColorLacadoId = (int) $aRow["Id"];
    $sColorLacadoThumbnail = DIR_COLOR_LACADO_THUMBS;
    $sColorLacadoThumbnail .= (string) $aRow["Thumbnail"];
    } else {
    $bErrorVarsPost = true;
    }
    $oDBConn->disconnect();
    }
    if ($bErrorVarsPost) {
    header('Location: ./config_step1.php');
    die();
    }
    // SESSIONS VARS: STEPS:
    // aToldoLacadoColour(iIdColour, sColourName, sColourThumbnail)
    $_SESSION["aToldoLacadoColour"] = array($iColorLacadoId, $sColorLacadoName,
    $sColorLacadoThumbnail);
    session_write_close();

    ?>



    config_step4_prueba.php:


    <?php
    // Debug:
    // Debug:
    session_start();
    if (($_SESSION["sSessionId"] != session_id()) ||
    (!isset($_POST["INPUTcurrentStep"])) || ($_POST["INPUTcurrentStep"] != "3"))
    {
    echo "petada!!!!!!!!!!!!<br />";

    }
    if ($_SESSION["aToldoModel"][0] <= 0){
    //echo $_COOKIE;
    foreach($_COOKIE as $sVar => $sValue) {
    echo "$sVar: $sValue <br />";
    }
    }
    $iLenMatrix = count($_SESSION["aConfigSteps"]);
    for ($i = 0; $i < $iLenMatrix; $i++) {
    echo "_SESSION[\"aConfigSteps\"][".$i."]";
    echo $_SESSION["aConfigSteps"][$i];
    echo "<br />";
    }
    $iLenMatrix = count($_SESSION["aToldoModel"]);
    for ($i = 0; $i < $iLenMatrix; $i++) {
    echo "_SESSION[\"aToldoModel\"][".$i."]";
    echo $_SESSION["aToldoModel"][$i];
    echo "<br />";
    }
    ?>
  • Andres Ferrando at Nov 11, 2005 at 4:12 pm
    Hari,

    No llegué a ver todo el código, pero si puedo decirte que usé mucho
    sesiones, durante mucho más que cuatro páginas, y con volúmnes de datos
    muy grandes, sin problemas jamás. Por lo que no descartaría problemas de
    configuración y/o código. Si mal no recuerdo si tienen un límite de
    memoria, pero bastante alto ... creo que después de los 64 MB aprox
    teníamos problemas.
    Tené en cuenta que los límites - cuando estás con temas así - se
    empiezan a "sumar" y complican las cosas (ej, tarda más, y te puede dar
    un timeout, etc), tené también en cuenta que esos datos son
    "serializados", etc.

    Entre otros, podrías ver:

    Que uses "files" para guardar las sesiones session.save_handler
    Qué serializer usas
    Límites generales de memoria, tiempo, etc.

    saludos!

    Hari Seldon wrote:
    Hola, lista:

    Por motivos profesionales no estoy demasiado "activo" últimamente,
    pero la verdad es que estoy tremendamente liado y con mucho trabajo...

    Y en el trabajo precisamente, pues ha surgido una cosa un tanto..
    "Curiosa"; no me había pasado nunca antes.

    Tengo un configurador on-line, la idea es que se puedan configurar
    todos los parámetros de un toldo a través de internet, para un B2C/B2B; la
    cuestión es que voy guardando los diferentes parámetros en variables de
    sesión, pero al llegar al cuarto paso, me pierde buena parte de los
    valores.. (No pierde todos, sino parte).

    Lo he probado en un linux -la máquina de desarrollo- y en un windows
    -la máquina de producción-, y me da exactamente el mismo error... Y uno
    tiene php 4 y el otro php 5.. Con lo cuál creo que descarto problemas de
    configuración y demás.

    Podeis verlo "funcionando" aquí:

    http://www.toldos.net/previo/config_step1.php


    Solamente está activa la selección por modelo, escoger el modelo que
    querais, en tipo de accionamiento cualquiera menos motor, y de frente un
    valor superior a 2000 ó 3000 mm (depende del modelo y del accionamiento).

    También lanzo peticiones javascript para llenar los select
    dinámicamente, y utilizo lógicamente esas variables de sesión... Aunque
    solamente las leo, con lo cuál no debería de haber problemas....

    Lógicamente, estoy buscando una forma alternativa de solucionarlo,
    que es ir pasando por POST en inputs ocultos todos los valores necesarios..
    Aunque me extraña que las sesiones se "vayan" como se van....

    Para que os hagais una idea, os pongo el código de las sesiones en
    cada paso (el de los javascript ya os digo que es solamente lectura):

    config_step1.php:

    <?php
    include_once(".incphp/c.php");


    // MAGEMENT SESSIONS:
    session_start();

    // FIRST DESTROY ALL OLD SESSION VARS:
    //session_destroy();


    // GENERAL SESSION VARS OF CONFIGURATION:
    $_SESSION["sSessionId"] = session_id();
    $_SESSION["sToldoConfigurationName"] = "";

    // SESSIONS VARS: STEPS:
    $_SESSION["aConfigSteps"] = array(0, 0, 0, 0, 0);
    $_SESSION["aConfigSteps"][0] = 1;


    // SESSION VARS: IN FORM OF ARRAYS: CONFIGURATION'S TOLDO:
    // aToldoModel(iIdModel, sModelName, sModelThumbnail, $iNumBrazos,
    bBambalinaPossible)
    // aToldoMeasures(iFront, iOutput, iHeight) (Frente, Salida, Alto) -mm-
    // aToldoAccionamiento(iIdAccio, sAccioName, sAccioThumbnail)
    // aToldoLacadoColour(iIdColour, sColourName, sColourThumbnail)
    // aToldoTela(iIdTela, sTelaName, sTelaThumbnail)
    // aToldoBambalina(bHasBambalina, iBambalinaTypeId, sBambalinaTypeName,
    sBambalinaTypeThumbnail, iBambalinaHeight)
    // aToldoBambalinaTela(iIdTela, sTelaName, sTelaThumbnail, iIdRemateColour,
    sRemateName, sRemateThumbnail)
    // aToldoFijacion(iIdFijacion, sFijacionName, sFijacionThumbnail)
    $_SESSION["aToldoModel"] = array(0, "", "", 0, false);
    // STEP 1
    $_SESSION["aToldoMeasures"] = array(0, 0, 0);
    // STEP 1 + STEP 5
    $_SESSION["aToldoAccionamiento"] = array(0, "", ""); //
    STEP 1
    $_SESSION["aToldoLacadoColour"] = array(0, "", "");
    // STEP 2
    $_SESSION["aToldoTela"] = array(0, "", "");
    // STEP 3
    $_SESSION["aToldoBambalina"] = array(false, 0, "", "", 0); //
    STEP 4
    $_SESSION["aToldoBambalinaTela"] = array(0, "", "", 0, "", ""); // STEP 4
    $_SESSION["aToldoFijacion"] = array(0, "", "");
    // STEP 5

    session_write_close();

    ?>


    config_step2.php:
    <?php
    include_once(".incphp/c.php");
    include_once(".incphp/test_step1_2.php");
    // MAGEMENT SESSIONS:
    session_start();
    // FIRST CHECK SESSION_ID AND PASSED FOR FIRST STEP
    if (($_SESSION["sSessionId"] != session_id()) ||
    (!isset($_POST["INPUTcurrentStep"])) || ($_POST["INPUTcurrentStep"] != "1"))
    {
    header('Location: ./config_step1.php');
    die();
    }
    // SE PONE LA VARIABLE DE PASOS CON EL SEGUNDO COMO ACTIVO:
    $_SESSION["aConfigSteps"][1] = 1;
    // MANDATORY VARS in POST:
    $bErrorVarsPost = false;
    if (!isset($_POST["INPUT_opt_Config"])) {
    $bErrorVarsPost = true;
    }
    $sConfigType = (string) $_POST["INPUT_opt_Config"];
    if ($sConfigType == "M") {
    if ((!isset($_POST["SELECTmodelosMod"]))
    (!isset($_POST["SELECTaccionamientoMod"])) ||
    (!isset($_POST["INPUTfrenteMod"]))
    (!isset($_POST["INPUTsalidaMod"])
    && !isset($_POST["SELECTsalidaMod"]))) {
    $bErrorVarsPost = true;
    } else {
    $iIdModelo = (int) $_POST["SELECTmodelosMod"];
    $iIdAccionamiento = (int) $_POST["SELECTaccionamientoMod"];
    $iFrente = (int) $_POST["INPUTfrenteMod"];
    if (isset($_POST["INPUTsalidaMod"])) {
    $iSalida = (int) $_POST["INPUTsalidaMod"];
    } else {
    $iSalida = (int) $_POST["SELECTsalidaMod"];
    }
    }
    } else if ($sConfigType == "F") {

    } else {
    $bErrorVarsPost = true;
    }
    if (!$bErrorVarsPost) {
    //QUERYS DE VARIABLES:
    // Database connection:
    // we use PEAR DB
    require_once('DB.php');
    $sDSN = DSN;
    $oDBConn = DB::connect($sDSN, true);
    if (DB::isError($oDBConn))
    {
    echo 'Error de Base de Datos: por favor, informe al
    administrador: <a href="mailto:webmaster@toldos.net">Administrador</a><br
    />';
    $oDBConn->disconnect();
    die ($oDBConn->getMessage());
    }
    $sDBname = DATABASENAME;
    $sQuerySQL = "SELECT
    tbl_Modelos.Id AS IdModelo,
    tbl_Modelos.Modelo,
    tbl_Modelos.Num_Brazos_por_defecto,
    tbl_Modelos.Bambalina
    FROM
    $sDBname.tbl_Modelos
    WHERE
    (tbl_Modelos.Activo = 1)
    AND
    (tbl_Modelos.Id = $iIdModelo)";
    $oResultSet = $oDBConn->query($sQuerySQL);
    if (DB::isError($oResultSet)) {
    echo 'Error de Base de Datos: por favor, informe al
    administrador: <a href="mailto:webmaster@toldos.net">Administrador</a><br
    />';
    $oDBConn->disconnect();
    die($oResultSet->getMessage());
    }
    $iNumRows = $oResultSet->numRows();
    if ($iNumRows == 1) {
    $aRow = $oResultSet->fetchRow(DB_FETCHMODE_ASSOC);
    $iIdModel = (int) $aRow["IdModelo"];
    $sModeloName = (string) $aRow["Modelo"];
    $iNumBrazosByTheModelo = (int)
    $aRow["Num_Brazos_por_defecto"];
    $bBambalinaPosible = (bool) $aRow["Bambalina"];
    } else {
    $bErrorVarsPost = true;
    }
    $sQuerySQL = "SELECT
    tbl_Accionamiento.Id,
    tbl_Accionamiento.Nombre_Accionamiento
    FROM
    $sDBname.tbl_Accionamiento
    WHERE
    (tbl_Accionamiento.Id = $iIdAccionamiento)";
    $oResultSet = $oDBConn->query($sQuerySQL);
    if (DB::isError($oResultSet)) {
    echo 'Error de Base de Datos: por favor, informe al
    administrador: <a href="mailto:webmaster@toldos.net">Administrador</a><br
    />';
    $oDBConn->disconnect();
    die($oResultSet->getMessage());
    }
    $iNumRows = $oResultSet->numRows();
    if ($iNumRows == 1) {
    $aRow = $oResultSet->fetchRow(DB_FETCHMODE_ASSOC);
    $iIdAccio = (int) $aRow["Id"];
    $sTipoAccionamientoName = (string)
    $aRow["Nombre_Accionamiento"];
    } else {
    $bErrorVarsPost = true;
    }
    if ($iNumBrazosByTheModelo != 0) {
    $aResult = testModelAccionFrenSal($iIdModelo,
    $iIdAccionamiento, $iFrente, $iSalida, $sConfigType, $oDBConn);
    if (!$aResult[0]) {
    $bErrorVarsPost = true;
    } else {
    $iNumBrazos = $aResult[1];
    }
    }
    }
    $oDBConn->disconnect();
    if ($bErrorVarsPost) {
    header('Location: ./config_step1.php?errorStep_1_2');
    die("error en vars en posteo");
    }
    // asignamos variables de session:
    // aToldoModel(iIdModel, sModelName, sModelThumbnail, $iNumBrazos,
    bBambalinaPossible)
    $_SESSION["aToldoModel"][0] = $iIdModel;
    $_SESSION["aToldoModel"][1] = $sModeloName;
    $_SESSION["aToldoModel"][2] = "";
    $_SESSION["aToldoModel"][3] = $iNumBrazos;
    $_SESSION["aToldoModel"][4] = $bBambalinaPosible;
    // aToldoMeasures(iFront, iOutput, iHeight) (Frente, Salida, Alto) -mm-
    $_SESSION["aToldoMeasures"][0] = $iFrente;
    $_SESSION["aToldoMeasures"][1] = $iSalida;
    // aToldoAccionamiento(iIdAccio, sAccioName, sAccioThumbnail)
    $_SESSION["aToldoAccionamiento"][0] = $iIdAccio;
    $_SESSION["aToldoAccionamiento"][1] = $sTipoAccionamientoName;
    $_SESSION["aToldoAccionamiento"][2] = "";
    session_write_close();

    ?>

    config_step3.php:


    <?php
    include_once(".incphp/c.php");
    // MAGEMENT SESSIONS:
    session_start();
    // FIRST CHECK SESSION_ID AND PASSED FOR SECOND STEP
    if (($_SESSION["sSessionId"] != session_id()) ||
    (!isset($_POST["INPUTcurrentStep"])) || ($_POST["INPUTcurrentStep"] != "2"))
    {
    header('Location: ./config_step1.php');
    die();
    }
    // SE PONE LA VARIABLE DE PASOS CON EL TERCERO COMO ACTIVO:
    $_SESSION["aConfigSteps"][2] = 1;
    // MANDATORY VARS in POST:
    $bErrorVarsPost = false;
    // only need the color id...
    if (!isset($_POST["SELECTcolor"])) {
    $bErrorVarsPost = true;
    }
    if (!$bErrorVarsPost) {
    $iIdColorLacado = (int) $_POST["SELECTcolor"];
    //QUERYS DE VARIABLES:
    // Database connection:
    // we use PEAR DB
    require_once('DB.php');
    $sDSN = DSN;
    $oDBConn = DB::connect($sDSN, true);
    if (DB::isError($oDBConn))
    {
    echo 'Error de Base de Datos: por favor, informe al
    administrador: <a href="mailto:webmaster@toldos.net">Administrador</a><br
    />';
    $oDBConn->disconnect();
    die ($oDBConn->getMessage());
    }
    $sDBname = DATABASENAME;
    $sQuerySQL = "SELECT
    tbl_tipo_lacado_color_lacado.Color_Lacado,
    tbl_tipo_lacado_color_lacado.Thumbnail,
    tbl_tipo_lacado_color_lacado.Id
    FROM
    $sDBname.tbl_Modelos
    INNER JOIN
    $sDBname.tbl_Relacion_Tipo_Lacado_Modelo
    ON

    ($sDBname.tbl_Modelos.Modelo=$sDBname.tbl_Relacion_Tipo_Lacado_Modelo.Modelo
    )
    INNER JOIN
    $sDBname.tbl_Tipo_Lacado
    ON

    ($sDBname.tbl_Tipo_Lacado.Id=$sDBname.tbl_Relacion_Tipo_Lacado_Modelo.ID_Tip
    o_Lacado)
    INNER JOIN
    $sDBname.tbl_tipo_lacado_color_lacado
    ON

    ($sDBname.tbl_Tipo_Lacado.Id=$sDBname.tbl_tipo_lacado_color_lacado.IdTipoLac
    ado)
    WHERE
    (tbl_Modelos.Activo = 1) AND
    (tbl_tipo_lacado_color_lacado.Id = $iIdColorLacado)";
    $oResultSet = $oDBConn->query($sQuerySQL);
    if (DB::isError($oResultSet)) {
    echo 'Error de Base de Datos: por favor, informe al
    administrador: <a href="mailto:webmaster@toldos.net">Administrador</a><br
    />';
    $oDBConn->disconnect();
    die($oResultSet->getMessage());
    }
    $iNumRows = $oResultSet->numRows();
    if ($iNumRows >= 1) {
    $aRow = $oResultSet->fetchRow(DB_FETCHMODE_ASSOC);
    $sColorLacadoName = (string) $aRow["Color_Lacado"];
    $iColorLacadoId = (int) $aRow["Id"];
    $sColorLacadoThumbnail = DIR_COLOR_LACADO_THUMBS;
    $sColorLacadoThumbnail .= (string) $aRow["Thumbnail"];
    } else {
    $bErrorVarsPost = true;
    }
    $oDBConn->disconnect();
    }
    if ($bErrorVarsPost) {
    header('Location: ./config_step1.php');
    die();
    }
    // SESSIONS VARS: STEPS:
    // aToldoLacadoColour(iIdColour, sColourName, sColourThumbnail)
    $_SESSION["aToldoLacadoColour"] = array($iColorLacadoId, $sColorLacadoName,
    $sColorLacadoThumbnail);
    session_write_close();

    ?>



    config_step4_prueba.php:


    <?php
    // Debug:
    // Debug:
    session_start();
    if (($_SESSION["sSessionId"] != session_id()) ||
    (!isset($_POST["INPUTcurrentStep"])) || ($_POST["INPUTcurrentStep"] != "3"))
    {
    echo "petada!!!!!!!!!!!!<br />";

    }
    if ($_SESSION["aToldoModel"][0] <= 0){
    //echo $_COOKIE;
    foreach($_COOKIE as $sVar => $sValue) {
    echo "$sVar: $sValue <br />";
    }
    }
    $iLenMatrix = count($_SESSION["aConfigSteps"]);
    for ($i = 0; $i < $iLenMatrix; $i++) {
    echo "_SESSION[\"aConfigSteps\"][".$i."]";
    echo $_SESSION["aConfigSteps"][$i];
    echo "<br />";
    }
    $iLenMatrix = count($_SESSION["aToldoModel"]);
    for ($i = 0; $i < $iLenMatrix; $i++) {
    echo "_SESSION[\"aToldoModel\"][".$i."]";
    echo $_SESSION["aToldoModel"][$i];
    echo "<br />";
    }
    ?>
    --
    Andrés Ferrando
  • Denyl Meneses Guillén at Nov 11, 2005 at 5:10 pm
    Señores Buenos Dias :

    Tengo una pagina pwml que la veo en un equipo NEXTEL (WAP) , dentro de esta
    pagina yo inserto codigo PHP para listar por ejemplo los destinos terrestres
    que estan en mi base de datos .

    Hasta alli no hay problemas pero cuando por ejemplo pongo una caja de texto
    donde quiero ingresar cantidades (esto ya no es PHP sino WML)
    <p>BULTOS:<input name="txtBulto" type="text" size="4" maxlength="4"
    format="NNNN"/></p>

    Resulta que en mi NEXTEL no puedo ingresar 12 por que me obliga a llenar los
    4 digitos para que recien me paresca el boton de OK , lo mismo me sucede con
    la Hora , pues no puedo poner los " : " .

    1ra Pregunta . - Como puedo hacer que por mas de 4 digitos que tenga la
    casilla me permita pasar asi ponga 3 o menos?

    Una vez ingresados los datos los grabo de la siguiente manera :
    <wml>
    <head>
    <meta forua="true" http-equiv="Cache-Control" content="no-cache"/>
    </head>
    <card newcontext="true">
    <?php
    include "adodb.inc.php";
    include("fgeneralwap.inc.php");
    $db = NewADOConnection("oci8");
    $db->Connect(false, 'xxxxx', 'xxxxxx', 'olva');

    $query = " insert into despachos_terrestres (fecha_despacho , cod_medio ,
    guia_terrestre , contenido , ";
    $query .= " bultos , hora_salida, cod_ciudad ,
    observacion1 )";
    $query .= " values (sysdate , '$linea' , '$txtGuia', '$contenido',
    '$txtBulto', '$txtHora' , '$destino' ,'$observacion')";
    $rs = $db->Execute("$query");
    if (!$rs){echo "Problemas al grabar";}
    else { echo "Se grabo con exito"; }
    ?>
    </card>
    </wml>

    Grabo con exito pero no me aprece el mensaje de "Se grabo con exito en el
    nextel " , le puse unas siglas pensando que era por espacio "BIEN", en mi
    NEXTEL me sale el mismo => Error : 500 error interno del servidor

    2da pregunta . Como puedo votar ese mensajito? y ademas hacer que vuelva al
    principio del ingreso y no me vote para luego tener que loguearme de nuevo?
    osea se puede hacer un header location?

    Señores se que tal vez el problema pase por WML mas que PHP pero por favor
    si alguien me puede dar una pista me sería de gran ayuda , meintras tanto
    seguire revisando como solucionar el problema que tengo.


    Gracias.
  • Denyl Meneses Guillén at Nov 11, 2005 at 5:23 pm
    Señores Ya se por que me sale ERROR al imprimir el texto de "SE GRABO CON
    EXITO" . pues en WML es obligatorio antes de imprimir un texo indicarlo asi
    : <p> y al terminar </p> , a diferencia de HTML aca si es obligatorio .

    Espero puedan seguir ayudandome.

    Gracias.



    ----- Original Message -----
    From: "Denyl Meneses Guillén" <dmeneses@olva.com.pe>
    To: <php-es@lists.php.net>
    Sent: Friday, November 11, 2005 12:08 PM
    Subject: [PHP-ES] Problemas con WML o tal vez PHP

    Señores Buenos Dias :

    Tengo una pagina pwml que la veo en un equipo NEXTEL (WAP) , dentro de esta
    pagina yo inserto codigo PHP para listar por ejemplo los destinos
    terrestres
    que estan en mi base de datos .

    Hasta alli no hay problemas pero cuando por ejemplo pongo una caja de texto
    donde quiero ingresar cantidades (esto ya no es PHP sino WML)
    <p>BULTOS:<input name="txtBulto" type="text" size="4" maxlength="4"
    format="NNNN"/></p>

    Resulta que en mi NEXTEL no puedo ingresar 12 por que me obliga a llenar los
    4 digitos para que recien me paresca el boton de OK , lo mismo me sucede con
    la Hora , pues no puedo poner los " : " .

    1ra Pregunta . - Como puedo hacer que por mas de 4 digitos que tenga la
    casilla me permita pasar asi ponga 3 o menos?

    Una vez ingresados los datos los grabo de la siguiente manera :
    <wml>
    <head>
    <meta forua="true" http-equiv="Cache-Control" content="no-cache"/>
    </head>
    <card newcontext="true">
    <?php
    include "adodb.inc.php";
    include("fgeneralwap.inc.php");
    $db = NewADOConnection("oci8");
    $db->Connect(false, 'xxxxx', 'xxxxxx', 'olva');

    $query = " insert into despachos_terrestres (fecha_despacho , cod_medio ,
    guia_terrestre , contenido , ";
    $query .= " bultos , hora_salida, cod_ciudad ,
    observacion1 )";
    $query .= " values (sysdate , '$linea' , '$txtGuia', '$contenido',
    '$txtBulto', '$txtHora' , '$destino' ,'$observacion')";
    $rs = $db->Execute("$query");
    if (!$rs){echo "Problemas al grabar";}
    else { echo "Se grabo con exito"; }
    ?>
    </card>
    </wml>

    Grabo con exito pero no me aprece el mensaje de "Se grabo con exito en el
    nextel " , le puse unas siglas pensando que era por espacio "BIEN", en mi
    NEXTEL me sale el mismo => Error : 500 error interno del servidor

    2da pregunta . Como puedo votar ese mensajito? y ademas hacer que vuelva al
    principio del ingreso y no me vote para luego tener que loguearme de nuevo?
    osea se puede hacer un header location?

    Señores se que tal vez el problema pase por WML mas que PHP pero por favor
    si alguien me puede dar una pista me sería de gran ayuda , meintras tanto
    seguire revisando como solucionar el problema que tengo.


    Gracias.

    --
    PHP Spanish Localization Talk Mailing List (http://www.php.net/)
    To unsubscribe, visit: http://www.php.net/unsub.php


    --
    No virus found in this incoming message.
    Checked by AVG Free Edition.
    Version: 7.1.362 / Virus Database: 267.12.8/166 - Release Date: 10/11/2005
  • Hari Seldon at Nov 10, 2005 at 11:54 pm
    Hola de nuevo, colisteros

    Para un proyecto que tengo en mente, tengo que generar imágenes en
    servidor a partir de un grupo de imágenes que el usuario introducirá... Algo
    así como un tablón de productos "gigante", a partir de fotografías de los
    productos a una resolución de, digamos, 400x250 píxeles, y tengo que generar
    "mosaicos" de unos 1000 productos, como mucho, o 100, como poco (voy a tener
    diferentes vistas según el nivel de zoom que quiera, se va a poder uno
    acercar y alejar al "tablón"); el caso es que tendré que coger imagen a
    imagen, redimensionarla, y situarla en el "lienzo" de resolución deseada.

    La cuestión es que esto va a terminar en un front-end en flash, y
    las fotografías deberían de mantener transparencias.. O sea, la foto del
    producto se ve y el fondo es transparente, para así cargarlo sobre otras
    cosas que ya voy a tener en el flash.

    Tengo por tanto dos alternativas;
    - La primera, sería utilizar las librerías ming, y generar el SWF a
    "medida"; esta opción es la que más me interesa, pero me preocupa el
    rendimiento de las librerías ming, que desconozco pues no las he utilizado
    en entornos de producción; la frecuencia de actualización de los "tablones"
    será, como máximo, cada 2 días (lo normal va a ser que se actualicen cada
    semana más o menos, se metan los productos e imágenes nuevas, y se pulse un
    botón que sea "generar", dónde generará todos los swf necesarios -o .png-)
    - La segunda, utilizar las librerías GD y crear un PNG de 24 bits
    con transparencias, y cargarlo en flash; pero entonces tengo que usar el
    flash player 8 que es el único que me deja cargar imágenes con
    transparencias.. Y quería evitarlo si es posible.

    Si alguién tiene información de rendimiento de las librerías MING,
    se lo agradecería mucho.

    Un saludo, y gracias.

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupphp-general-es @
categoriesphp
postedNov 10, '05 at 8:45p
activeNov 11, '05 at 5:23p
posts7
users5
websitephp.net

People

Translate

site design / logo © 2022 Grokbase