Katrin: formmailer

Hallo,

ich habe einen formmailer (zwei Bestandteile: ein php Script und ein html Datei). In das php-script habe ich eine Funktion eingefügt, das die ip Adresse des users ermittelt, die Funktion ermittelt vier Variablen:
$ip
$true
$dns
$true_dns

Das ausgefüllte html-Formular ruft das php Script auf und sendet per mail die Formulareingaben.

Problem: Zwar werden alle Formulardaten übermittelt aber den Variablen zur ip Ermittlung werden keine Werte von der PHP Funktion übermittelt.
In der HTML Datei steht für die Übermittlung der ip Informationen folgender code:

<input type="hidden" name="IP_adresse" value="$ip">
<input type="hidden" name="IP_adresse" value="$true_ip">
<input type="hidden" name="IP_adresse" value="$dns">

Als ergebnis bekomme ich lediglich $ip, $$true_ip etc.

Hat jemand hier eine Idee, was ich falsch mache?

Viele Grüße

Katrin

  1. hi,

    <input type="hidden" name="IP_adresse" value="$ip">
    <input type="hidden" name="IP_adresse" value="$true_ip">
    <input type="hidden" name="IP_adresse" value="$dns">

    Als ergebnis bekomme ich lediglich $ip, $$true_ip etc.

    Hat jemand hier eine Idee, was ich falsch mache?

    Mehrere Sachen.

    Wenn das ein reiner HTML-Block ist, dann werden darin natürlich keine Dinger, die zufällig wie Namen von PHP-Variablen aussehen, durch ihre Werte ersetzt.

    Und da du alle Felder mit dem gleichen Namen versehen hast, solltest du eigentlich nur den Wert des letzten in PHP wiederfinden - so lange du nicht durch anfügen eckiger Klammern an den Namen dafür sorgst, dass PHP automatisch ein Array daraus erstellt:
    name="IP_adresse[]"

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. danke für die Info,

      hatte mit copy und paste gearbeitet und nicht aufgepasst, daher die gleichen Bezeichnungen bei "name=...."

      Aber jetzt weiss ich immer noch nicht, wie ich die IP Werte, die über eine Funktione im PHP Script ermittelt werden, beim abschicken des Formulars übermittelt bekomme.

      Grüsse
      Katrin

      1. hi,

        Aber jetzt weiss ich immer noch nicht, wie ich die IP Werte, die über eine Funktione im PHP Script ermittelt werden, beim abschicken des Formulars übermittelt bekomme.

        Warum willst du sie denn überhaupt erst ins Formular schreiben - nur um sie dir dann wieder schicken zu lassen?
        Warum rufst du denn deine Funktion nicht erst in dem Script auf, welches die Formulardaten verarbeitet?

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
      2. Aber jetzt weiss ich immer noch nicht...

        Hallo Katrin,

        wenn man davon ausgeht, dass du deine Variablen per 'post' übergeben möchtest und register globals off ist, sollte es etwa so aussehn (ungetestet *g*):

          
        <?  
        # empfange variable:  
        if(isset($_POST['IP_adresse'])){... mich verarbeiten ...;}  
          
        # schicke variable:  
        ?>  
        <form method="post" action="<?echo $_SERVER['PHP_SELF']?>">  
          <input type="hidden" name="IP_adresse" value="<?echo $ip?>" />  
          .  
          .  
          .  
        </form>  
        
        

        lG,
        Jonny 5

        1. Danke für den Hinweis,

          hab es gerade ausprobiert, hat aber nicht funktioniert. Als Wert bekomme ich den Ausdruck "<?echo $ip?>" etc übermittelt.

          Trotzdem vielen Dank für die Mühe.

          werd mich morgen wieder dran versuchen.

          Freue mich bis dahein über jeden weiteren Hinweis.

          Viele Grüße

          Katrin

          1. hi,

            hab es gerade ausprobiert, hat aber nicht funktioniert. Als Wert bekomme ich den Ausdruck "<?echo $ip?>" etc übermittelt.

            Dann sind vielleicht die short_open_tags bei dir deaktiviert.

            Probiere mal <?php statt <?

            gruß,
            wahsaga

            --
            /voodoo.css:
            #GeorgeWBush { position:absolute; bottom:-6ft; }
          2. Hi,

            hab es gerade ausprobiert, hat aber nicht funktioniert. Als Wert bekomme ich den Ausdruck "<?echo $ip?>" etc übermittelt.

            Wenn dieser Ausdruck wie eingangs erwähnt in einer HTML-Datei steht (die gar nicht von PHP geparsed wird) kannst Du nichts anderes erwarten. Angesehen davon: wo wird denn diese Variable überhaupt definiert? Und wozu willst Du sie überhaupt im Formular übermitteln, wo doch beim Absenden des Formulars das Script die IP vom Absender geliefert bekommt?

            freundliche Grüße
            Ingo