FAQ
Hola:

Estoy trabajando en la creación de generadores de cursos virtuales y por
varias razones he escogido el PHP como herramienta programática.

En el trabajo me he encontrado con la siguiente dificultad: he leido
varios valores a través de un formulario y los trato de asignar a los
elementos de un arreglo para luego pasarlos a otra página (a otro
script PHP). He intentado para ello convertir los elementos del arreglo
en una cadena (implode), para luego usarlos en la otra (explode). Pero
no me está funcionando, estoy recibiendo el mensaje:

Warning: Bad arguments to implode() in
/home/rey/public_html/htdocs/solucion-for1.php on line 10

¿Alguien tiene idea de como se resuelve esto, o de alguna dirección de
sitio donde se muestre como hacerlo?


--
Saludos,

Lic. Rey Segundo Guerrero Proenza
Dpto Computación Universidad de Granma
Bayamo Cuba
http://www.geocities.com/reysgp/

Search Discussions

  • Jorge Eduardo Paganini at Jan 14, 2002 at 9:23 pm
    Hola Rey:

    Si nos podés facilitar el script con tu código para poder examinarlo,
    sería una buena idea !

    Saludos !!!
    Jorge Eduardo Paganini
    jorgepag@iwcc.com.ar
    jorgepag@fibertel.com.ar
  • Rey Segundo Guerrero Proenza at Jan 14, 2002 at 9:32 pm
    Hola:
    On Mon, 14 Jan 2002, Jorge Eduardo Paganini wrote:


    Si nos podés facilitar el script con tu código para poder examinarlo,
    sería una buena idea !
    Este es el primer script, donde intento leer los valores a través de un
    formulario.

    <html>
    <body>
    <?php
    echo '<form method="post">';
    for($i=0; $i<=5; $i++) {
    echo '<input type="text" name="a[]">';
    }
    echo '<input type="submit" >';
    echo "</form>";
    $cadena=implode(":",$a);
    echo '<form action="usa-arreglos.php" method="post">';
    echo "<input type=hidden name=cadena value=$cadena>";
    echo "</form>";
    ?>
    </body>
    </html>

    El script usa-arreglos.php es como sigue:

    <?php
    echo $cadena;
    $seconddarray = explode(":", $cadena);
    for($i=0; $i<=5; $i++) {
    echo $seconddarray[$i]."<br>";
    }
    ?>

    El error ocurre en el primero; no sé que lógica o sintácticamente estoy
    omitiendo.


    --
    Saludos,

    Lic. Rey Segundo Guerrero Proenza
    Dpto Computación Universidad de Granma
    Bayamo Cuba
    http://www.geocities.com/reysgp/
  • Angel Fenoy at Jan 14, 2002 at 11:17 pm

    Dimarts 15 Gener 2002 10:21, Rey Segundo Guerrero Proenza dixit:

    Este es el primer script, donde intento leer los valores a través de un
    formulario.

    <html>
    <body>
    <?php
    echo '<form method="post">';
    for($i=0; $i<=5; $i++) {
    echo '<input type="text" name="a[]">';
    }
    echo '<input type="submit" >';
    echo "</form>";
    $cadena=implode(":",$a);
    echo '<form action="usa-arreglos.php" method="post">';
    echo "<input type=hidden name=cadena value=$cadena>";
    echo "</form>";
    ?>
    </body>
    </html>

    El script usa-arreglos.php es como sigue:

    <?php
    echo $cadena;
    $seconddarray = explode(":", $cadena);
    for($i=0; $i<=5; $i++) {
    echo $seconddarray[$i]."<br>";
    }
    ?>

    El error ocurre en el primero; no sé que lógica o sintácticamente estoy
    omitiendo.
    El error que aparece es porque intentas usar un arreglo ($a) que no existe,
    pero bueno, estoy leyendo tu código, intentando comprender qué intentas
    hacer... y me estoy mareando ;-)

    ¿Por qué necesitas dos formularios en el primer script? No seria mucho más
    fácil pasar los datos directamente del primer formulario al segundo script?
    Algo así:

    <?php
    echo '<form method="post" action="usa-arreglos.php">';
    for($i=0; $i<=5; $i++) {
    echo '<input type="text" name="a[]">';
    }
    echo '<input type="submit" >';
    echo "</form>";
    ?>

    Con esto recibirías directamente en el segundo script el arreglo $a, sin
    necesitar implodes ni explodes.

    Saludos
    Àngel
  • Rey Segundo Guerrero Proenza at Jan 15, 2002 at 3:37 pm
    Hola:
    On Tue, 15 Jan 2002, Angel Fenoy wrote:

    El error que aparece es porque intentas usar un arreglo ($a) que no existe,
    pero bueno, estoy leyendo tu código, intentando comprender qué intentas
    hacer... y me estoy mareando ;-)

    ¿Por qué necesitas dos formularios en el primer script? No seria mucho más
    fácil pasar los datos directamente del primer formulario al segundo script?
    Algo así:

    <?php
    echo '<form method="post" action="usa-arreglos.php">';
    for($i=0; $i<=5; $i++) {
    echo '<input type="text" name="a[]">';
    }
    echo '<input type="submit" >';
    echo "</form>";
    ?>

    Con esto recibirías directamente en el segundo script el arreglo $a, sin
    necesitar implodes ni explodes.
    En efecto, funciona. Realmente al enredo anterior llegué porque en
    algún momento intenté lo más natural, pasar directamente el arreglo y no
    me imprimió nada en la página, quien sabe ahora porque causa, y pensé
    que los arreglos no pasaban directamente de un script a otro, por ello traté de
    convertirlo en algo que sí sabía pasaba, un string.

    Gracias por tu ayuda.

    --
    Saludos,

    Lic. Rey Segundo Guerrero Proenza
    Dpto Computación Universidad de Granma
    Bayamo Cuba
    http://www.geocities.com/reysgp/
  • Angel Fenoy at Jan 15, 2002 at 5:23 pm

    Dimecres 16 Gener 2002 01:25, Rey Segundo Guerrero Proenza dixit:

    Hola:
    On Tue, 15 Jan 2002, Angel Fenoy wrote:
    El error que aparece es porque intentas usar un arreglo ($a) que no
    existe, pero bueno, estoy leyendo tu código, intentando comprender qué
    intentas hacer... y me estoy mareando ;-)

    ¿Por qué necesitas dos formularios en el primer script? No seria mucho
    más fácil pasar los datos directamente del primer formulario al segundo
    script? Algo así:

    <?php
    echo '<form method="post" action="usa-arreglos.php">';
    for($i=0; $i<=5; $i++) {
    echo '<input type="text" name="a[]">';
    }
    echo '<input type="submit" >';
    echo "</form>";
    ?>

    Con esto recibirías directamente en el segundo script el arreglo $a, sin
    necesitar implodes ni explodes.
    En efecto, funciona. Realmente al enredo anterior llegué porque en
    algún momento intenté lo más natural, pasar directamente el arreglo y no
    me imprimió nada en la página, quien sabe ahora porque causa, y pensé
    que los arreglos no pasaban directamente de un script a otro, por ello
    traté de convertirlo en algo que sí sabía pasaba, un string.

    Gracias por tu ayuda.
    Por cierto, olvidé comentar que si otra vez necesitas realmente pasar un
    arreglo de un programa a otro, no se hace con implode/explode, sino con
    serialize/unserialize(). Y si además lo vas a pasar por la URL, debes hacerle
    un urlencode() antes de pasarlo, pero ojo, NO hay que hacerle urldecode() al
    recibirlo, ya que PHP lo hace automáticamente.

    Saludos
    Àngel
  • Rey Segundo Guerrero Proenza at Jan 15, 2002 at 6:02 pm
    Hola:
    On Tue, 15 Jan 2002, Angel Fenoy wrote:


    Por cierto, olvidé comentar que si otra vez necesitas realmente pasar un
    arreglo de un programa a otro, no se hace con implode/explode, sino con
    serialize/unserialize(). Y si además lo vas a pasar por la URL, debes hacerle
    un urlencode() antes de pasarlo, pero ojo, NO hay que hacerle urldecode() al
    recibirlo, ya que PHP lo hace automáticamente.
    Sí, acabo de ver eso en el manual, más un ejemplo anexo esquemático; sí
    recuerdas algún lugar donde aparezca alguna otra ejemplificación
    explícita, sería bienvenida, pues es obvio que la voy a necesitar en
    algún momento futuro.

    Gracias nuevamente.

    --
    Saludos,

    Lic. Rey Segundo Guerrero Proenza
    Dpto Computación Universidad de Granma
    Bayamo Cuba
    http://www.geocities.com/reysgp/

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupphp-general-es @
categoriesphp
postedJan 14, '02 at 8:58p
activeJan 15, '02 at 6:02p
posts7
users3
websitephp.net

People

Translate

site design / logo © 2022 Grokbase