Avatar billede anderseiler Nybegynder
02. marts 2006 - 19:47 Der er 11 kommentarer og
1 løsning

variabel ind i script

Hej.. Jeg er ret dum til det med JS, så bær over med mig hvis jeg spørger dumt :)

Men jeg har følgende kode:

<script type="text/javascript">
  var doExit = 1;
  window.onunload = function() {
      if ( doExit == 1 )
      {
        window.open( 'slet_db.php', 'onexitwin', 'width=200,height=200,menubar=yes,location=no,resizable=no,scrollbars=no,status=n' );
      }
  }
</script>

Den fungerer i og for sig også godt nok. Men i slet.php har jeg et problem. Jeg skal bruge php variablen $time, i slet.php. Men hvordan får jeg den fra det dokument jeg kommer fra til slet.php, som bliver åbnet via js scriptet?

Mvh
Anders
Avatar billede freesite Nybegynder
02. marts 2006 - 22:51 #1
hvad med at gemme den i en cookie
http://www.w3schools.com/js/js_cookies.asp

//----------------- java script -------------
function setCookie(c_name,value,expiredays)
{var exdate=new Date()exdate.setDate(expiredays)
document.cookie=c_name+ "=" +escape(value)+
((expiredays==null) ? "" : ";expires="+exdate)
}
//-------------------------------------------



og så åbne cookien i php
//--------------php--------------------------
$tmp=$_COOKIE["c_name"];

//-------------------------------------------
Avatar billede freesite Nybegynder
02. marts 2006 - 22:54 #2
og så kan du jo bare linke via
<a href="bla.html" onclick='setCookie(c_name,value,expiredays)'
>bla<a>
Avatar billede freesite Nybegynder
02. marts 2006 - 22:56 #3
og så evt slette den i slet_db.php hvis du ikke ønsker at den skal ligge i klienten, når du er færdig med den
Avatar billede mclemens Nybegynder
02. marts 2006 - 22:57 #4
... Virker det her for dig?

<script type="text/javascript">
var doExit = 1;
window.onunload = function() {
if(doExit == 1 )
{window.open('slet_db.php?time=<?php echo time(); ?>','onexitwin','width=200,height=200,
menubar=yes,location=no,resizable=no,scrollbars=no,status=n' );
      }
  }
</script>



slet_db.php
<?php
$time=ereg_replace("[]<>£\$\€\+^¨~'*.:,;_½§!\"#¤%&()=`|´}{[]","",$_GET[time]);
?>
Avatar billede freesite Nybegynder
02. marts 2006 - 23:02 #5
ellers skal du gøre som du ligger op til med at sende den som en variable over url'en, er ikke lige klar over hvordan i javascript

kunne forestille mig det lignede php

//----------------php----------------------------------
echo="<a href=\'slet_db.php?num=$variablen\'>Forige</a>";

kunne forestille mig i javascript
------------------------------javascript--------------
document.write("<a href=\'slet_db.php?num='+variablen+'\'>Forige</a>");

html
Avatar billede anderseiler Nybegynder
03. marts 2006 - 10:18 #6
mclemens: dit virkede i første forsøg. Og i slet.php behøvede jeg blot echo $_GET['time']; Alt det med ereg_replace... behøver jeg slet ikke.

Smid et svar hvis du vil have point (:

Tak for hjælpen!

Mvh
Anders
Avatar billede mclemens Nybegynder
03. marts 2006 - 10:25 #7
svar...
- ereg_replace bruger jeg normalt til beskyttelse af $_GET injection...
Avatar billede anderseiler Nybegynder
03. marts 2006 - 10:27 #8
Okay... Men adresselinen bliver slet ikke vist i slet_db.php, så er det vel nok i sig selv? Som du kan se i mit første indlæg, så er adresselinen slået fra :) Men kan sagtens forstå hvad du mener (:

Men hele systemet bliver kørt gennem en iframe, så adresselinen er aldrig tilgængelig (: men det virker stadig fint (:

Uanset, tak for hjælpen

Mvh
Anders
Avatar billede mclemens Nybegynder
03. marts 2006 - 10:34 #9
Det burde være ok - da adresselinjen ikke er synlig(lidt sværere at opdage at en $_GET variabel overføres) ... det er bare en dårlig vane jeg har med at ligeså snart jeg ser en $_GET eller $_POST variabel så bliver jeg "paranoid" og kaster den gennem en ereg_replace ... ;)
Avatar billede anderseiler Nybegynder
03. marts 2006 - 10:36 #10
Det er skam også fint nok. Selvom jeg ikke fatter en halv meget af hvad der står i den ereg_replace du har skrevet, så virker det nok :P
Avatar billede mclemens Nybegynder
03. marts 2006 - 10:42 #11
ereg_replace erstatter alle disse tegn:
]<>£\$€+^¨~'*.:,;_½§!\"#¤%&()=`|´}{[
med: "" (ingenting)
i denne variabel: $_GET[time]

... hvis magic_quotes er på burde det "hvist" heller aldrig være nødvendigt ...
Avatar billede anderseiler Nybegynder
03. marts 2006 - 10:45 #12
Det er mega smart :P Så lærte jeg også lidt i dag :) hehe....

igen så takker jeg (:

Mvh
Anders
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