Avatar billede tupsy Nybegynder
04. marts 2003 - 21:09 Der er 16 kommentarer og
3 løsninger

Overfør variabler???

Jeg har webhotel hos web10.dk
De har lige skiftet til nye servere.

Nu fungere mine forms og send af variabler mellem sider ikke mere..
De siger det er en ny version af php de kører med nu, men..

Jeg har indtil nu bruger feks. testside.php?id=2 til at sende variabler..
Er det forkert i den nye version af PHP og hvis ja, hvordan gør jeg så??

Kan man på en eller anden måde se om overførsel af variabler er slået fra på mit hotel???

Min forms virker heller ikke mere....

Håber I har nogen ideer......

Tupsy!!!
Avatar billede schaefner Juniormester
04. marts 2003 - 21:11 #1
På den side hvor du vil ha' dine variabler udskrevet, skal du gøre sådan her:

<?php
if(isset($_GET['id'])) {
  echo $_GET['id'];
} else {
  echo "ikke sat";
}
?>
Avatar billede schaefner Juniormester
04. marts 2003 - 21:12 #2
if er selvfølgelig ikke nødvendig, men bare for at se om variablen er er sat :)
Avatar billede fangel Nybegynder
04. marts 2003 - 21:12 #3
most likly fordi de ikke auto-registrere globale variabler (og det fattede du intet af, vel?)...

dvs at du i dit tilfelde skal bruge $_GET['id'] istedet for $id... finder lige hele smøren... har skrevet den ca. 100 gange før, så laver lige noget copy-paste fra et tidligere...

Morten
Avatar billede tefcke Nybegynder
04. marts 2003 - 21:15 #4
du skal tilgå overførte variabler i addresse linien på flg. måde:
$lokal_var = $_GET['id'];

Her er et linie som du lige kan tjekke om du får fat i din $id variable (smid den ind på testside.php):
$_GET['id'] == 2 ? print("Du har fået fat i \$id") : print("Du har _IKKE_ fået fat i \$id");
Avatar billede fangel Nybegynder
04. marts 2003 - 21:15 #5
copy-paste fra http://www.eksperten.dk/spm/321341 (min kommentar fra 24/02-2003 21:27:59)

---
gså så lige lidt quote's så PHP ikke kommer med warnings... ;)

if($_POST['navn']){
    echo "Hej $_POST['navn'], hvordan har du det idag?";
}

og grunden til at dette vil virke er at din server kører med noget kaldet "reigster-globals" til "off"... dette gør at variabler der ikke bliver sat af PHP selv skal kaldes alt efter hvor man vil finde dem... ;)

$_POST['varname'] = variabler der er blevet sendt via en FORM med method="POST"

$_GET['varname'] = variabler fra adresselinien, eg: index.php?side=index

$_COOKIE['varname'] = variabler fra cookies

$_REQUEST['varname'] = alle de tre ovenstående samlet i en

$_SESSION['varname'] = variabler fra sessions

$_ENV['varname'] = servervariabler om "enviroment" ting (brugerens IP)

$_SERVER['varname'] = ass. servervariabler som fx PHP_SELF

det var vidst ca. det... husk dem, og så kan du lave meget pænere (og sikkrere) PHP kode

enkelte gamle servere hedder de dog HTTP_*_VARS['varname'], men på alle nyere servere kan du bare bruge dem så jeg har skrevet ovenover...
---

Morten
Avatar billede tefcke Nybegynder
04. marts 2003 - 21:16 #6
skal selvfølig ikke være $_GET['id'] == 2, men isset($_GET['id'])
Avatar billede schaefner Juniormester
04. marts 2003 - 21:18 #7
tefcke  >> I dit eksempel udskriver du variablen $id og det vil jo lige netop ikke virke ;)
Avatar billede fangel Nybegynder
04. marts 2003 - 21:19 #8
hov, jeg fik lidt for meget med... se bort fra de første 6 linier
Avatar billede tupsy Nybegynder
04. marts 2003 - 21:26 #9
Og så liige for prins knud...

Hvis I nu skulle ændre denne linie :
print "<img src=\"$url\" border=\"0\" alt=\"Klik for at lukke vinduet.\">";

Hvad ville I så skrive ved $url
Avatar billede tupsy Nybegynder
04. marts 2003 - 21:27 #10
Det er overført via adresselinien...
Avatar billede tupsy Nybegynder
04. marts 2003 - 21:34 #11
Jeg har prøvet dette :
print "<img src=\"$_GET['url']\" border=\"0\" alt=\"Klik for at lukke vinduet.\">"; 

Men det virker ikke..

Se her fot at teste...
http://gb0749.web03.talkactive.net/billeder36.php
Prøv at klikke på et af billederne...
Avatar billede schaefner Juniormester
04. marts 2003 - 21:35 #12
Prøv:
print "<img src=\".$_GET['url'].\" border=\"0\" alt=\"Klik for at lukke vinduet.\">";
Avatar billede schaefner Juniormester
04. marts 2003 - 21:36 #13
hov
print "<img src=\"".$_GET['url']."\" border=\"0\" alt=\"Klik for at lukke vinduet.\">";
Avatar billede schaefner Juniormester
04. marts 2003 - 21:38 #14
Du kan også gøre sådan hvis du synes det nemmere:
$url = $_GET['url'];
print "<img src=\"$url\" border=\"0\" alt=\"Klik for at lukke vinduet.\">";
Avatar billede tupsy Nybegynder
04. marts 2003 - 21:49 #15
10000000 tak... :-)
Avatar billede tupsy Nybegynder
04. marts 2003 - 21:59 #16
Nu vi er ved det..
Er der så kommet en ny måde at sende mail på??
Jeg har indtil nu brugt :
mail("$email", "Sendt fra www.BLACKSOUND.dk", $mail1, "From: $navn2 <$email2>\nReply-to: $navn2 <$email2>\nContent-Type:
text/html; charset=iso-8859-1");

Men det ser HELLER ikke ud til at funke mere.. (Jeg har lavet variablerne om...)
P.S. Ekstra point gives selvfølgelig...
Avatar billede schaefner Juniormester
04. marts 2003 - 22:00 #17
hvordan har du lavet variablerne om?
Avatar billede tupsy Nybegynder
04. marts 2003 - 22:02 #18
Feks : $url = $_GET['url'];

Og de bliver skrevet rigtigt...
Har prøvet at udskrive dem...
Avatar billede tupsy Nybegynder
04. marts 2003 - 22:14 #19
Her kommer hele min mail..
Bemærk at det er en html mail....

<?php

$email = $_REQUEST['email'];
$navn = $_REQUEST['navn'];
$email2 = $_REQUEST['email2'];
$navn2 = $_REQUEST['navn2'];
$besked = $_REQUEST['besked'];
$url2 = $_REQUEST['url2'];


if ($email && $navn && $email2 && $navn2) {

$besked = urldecode($besked);
$besked = nl2br($besked);
$besked = stripslashes($besked);

$mail1 = "<html><head></head><body bgcolor=\"#585f66\" text=\"#ffffff\"><center><a href=\"http://www.blacksound.dk\"><img

src=\"http://users.cybercity.dk/~bkb8914/blacksound/maillogo.JPG\" border=\"0\"></a><br><TABLE BORDER=0 WIDTH=60%>";
$mail1 = $mail1 . "<tr><td width=100%><font face=\"Tahoma\" SIZE=\"2\"><b>Hejsa " . $navn . " </b><br><br><b>Din ven - " .

$navn2 . " - synes lige at du skulle kigge på dette billede.</b><br><br><img src=\" " . $url2 . " \" border=\"0\"><br><b>Og

har følgende kommentar til det/dig :<br><i> " . $besked . "</i></b><br><br><b>Se flere partybilleder på www.BLACKSOUND.dk

</b><br><br><b>Med Venlig Hilsen</b><br><b>Discotheque</b><br><b>BLACK SOUND</b><br></td></tr></table></font></center>";
$mail1 = $mail1 . "</td></tr></table></body></html>";


mail("$email","Sendt fra www.BLACKSOUND.dk",$mail1,"From:$navn2<$email2>\nReply-to:$navn2<$email2>\nContent-Type:
text/html; charset=iso-8859-1");


Almindelige tekst mails virker fint...
Men ikke html mails..
Hvorfor mon??
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester