webForumDet fria alternativet

Skicka variabler.

10 svar · 365 visningar · startad av Lundb3rg

Lundb3rgMedlem sedan maj 200240 inlägg
#1

Hej

Hur skickar man variabler med i addressen: typ:
href="sida.php?variabel=något&variabel2=något

och hur tar man imot det och får ut vad som står där sen på sida.php ???

Tack!

MatteMedlem sedan aug. 20002 975 inlägg
#2

Du skickar dom:

<a href="sida.php?variabel=något&variabel2=något">Skicka</a>

Du tar emot på sida.php :

<?php
echo $_GET['variabel'];
echo $_GET['variabel2'];
?>

Om du har en tidigare version av PHP än 4.1.0, byt ut $_GET mot $HTTP_GET_VARS.

Skulle register_globals=on i din PHP.INI så kan du också använda:

<?php
echo $variabel;
echo $variabel2;
?>
Lundb3rgMedlem sedan maj 200240 inlägg
#3

Det tackar vi för =)

Lundb3rgMedlem sedan maj 200240 inlägg
#4

Det funkar inte.

Så här är det, jag använder frames och länken har jag i en frame motagaren har jag i en annan, men när jag trycker på länken:

<a href="inlove_main.php?ID=<?=$rad[id]?>" target="inlove_main">

så står det fortfarande bara:
http://localhost/hello/inlove.php
i address combon, vilket är php filen med frames uppbyggnaden.

FAST om jag kollar i statusraden när jag håller över länken så står det: inlove_main.php?ID=1

Det jag har som skall ta imot variablen är:

<?
$conn =@mysql_connect()
	or die ("Can't connect to database.");
$database = mysql_select_db("hello");
?>
<div id="1" style="position:absolute; left:7px; top:7px; z-index:1">
<img src="gfx/inlove/main_head.gif"><br><img src="gfx/px.gif" width="1" height="7"><br>
<? 	
if ($_get['id']) { 
	$sql = "SELECT * FROM happenings WHERE id = '$_get['ID']'";
	$result = mysql_query("$sql");
	$rad = mysql_fetch_array($result)
?>
	<font class="newshead"><?echo $rad[headline]?> </font><br><font class="inlovetime"><?echo date("M jS, Y",strtotime($rad[date]));?> <?echo $rad[smallword]?> <?echo $rad[situated]?> </font><br><img src="gfx/px.gif" width="1" height="7"><br>
	<font class="normal"><?echo $rad[message]?>  </font>
<? } 
mysql_close($conn) ?>

Får felmedelandet:

Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in D:\Program\Apache Group\Apache2\htdocs\hello\inlove_main.php on line 19

Går det inte att skicka så eller är det något jag måste tillåta eller nått?

Lundb3rgMedlem sedan maj 200240 inlägg
#5

Jag ändrade sql satsen till:
$sql = "SELECT * FROM happenings WHERE id = '". $_GET['ID'] ."'";

då försvann felmedelandet, men fortfarande inget som visas på inlove_main.php sidan..

Lundb3rgMedlem sedan maj 200240 inlägg
#6

Nu ändrade jag länken från:
<a href="inlove_main.php?ID=<?=$rad[id]?>" target="inlove_main">

till:
<a href="inlove.php?ID=<?=$rad[id]?>" target="_top">

Nu kommer ID och nummer upp i addressen men fortfarande inget i inlove_main.php , är precis som om den ej hittar variablen eller nått, jag vet ej.

MatteMedlem sedan aug. 20002 975 inlägg
#7

För felsökning:

1. Lägg till echo $_GET['ID']."<br>"; överst på din sida.

2. Efter satsen $sql = "SELECT .... , lägg till echo $sql."<br>"; på raden under.

Lundb3rgMedlem sedan maj 200240 inlägg
#8

Näpp, kommer inte fram något, .....
hmmmmmmmmmssss....

MatteMedlem sedan aug. 20002 975 inlägg
#9

För felsökning:

Lägg till

echo "1: ".$HTTP_GET_VARS['ID']."<br>"; 
echo "2: ".$ID."<br>";

överst på din sida.

Förutsättning: ?ID=något finns i URL

Lundb3rgMedlem sedan maj 200240 inlägg
#10

Nej det kommer inte fram något, men addressen i addressfältet är: http://localhost/hello/inlove.php?ID=1

fast sidan som jag lagt det du skrev i är iofs inlove-main.php för jag skickade variablerna till inlove.php för om jag skickade dom till inlove-main.php så dök dom inte upp i address fältet :/ ....

*fattar inte*

MatteMedlem sedan aug. 20002 975 inlägg
#11

Nu ska vi se om jag förstod rätt.

Du har ett frameset som heter inlove.php. Som exempel kan vi anta att det har följande innehåll:

<frameset rows="100, *">
<frame src="menu.html" name="menu">
<frame src="inlove-main.php" name="inlove-main">
</frameset>

Länkar du då <a href="inlove-main.php?ID=1" target="inlove-main">Länk</a> så kan du i filen inlove-main.php ta emot variabeln med $_GET['ID'].
Dock kommer inget att ses i adressfältet.

Länkar du <a href="inlove.php?ID=1" target="top">Länk</a> så kommer det att synas i adressfältet, men eftersom filen inlove-main.php inte har fått något skickat till sig, så kommer det inte att hända något där. Vill du att det även ska hända något i inlove-main.php får du isåfall skriva om ditt frameset till:

<frameset rows="100, *">
<frame src="menu.html" name="menu">
<frame src="inlove-main.php?<?=$_SERVER['QUERY_STRING'] ?>" name="inlove-main">
</frameset>

BRASKLAPP
Använder du en PHP-version tidigare än 4.1.0 så byter du ut $_GET och $_SERVER mot $HTTP_GET_VARS och $HTTP_SERVER_VARS.

249 ms totalt · 3 externa anrop · v20260731065814-full.2b84b982
125 ms — hämta forumlista (db)
118 ms — hämta statistik (db)
129 ms — hämta tråd, inlägg och bilagor (db)