[php] HTTP host doorgeven via Iframe

Pagina: 1
Acties:
  • 407 views

Acties:
  • 0 Henk 'm!

  • XippIX
  • Registratie: Augustus 2001
  • Niet online
Ik ben bezig met een scriptje wat in een iframe komt te draaien (omdat het op meedere pagina's te zien moet zijn)

Nu is dit scriptje een formulier wat in een iframe staat. Nu wil ik echter bij het verzenden van het formulier dat de bovenliggende pagina (de pagina waar dus het iframe instaat) het adres mee wordt gestuurd zodat ik kan zien van welk domein het formulier is verzonden.

Ik heb nu het volgende geplaatst in het script:

code:
1
$server="$HTTP_HOST";


(ik dacht hiermee wel de host te kunnen uitlezen), maar helaas dan pakt hij de url van de formulier pagina. (ook logisch)

Mijn vraag is, hoe kan ik dit oplossen en wel de bovenliggende pagina tonen?

Acties:
  • 0 Henk 'm!

  • Joen
  • Registratie: Juli 2003
  • Laatst online: 09-08 18:34
Kun je niet in de broncode in de bovenliggende pagina een extra parameter meegeven in de URL voor je Iframe? Bijvoorbeeld formulier.php?host=www.domein.nl

Dat zou mij de meest makkelijke oplossing lijken. Uiteraard is die dan weer uitvraagbaar met $_GET["host"]

[ Voor 26% gewijzigd door Joen op 17-07-2009 12:49 ]


Acties:
  • 0 Henk 'm!

Verwijderd

$_SERVER['HTTP_REFERER']

alleen kan die uitgezet worden...

Acties:
  • 0 Henk 'm!

Verwijderd

offtopic:
Wauw hoe veel fouten kan je in 1 line php maken... 8)7


Je zou ook kunnen includen, dan heb je hem er gelijk in.

Anders kan je in de HTML-tag van het iframe bij de source de gewenste variabele meegeven, dus:
PHP:
1
<iframe src="./pagina.php?server=<?=$_SERVER['HTTP_HOST']?>"></iframe>


edit:
/me moet sneller leren typen.. :P

[ Voor 8% gewijzigd door Verwijderd op 17-07-2009 12:51 ]


Acties:
  • 0 Henk 'm!

  • XippIX
  • Registratie: Augustus 2001
  • Niet online
Verwijderd schreef op vrijdag 17 juli 2009 @ 12:49:
$_SERVER['HTTP_REFERER']

alleen kan die uitgezet worden...
Nee dit werkt niet, want dan wordt de url getoond waar het script zich bevind

Acties:
  • 0 Henk 'm!

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

XippIX schreef op vrijdag 17 juli 2009 @ 12:51:
[...]

Nee dit werkt niet, want dan wordt de url getoond waar het script zich bevind
Dat is toch waar 't iframe vandaan wordt geladen? Als je alleen de URI wilt, dan kan je dat eruit halen :)

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Acties:
  • 0 Henk 'm!

Verwijderd

XippIX schreef op vrijdag 17 juli 2009 @ 12:51:
[...]

Nee dit werkt niet, want dan wordt de url getoond waar het script zich bevind
Oh, ik had het ook van Google

Met een querystring-parameter is de enige, robuuste oplossing.

Acties:
  • 0 Henk 'm!

  • XippIX
  • Registratie: Augustus 2001
  • Niet online
als ik een include doe, krijg ik een vreemde foutmelding:

Warning: main(): URL file-access is disabled in the server configuration
failed to open stream: no suitable wrapper

wat doe ik verkeerd? En ja, ik ben wel een beginner ;)

Acties:
  • 0 Henk 'm!

Verwijderd

XippIX schreef op vrijdag 17 juli 2009 @ 13:00:
als ik een include doe, krijg ik een vreemde foutmelding:

Warning: main(): URL file-access is disabled in the server configuration
failed to open stream: no suitable wrapper

wat doe ik verkeerd? En ja, ik ben wel een beginner ;)
Wat voor include :?

Acties:
  • 0 Henk 'm!

  • XippIX
  • Registratie: Augustus 2001
  • Niet online
een php include:

<?php
include('/dev/test/aanvraag.php');
?>

waarschijnlijk het pad niet goed staan denk ik dan :X :?

Acties:
  • 0 Henk 'm!

Verwijderd

Wat heeft dat met je originele vraag te maken??

Nja, het is vrijdag. Tada!

Acties:
  • 0 Henk 'm!

  • Niemand_Anders
  • Registratie: Juli 2006
  • Laatst online: 09-07-2024

Niemand_Anders

Dat was ik niet..

XippIX schreef op vrijdag 17 juli 2009 @ 13:03:
een php include:

<?php
include('/dev/test/aanvraag.php');
?>

waarschijnlijk het pad niet goed staan denk ik dan :X :?
Ik denk dat je 'dev' ipv '/dev' (zonder slash) moet gebruiken). In /dev staan normaal je sda1, hda1, etc devices.

If it isn't broken, fix it until it is..


Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 01:20

MueR

Admin Tweakers Discord

is niet lief

XippIX schreef op vrijdag 17 juli 2009 @ 12:51:
[...]

Nee dit werkt niet, want dan wordt de url getoond waar het script zich bevind
Wel. Van php.net:
'HTTP_REFERER'
The address of the page (if any) which referred the user agent to the current page. This is set by the user agent. Not all user agents will set this, and some provide the ability to modify HTTP_REFERER as a feature. In short, it cannot really be trusted.

Anyone who gets in between me and my morning coffee should be insecure.


Acties:
  • 0 Henk 'm!

  • XippIX
  • Registratie: Augustus 2001
  • Niet online
mm oke, zoals jullie al doorhadden snap ik er weinig van :P Hier mijn code:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<table width="400" border="0" align="center" cellpadding="3" cellspacing="1">
<tr>
<td><strong>Registreer</strong></td>
</tr>
</table>

<table width="400" border="0" align="center" cellpadding="0" cellspacing="1">
<tr>
<td><form name="registratie" method="post" action="registreer.php">
<table width="100%" border="0" cellspacing="1" cellpadding="3">
<tr>
<tr>
<td>gebruikersnaam</td>
<td>:</td>
<td><input name="domein" type="text" id="domein" value="je gebruikersnaam" size="50"></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td><input type="submit" name="Submit" value="Registreer!"></td>
</tr>
</table>
</form>
</td>
</tr>
</table>
</div>


(dit staat dus in een iframe)

vervolgens is dit de verzendpagina:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
$mail_from="$domein";
$server="$HTTP_REFERER";
// Enter your email address
$to ='mail@mail.com';
$nieuw ='Registratie';

$send_contact=mail($to,$nieuw,$server,$domein);

// Check, if message sent to your email
// display message "We hebben de registratie ontvangen, we nemen zo snel mogelijk contact op."
if($send_contact){
echo "We hebben de registratie ontvangen, we nemen zo snel mogelijk contact op.";
}
else {
echo "ERROR";
}
?>


wat doe ik verkeerd?

Acties:
  • 0 Henk 'm!

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

wat doe ik verkeerd?
DEBUGGEN DEBUGGEN DEBUGGEN ;)

Wat wil je bereiken met je laatste geposte code, wat werkt er niet, waar heb je op gezocht, waarom waren de aangedragen oplossingen geen oplossing voor jou?

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Acties:
  • 0 Henk 'm!

  • XippIX
  • Registratie: Augustus 2001
  • Niet online
oke, sorry dit heb ik geprobeerd:
- $_SERVER['HTTP_REFERER'] (ik krijg dan alleen de reffer van de pagina waar het script staat)
- <iframe src="./pagina.php?server=<?=$_SERVER['HTTP_HOST']?>"></iframe> (krijg ik idem)
-
code:
1
2
3
4
5
6
7
<?php

echo '<pre.';
print_r($_SERVER);
echo '</pre>';

?>

En dan in het verzenden script de variabele $server meegenomen, maar dan gebeurt er niets.
- een php include gebruikt (maar dit werkt niet omdat het script op een ander domein draait

Dit waren zo'n beetje mijn opties. Vandaar dat ik hier niet echt verder mee kom :)

Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Het is hier zeker niet de bedoeling om je code te dumpen met de melding "Het werkt niet".

De eerste reactie in het topic geeft al de beste manier om dit te doen aan. Je zult dus je pagina in je IFrame aan moeten roepen met in een GET parameter de juiste url. Met een beetje zoekwerk had je hier wel het een en ander over moeten kunnen vinden.

Het is verder geen rocket science om vanuit de aanroepende pagina die parameter toe te voegen of om hem op de andere pagina uit te lezen.

Mocht je niet weten hoe een GET parameter werkt dan wil ik je toch eens aanraden om je eens in de basics van HTTP/HTML/PHP te verdiepen.

Mocht je in het vervolg nog een concrete vraag hebben dan kun je natuurlijk een nieuw topic openen, maar hou je daarbij dan wel aan de Quickstart en het PRG beleid.

We willen dus dat je duidelijk uitlegt wat er niet wil lukken, wat je geprobeerd hebt, en eventueel welke foutmeldingen je krijgt. Daarbij kun je het wat verduidelijken door relevante stukjes code te plaatsen. Maar dus niet gewoon een stuk code neergooien en verwachten dat het probleem wel voor je opgelost word.

Om het nog even aan te vullen, je zult inderdaad ook moeten debuggen zoals BtM909 al zegt.

In princiepe komt het hier op neer.
Je moet een server script maken die iets als de volgende HTML oplever
HTML:
1
2
3
4
5
<html>
...
<iframe src='scripturl?someGetParam=www.myurl.nl' />
..
</html>

In je php script die je in je iframe aanroept zul je die someGetParam uit moeten lezen en gebruiken waarvoor je het wilt.

[ Voor 14% gewijzigd door Woy op 17-07-2009 15:10 ]

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”

Pagina: 1

Dit topic is gesloten.