Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/12/2012, 14:11
koutalala
 
Fecha de Ingreso: diciembre-2012
Mensajes: 2
Antigüedad: 11 años, 4 meses
Puntos: 0
Variable de sesión e isset.

Hola buenas, soy nuevo en el foro y tengo una duda urgente.
El tema es el siguiente:

Tengo que hacer un proyecto, hasta este miércoles. En el proyecto tengo que trabajar con ciertos datos que incluiré luego en un base de datos, pero antes de hacerlo, tengo que trabajar los datos a nivel php. Para esto, pensé utilizar arreglos en variables de sesión.
El problema aparece en el siguiente fragmento de código (que, de hecho, ni siquiera entra de lleno en el tema que quiero abordar a finalidad):

if (isset($_POST["cboArticulos"])) {
if (!isset($_SESSION["indice"])) {
echo "Indice no existe";
$_SESSION["indice"] = 0;
} else {
echo "Indice existe";
$_SESSION["indice"] = $_SESSION["indice"] + 1;
}
echo "<br/>El índice es: " . $_SESSION["indice"];
}

En este fragmento, cuando recibo el formulario que trae la información de "cboArticulos", necesito iniciar una variable de sesión que indique el índice de un arreglo, que también es una variable de sesión, pero que en este fragmento ni siquiera está declarado.
El punto es que, según yo, esto debería verificar si la variable de sesión "indice" no existe o es nula. En caso de que no exista o sea nula, se le asigna el valor 0, con lo que ya debería existir y dejar de ser nula, y así, cuando vuelva a pasar por este mismo fragmento de código, debería ser siempre existente y no nula, sumándose el valor 1 al valor total que ya tenía, pero lo que realmente pasa es que siempre se va por el lado que dice que es nula o no existe.
Intenté poniéndole valor 1 en vez de cero al iniciarla, de forma que no pudiese quedar nula bajo ningún aspecto, pero tampoco funcionó.
Ojalá me puedan ayudar :(
Sludos.

Añado el código completo:

agregar_prestamo.php
Código:
<?php
session_start();
$link = mysql_connect("localhost", "root", "");
mysql_select_db("encargofinal");


$articulo = "";
$cantidad = "";
if (isset($_POST["cboArticulos"])) {
    $articulo = $_POST["cboArticulos"];
    $cantidad = $_POST["txtCantidad"];

    if (!isset($_SESSION["indice"])) {
        echo "Indice no existe";
        $_SESSION["indice"] = 1;
    } else {
        echo "Indice existe";
        $_SESSION["indice"] = $_SESSION["indice"] + 1;
    }

    echo "<br/>El índice es: " . $_SESSION["indice"];

    $_SESSION["datos"][$_SESSION["indice"]] = array("articulo" => $articulo, "cantidad" => $cantidad);
}
?>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Pañol</title>
        <link type="text/css" rel="stylesheet" href="css/estilo.css"/>
    </head>
    <body>
        <div id="header">
            <h1 class="titulos">Nueva Salida de Pañol</h1>
            <?php
            echo $_SESSION["id"] = "";
            ?>
            <h2 class="titulos">ID Session <?= session_id(); ?></h2>
        </div>


        <div id="menu">
            <form action="#" method="post">
                <label for="cboOperarios" class="lbl">Operarios</label>
                <select name="cboOperarios" id="cboOperarios" class="box">
                    <option value="0">Seleccione</option>
                    <?php
                    $sql = "SELECT * FROM operario";
                    $res = mysql_query($sql, $link);
                    while ($registro = mysql_fetch_array($res)) {
                        ?>
                        <option value="<?= $registro["rut"] ?>"><?= $registro["nombre"] ?></option>
                        <?php
                    }
                    ?>
                </select>
                <br/>

                <table border="1">
                    <tr>
                        <td>
                            Articulo
                        </td>
                        <td>
                            Cantidad
                        </td>
                        <td>
                            Eliminar
                        </td>
                    </tr>

                    <?php
                    $total = 0;
                    if (isset($_POST["cboArticulos"])) {
                        for ($i = 0; $i < sizeof($_SESSION["datos"]); $i++) {
                            ?>
                            <tr>
                                <td>
                                    <?= $_SESSION["datos"][$i]["articulo"] ?>
                                </td>
                                <td>
                                    <?= $_SESSION["datos"][$i]["cantidad"] ?>
                                    <?php $total = $total + $_SESSION["datos"][$i]["cantidad"]; ?>
                                </td>
                                <td>
                                    <a href="#" onclick="" >Eliminar</a>
                                </td>
                            </tr>

                            <?php
                        }
                    }
                    ?>

                    <tr>
                        <td>
                            &nbsp;
                        </td>
                        <td>
                            &nbsp;
                        </td>
                        <td>
                            &nbsp;
                        </td>
                    </tr>
                </table>

                <br/>
                <input type="button" name="btnMas" id="btnMas" value="+" onclick="location.href='asociar_articulo.php'"/>
                <br/>
                <h2>Total Artículos</h2><h2><?= $total ?></h2>
                <br/>
                <input type="button" name="btnGuardar" id="btnGuardar" value="Guardar"/>
                <input type="button" name="btnLimpiar" id="btnLimpiar" value="Limpiar" onclick="<?php session_destroy(); ?>"/>
            </form>
        </div>



    </body>
</html>


asociar_articulo.php
Código:
<?php
$link = mysql_connect("localhost", "root", "");
mysql_select_db("encargofinal");
?>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Artículos</title>
        <script type="text/javascript" src="javascript/validar.js"></script>
        <link type="text/css" rel="stylesheet" href="css/estilo.css"/>
    </head>
    <body>
        <form action="agregar_prestamo.php" method="post" onsubmit="return validarArticulo();">
            <label for="cboArticulos" class="lbl">Artículo</label>
            <select name="cboArticulos" id="cboArticulos" class="box">
                <option value="0">Seleccione</option>
                <?php
                $sql = "SELECT * FROM articulo";
                $res = mysql_query($sql, $link);
                while ($registro = mysql_fetch_array($res)) {
                    ?>
                    <option value="<?= $registro["codigo"] ?>"><?= $registro["nombre"] ?></option>
                    <?php
                }
                ?>
            </select>

            <label for="txtCantidad" class="lbl">Cantidad</label>
            <input type="text" name="txtCantidad" id="txtCantidad" class="box"/>

            <input type="submit" value="Agregar"/>
            <a href="agregar_prestamo.php">Volver</a>
        </form>
    </body>
</html>