Jonas: arrays

ich habe erst gerade mit php programmierung angefangen darum für euch eine wahrscheinlich leichte frage zu den arrays.

ich habe ein problem. mein scrit lautet:

<?php
$sector = array ('main'=>'home.php', 'links'=>'links.php');
echo "$sector";
?>

alles was der echo jetzt ausspuckt ist: 'Array'. was mache ich falsch?

oder bei eineim ähnlichen script:

<?php
$sector = array ('main'=>'home.php', 'links'=>'links.php');
include ($sector);
?>

der querystring wird mit 'sector=main' ausgeführt. Der include() meldet aber er könne 'main' nicht includen.
auch ein $_GET($sector) funzt net.
weder google noch in diesem forum hab ich was gefunden, ich hoffe ihr könnt mir helfen.

grüsse
jonas

  1. hi,

    <?php
    $sector = array ('main'=>'home.php', 'links'=>'links.php');
    echo "$sector";
    ?>
    alles was der echo jetzt ausspuckt ist: 'Array'.

    na logisch. $sector _ist_ ja auch ein array.

    wie greift man auf einzelne array-werte zu? über den index natürlich, also hier z.b.

    echo $sector['main'];
    echo $sector['links'];

    wenn du alle werte aus dem array ausgeben willst, dann durchlaufe es mit foreach() oder so.

    oder schreibe
    print_r($sector);
    um alle werte aufgelistet zu bekommen.

    gruss,
    wahsaga

  2. Hallo,

    alles was der echo jetzt ausspuckt ist: 'Array'. was mache ich falsch?

    Du probierst das komplette einfach nur mit Echo Array auszugeben - das geht nicht.

    Schreib stattdessen:
    echo $sector['main'];

    Oder lass dir das ganze Array mit einer Schleife anzeigen:

    foreach($sector as $key=>$elem)
    {
       echo $key." ".$elem;
    }

    cu Benedikt Loepp

    --
    visite http://www.webocton.de - Aufträge erwünscht :-)
  3. Hallo!

    ich habe erst gerade mit php programmierung angefangen darum für euch eine wahrscheinlich leichte frage zu den arrays.

    Hast Du folgendes gelesen:

    http://de3.php.net/manual/de/language.types.array.php
    http://php-faq.de/ch/ch-arrays.html
    ?

    <?php
    $sector = array ('main'=>'home.php', 'links'=>'links.php');
    echo "$sector";
    ?>

    Was genau willst Du erreichen? Auf 'main' greifst Du über $sector['main'] zu.

    alles was der echo jetzt ausspuckt ist: 'Array'. was mache ich falsch?

    Du kannst einen Array nicht mit echo ausgeben. Verwende print_r($sector)

    <?php
    $sector = array ('main'=>'home.php', 'links'=>'links.php');
    include ($sector);
    ?>

    Was willst Du einbinden? home.php oder links.php oder beides?

    Wie gesagt greifst Du mit $sector['main'] auf "home.php" zu, also kannst Du mit

    include($sector['main']) die Datei "home.php" einbinden. Entsprechendes gilt für das Element 'links'.

    der querystring wird mit 'sector=main' ausgeführt. Der include() meldet aber er könne 'main' nicht includen.

    Tut er das? Wie genau lautet die Fehlermeldung und wo kommt die her?

    auch ein $_GET($sector) funzt net.

    Wenn Du beim URL-Parameter 'sector=main' die Datei "home.php" einbinden willst, dann musst Du das so machen:

    include($_GET['sector'])

    $_GET ist ein Array mit den Parameternamen aus dem GET-Requst als Elementnamen, und den entsprecehenden Parameterwerten als Wert.

    Siehe: http://de3.php.net/manual/en/reserved.variables.php#reserved.variables.get

    ABER: Sowas sollte man niemals nie machen! Denn so kan jemand in der URL eine eigenes Script als Parameterwert für section angeben, und dann führst Du fremden PHP-Code auf Deinem Server aus, und damit kann man ne Menge böse Dinge anstellen!

    weder google noch in diesem forum hab ich was gefunden, ich hoffe ihr könnt mir helfen.

    Du solltest neben google auch und vor allem auf folgenden Seiten nach Lösungen suchen:
    http://de3.php.net/manual/de/
    http://php-faq.de/index.html

    also mal genauer ansehen und bookmarken, fürs nächste mal ;-)

    Grüße,
    Andreas

    1. hi,

      ABER: Sowas sollte man niemals nie machen! Denn so kan jemand in der URL eine eigenes Script als Parameterwert für section angeben, und dann führst Du fremden PHP-Code auf Deinem Server aus, und damit kann man ne Menge böse Dinge anstellen!

      nein, nicht wenn die werte, wie im beispiel, aus einem von ihm selbst definierten array kommen.

      gruss,
      wahsaga

      1. Hi!

        nein, nicht wenn die werte, wie im beispiel, aus einem von ihm selbst definierten array kommen.

        Hast vollkommen Recht. Sorry für die Verwirrung ;-)

        Grüße
        Andreas

        1. hi,

          Hast vollkommen Recht. Sorry für die Verwirrung ;-)

          aber generell hast du natürlich recht, dass man an solchen stellen nicht vorsichtig genug sein kann.
          wenn man sieht, wie locker manche leute clientseitig übergebene werte behandeln, weiss man oft nicht, ob man lachen oder weinen soll ...

          gruss,
          wahsaga

          1. Hallo,

            solange man selber nicht die folgen trägt würd ich sagen lachen *g*

            cu Benedikt Loepp