olli: variablenübergabe per url

hallo, ich habe das schon oft gesehen, das variablen mit der url übergeben werden. sinnvoll ist es zum beispiel, wenn man einen werberlink macht o.ä.

http://www.domain.de/?werber=name

soetwas in dieser art schwebt mir auch vor augen, nur weiß ich nicht so recht wie ich soetwas lösen kann, da dies information eigentlich erst auf einer zweiten unterseite verarbeitet wird.

das sieht bei mir wie folgt aus.

http://www.domain.de/anmeldung.php?quelle=name

diese seite hat einen html kopf, im body ist php script, welches ein eingabeformular generiert( dort ein hidden feld mit dem namen quelle ), dieses wird per POST versendet an

http://www.domain.de/eintragen.php

dort werden die eingegebenen daten nochmal angezeigt, und hier soll auch die per url ankommende variable
$quelle
angezeigt werden ( per echo z.B.)

habe das versenden der daten mal mit GET überprüft, die variable quelle hat keinen wert.

vielleicht kann mir hier ja jemand nen tipp oder ne denkrichtung geben. danke

  1. Hallo olli,

    habe das versenden der daten mal mit GET überprüft, die variable quelle hat keinen wert.

    ich tippe mal auf register_globals=off, was bedeutet dass du $_GET['quelle'] verwenden musst (bzw. bei method="post" eben $_POST['quelle']) (siehe auch http://www.php.net/manual/en/language.variables.predefined.php).

    Grüße aus Nürnberg
    Tobias

    --
    Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
    1. ok, habe es soweit hinbekommen, aber stehe vor einen problem

      habe diese beiden codeschnipsel eingebettet in html

      <?php
      echo "<font color="#000000" size="1" face="Verdana, Arial, Helvetica, sans-serif">$geb_datum</font>";
      ?>

      <?php
      echo "<font color="#000000" size="1" face="Verdana, Arial, Helvetica, sans-serif">$alt_mail</font>";
      ?>

      um die variablen die übergebn wurden anzuzeigen.

      die per get angezeigte url sieht so aus

      http://www.domain.de/anm_form.php?geb_datum=hjkhkj&alt_mail=jhsdfdtfse@hfd.de&Submit=Anmelden

      es wird aber nur die var $geb_datum angezeigt. *nixversteh*

      sollte doch passen oder etwa nicht?

      danke

      1. Hallo,

        echo "<font color="#000000" size="1" face="Verdana, Arial, Helvetica, sans-serif">$geb_datum</font>";

        Bitte

        • poste hier nur das, was relevant ist:
            echo "$geb_datum";
        • verwende sowieso kein FONT mehr

        die per get angezeigte url sieht so aus

        http://www.domain.de/anm_form.php?geb_datum=hjkhkj&alt_mail=jhsdfdtfse@hfd.de&Submit=Anmelden

        Wenn Du das name-Attribut aus dem Submit-Button wegmachst,
        faellt der letzte, ueberfluessige Parameter schonmal weg.

        es wird aber nur die var $geb_datum angezeigt. *nixversteh*

        _Wie_ uebernimmst Du die GET-Variablen?
        Doch nicht etwa als globale Variablen?

        Arbeite mit $_GET oder $_REQUEST.

        Lass Dir mal im Skript alle uebergebenen Parameter anzeigen:

        print("<pre>");
        print_r($_REQUEST);
        print("</pre>");

        Gruesse,

        Thomas

          • verwende sowieso kein FONT mehr

          warum?

          _Wie_ uebernimmst Du die GET-Variablen?
          Doch nicht etwa als globale Variablen?

          Arbeite mit $_GET oder $_REQUEST.

          in arbeit ;)

          Lass Dir mal im Skript alle uebergebenen Parameter anzeigen:

          print("<pre>");
          print_r($_REQUEST);
          print("</pre>");

          wie gesagt, var kommt an

          Array
          (
              [geb_datum] => adsadawd
              [alt_mail] => asdfa@dfjhnfks.de
              [Submit] => Anmelden
          )

          mmhm, mal schauen was noch so geht ;)

          danke

          1. Hallo,

            • verwende sowieso kein FONT mehr
              warum?

            Ich antworte selten so, aber diesmal tue ich's:
            Siehe </archiv/>

            FONT ist veraltet ("deprecated"), weil es ein nutz- und sinnloses "Element" ist.
            http://www.w3.org/TR/1999/REC-html401-19991224/present/graphics.html#edef-FONT
            In HTML 4.01 Strict, XHTML 1.0 Strict und XHTML 1.1 kommt es schon gar nicht mehr vor.

            Weitere Lektuere.
            http://selfhtml.teamone.de/html/text/schrift.htm
            http://www.w3.org/2003/07/30-font-size#goodpractice
            Die salppe Formulierung "forget font" auf einer W3C-Seite gefaellt mir ;-)

            Ersetze es durch HTML (z.B. EM oder STRONG, wenn Du etwas hervorheben willst,
            durch H1, H2 u.s.w., wenn es sich um Ueberschriften handelt, u.s.w.),
            oder durch <span>, wenn es wirklich nur ums Layout geht, und formatiere
            die Elemente mit CSS entsprechend Deinen Wuenschen.

            print_r($_REQUEST);

            wie gesagt, var kommt an
            Array
            (
                [geb_datum] => adsadawd
                [alt_mail] => asdfa@dfjhnfks.de
                [Submit] => Anmelden
            )

            Na also, das hast Du es.
            Die Variable ist verfuegbar.

            Bevor Du sie wieder in den HTML-Code schreibst,
            solltest Du sie aus Sicherheitsgruenden "entschaerfen".
            Z.B. so:

            $mail_entschaerft = htmlspecialchars(trim($_REQUEST['alt_mail']));
            Das ersetzt die spitzen Klammern und die Anfuehrungszeichen (<,>,").

            Lies: http://www.dclp-faq.de/q/q-sicherheit-parameter.html

            Dann kannst Du den Wert der Variable ins Hidden-Form-Field schreiben:
            echo '<input type="hidden" name="alt_mail" value="' . $mail_entschaerft . '">';

            mfg
            Thomas

  2. Guggugs,

    dass deine hiddenfield im Formular den auf den Namen quelle hört, reicht nicht aus, es muss auch der Wert eingetragen werden, also in etwa so:
    <input type="hidden" name="quelle" value="<?php if isset($quelle) echo $quelle ?>" />

    Wenn du dir Variablen über viele Seiten merken möchtest, bietet sich die Arbeit mit Sessions an, das ist viel bequemer und haltbarer.

    Liebe Grüße, Uschi