# aktuelle URL / URI der Stamm-Datei zum Formular senden



## mysr (20. Januar 2005)

Aloha,

Situation:
Für jede Site soll der Benutzer Zugriff auf ein Formular erhalten, über welches er die Site beurteilen kann. 

1. Schritt:
Formular (HTML) und Mailer (PHP) erstellt - und funktioniert.

2. Schritt == Problem
Das Formular soll die URL der Site erhalten von welcher es aufgerufen wurde, um diese dann an den PHP-Mailer zu senden und die Wertung zuordnen zu können.

Fragen:
- Lösungen für diesen Weg
- Ideen für einen anderen Weg

Danke 
%%%)-----
Sascha


----------



## Lord-Lance (20. Januar 2005)

Kenne zwar PHP nicht, aber du könntest doch auf der Seite von welcher das Form aufgerufen wird ein Hidden Input Feld machen das den Wert mittels Servervariablen vom Pfad besitzt. Das kannst du dann ja auch auf dem Mailer auslesen oder?


----------



## mysr (20. Januar 2005)

Hallo Lord Lance,

ich kenne php auch kaum, habe z.B. mittels

<script type="text/javascript">
<!--
 document.write("Diese Datei: " + document.URL);
//-->
</script>

die Url der Formular-Aufruf-Site erfasst, aber:

- ? wie werden diese Datens automatisch an das Formular gesendet, wenn der User das Formular aufruft?
- ?Ich bin mir nicht sicher, ob dieses Script funktioniert wenn der User Javascript im Browser deaktiviert hat?


----------



## Lord-Lance (20. Januar 2005)

Ich würde das keinesfalls über JavaScript lösen. Schau dich mal im PHP Forum um und probiere ein paar basic tutorials zu PHP. Das sollte nicht so schwierig sein ...


----------



## Sven Mintel (20. Januar 2005)

mit PHP bspw.:

```
<input type="hidden"name="seite"value="<?php echo $_SERVER['SCRIPT_URI];?>">
```


----------



## mysr (20. Januar 2005)

[Lord Lance] gefühlsmässig meide ich JavaScript hier auch, kennst Du praktische Beispiele?

[Hallo Sven Mintel] Ich als Newbe versuche zu übersetzten:

- ich baue ein verstecktes Feld (im Formular) und weise dem Wert die Aufforderung zu
von php die Adresse senden zu lassen. richtig?
- würde der hier auch gehen?:  ... $_ENV["SCRIPT_NAME"] 

Frage: erhalte ich dann nicht die Adresse des Formulars, statt der Adresse der Site die das Formular startet?

So viele Fragen .... (kleine Tierschau)
THX2UBoth


----------



## Sven Mintel (20. Januar 2005)

Damit schreibst du ein verstecktes Feld in dasFormular, dessen Wert der Pfad zur aktuellen Seite ist.... mehr nicht.
PHP kann keine Formulare senden oder die Anweisung dazu erteilen.... es kann diesen Wert lediglich ermitteln, sofern das Formular gesendet wird.
Du kannst auch $_ENV["SCRIPT_NAME"]  oder etwas anderes nehmen... jenachdem, was du brauchst.



> Frage: erhalte ich dann nicht die Adresse des Formulars, statt der Adresse der Site die das Formular startet?


Du erhältst in jedem Fall die Adresse der Site, ein Formular hat keine "Adresse".


----------



## mysr (20. Januar 2005)

OK - habe mich anscheinend unverständlich ausgedrückt,
wollte aber das selbe sagen. Habe Deinen code wie folgt eingefügt.

```
<input name="URL" type="hidden" id="URL" value="<?php echo $_SERVER['SCRIPT_URI'];?>">
```
Resultat war jedoch nur eine Textausgabe des Scripts - was habe ich falsch gemacht?

Situation *hoffentlichJetztVerständlicherGeschrieben* 

Es gibt X Websites, auf jeder befindet sich ein Link (_blank) welches immer das selbe Formular (SitePoll.htm) öffnet. Dieses Formular soll dem User die Möglichkeit geben, die entpsrechende Site zu beurteilen.
Die Daten werden mit _POST an die Datei SitePoll.php gesendet.

Ich brauche also:
- einen Befehl der paralell zum href=SitePoll.htm; auch die URL/URI der Site (auf der sich der Link befindet) mitsendet.
- oder einen Befehl auf dem Formular, der in der Lage ist die Aufrufende Site zu nennen.
- oder einen ganz anderen Weg.
- oder 500 g graue Zellen am Stück.
- oder eine fürsorgliche Blondine...

Ich habe X-Foren Y-Stunden durchforstet *UnterDieDeckeUndSchäm*
Jetzt will ich mich nicht geschlagen geben. "HELP" 
Sascha


----------



## Sven Mintel (20. Januar 2005)

Dann hänge die entsprechende Adresse auf die selbe Weise wie beim Formularfeld als Parameter an den Link zur sitePoll.htm ran... dort kannst du diese GET-Variable dann mit PHP auslesen...und weisst, woher das Formular aufgerufen wurde.


Wenn da in der Seite PHP-Code erscheint, dann solltest du sicherstellen, dass die entsprechende Seite auch von PHP verarbeitet wird.... bei Dateien mit der Endung *.htm ist das üblicherweise nicht der Fall


----------



## mysr (21. Januar 2005)

> Dann hänge die entsprechende Adresse auf die selbe Weise wie beim Formularfeld als Parameter an den Link zur sitePoll.htm ran


Jooo - genau das Versuche ich, aber es gelingt mir nicht - ich weiss nicht wie. Entprechender Teil in der Stammdatei.htm:

```
<p><a href="//SitePoll.htm" target="_blank" class="gelblink">Bewerten Sie die Site</a></p>
```
Wo/wie muss z.B. der php Code eingefügt werden?

Uuups - verstehe ich´s richtig?
Man kann HTML in .php  Dateien einfügen (und es wird umgesetzt)
aber PHP in einer .htm Datei wird nicht ausgeführt? (hab ich schon erwähnt das ich nicht viel Ahnung von PHP habe   )
Sascha


----------



## dkf (21. Januar 2005)

Benenne deine poll.htm in poll1.php und die andere in poll2.php um.
HTML-Code wird in beiden Dateien ganz normal angezeigt.

Und in die poll1.php baust du in dein verstecktes Feld einfach

```
value="<?php echo $_SERVER['HTTP_REFERER'] ?>"
```
 mit ein.

Zu finden unter: PHP: Vordefinierte Variablen - Manual


----------



## mysr (21. Januar 2005)

JAAAA, JA, JA! - Vielen Dank - ich habs kapiert - es hat geklappt.

Der Link (http://de.php.net/reserved.variables) war sehr gut,
dort konnte ich nachlesen (und verstehen), was http_referer macht.

Super Happy
Sascha


----------



## Sven Mintel (21. Januar 2005)

Die Variante mit HTTP_REFERER ist allerdings nicht optimal.
Nicht alle Browser senden diese Information, und diverse Privacy-Tools verunstalten diese Info, so dass sie nicht verwendbar ist.

Besser wäre daher, diese Information, wie bereits beschrieben, auf der Ursprungsseite in den Link einzubauen, und in der Abstimmungsseite abzufragen:


```
<a href="SitePoll.php?ref=<?php echo $_SERVER['SCRIPT_NAME'];?>" target="_blank" class="gelblink">Bewerten Sie die Site</a>
```
.....
in SitePoll.php kannst du dann per $_GET['ref'] drauf zugreifen.


----------



## mysr (24. Januar 2005)

Hallo Sven,

danke für den Verbesserungsvorschlag, den ich gerne umsetze...

ich habe auf der Ursprungsseite Deinen Code eingebaut

```
<a href="../Formular/POLL/SitePoll.php" ref="<?php  echo $_SERVER['SCRIPT_NAME']?>" target="_blank" class="gelblink">PollSite2.send</a>
```
Im Formular auf ein Verstecktes Feld diesen Code

```
<input name="URLref1" type="hidden" id="URLref1" value="<?php $_GET['ref'] ?>">
```
Und im PHP Mailer folgenden:

```
$Adresse2 = $_POST['URLref1'];
```
Ablauf und Code sind mir verständlich, trotzdem funktioniert es noch nicht und ich sehe auch den Fehler nicht.
Siehst Du ihn?


----------



## Sven Mintel (24. Januar 2005)

```
<?php $_GET['ref'] ?>
```
...ein *echo* sollte da schon noch hin


----------



## mysr (26. Januar 2005)

```
<input name="URLref1" type="hidden" id="URLref1" value="<?php echo $_GET['ref'] ?>">
```
Im Online-Quelltext erscheint [value=""].
Ich werde noch weiter rumprobieren.
Tipps?


----------



## Sven Mintel (26. Januar 2005)

Ich seh grad.... du hängst das im Link garnicht an das Verweisziel ran.

```
<a href="../Formular/POLL/SitePoll.php?ref=<?php  echo $_SERVER['SCRIPT_NAME'];?>" target="_blank" class="gelblink">PollSite2.send</a>
```


----------

