Avatar billede kgp43 Nybegynder
28. juni 2004 - 14:43 Der er 24 kommentarer og
1 løsning

redir med popup

Hejsa,

Jeg har en redir der loader en sti i min database (med header). Er der muligt at få en popup samtidig med at viser filen? Skal man så ikke bruge 2 headers? Kan det lade sig gøre?
Avatar billede kgp43 Nybegynder
28. juni 2004 - 14:45 #1
Det var da vist lidt svært at læse :P
Jeg prøver lige igen:

Kan det lade sig gøre at anvende 2 headers på den samme side?
Jeg har et redir, der loadet en fil (med leader). Vil gerne have det sådan at den viser en popup samtidig med at den loader filen.
Avatar billede dennismp Nybegynder
28. juni 2004 - 14:53 #2
jeg tror du skal gøre det vha javascript og evt meta-tags.
Avatar billede kgp43 Nybegynder
28. juni 2004 - 14:59 #3
okay, men min side indeholder ikke noget <head>, det er ren php. Så JS er da udelukket?
Avatar billede kgp43 Nybegynder
28. juni 2004 - 15:02 #4
Jeg smider lige min kode herind når jeg kommer hjem
Avatar billede dennismp Nybegynder
28. juni 2004 - 15:07 #5
for at lave en popup, skal du bruge javascript (eller html med target=_new - men så kan du ikke kontrollerer størrelsen) - så du skal sende noget html+javascript afsted.
Avatar billede kgp43 Nybegynder
28. juni 2004 - 15:25 #6
hmmm, sådan virker mit redir:

- Brugeren uploader en fil
- Brugeren får en url ala dette der: www.savefile.com/redir.php?id=123455445
- Når brugeren så klikker på linket, så hentes filen og standard download boksen springer frem (der bliver ikke loadet en ny side).

Er det muligt at lave det, så jeg får min egen popup frem samtidig? Vil jeg ikke ødelægge mit redir, ved at indsætte html og head?
Avatar billede dennismp Nybegynder
28. juni 2004 - 15:29 #7
Ikke uden at sende html kode. Men kan du ikke bare gøre det, og så lave en meta-refresh i koden der sender brugeren videre til selve filen han skal downloade..
Avatar billede kgp43 Nybegynder
28. juni 2004 - 16:03 #8
jeg ved ikke lige hvad det meta-refresh er for noget. Vil resultatet stadig være det samme (brugeren må ikke bliv sendt videre til en ny side)?
Avatar billede dennismp Nybegynder
28. juni 2004 - 16:09 #9
Det vil virker som på sourceforge.

Mna ser en side og så går der x antal sekunder, så kommer den download-dialogbox. prøv evt her (bare tryk cancel)

http://prdownloads.sourceforge.net/bzflag/bzflag-1.10.6-1.W32_high_res.exe?
use_mirror=heanet
Avatar billede kgp43 Nybegynder
28. juni 2004 - 16:31 #10
Men så kan brugeren ikke anvende "hotlinking" til deres filer?
Avatar billede dennismp Nybegynder
28. juni 2004 - 16:33 #11
jo, men det kan de jo også ved redirect.
Avatar billede dennismp Nybegynder
28. juni 2004 - 16:33 #12
(vha headers)
Avatar billede kgp43 Nybegynder
28. juni 2004 - 16:44 #13
Jeg tror vi snakker forbi hinanden.
brugerne på "ikke" blive sendt videre til en anden side. redir.php skal virke på samme måde som om man link'er direkte til den pågældende fil, er dette muligt (samtidig med en popup)?
Avatar billede kgp43 Nybegynder
28. juni 2004 - 16:45 #14
Dette er min redir.php:

<?
include("/home/savefile/public_html/db.php");

//Adding slashes to the variable
function my_addslashes($streng){
  return get_magic_quotes_gpc()?$streng:addslashes($streng);
}

$id = my_addslashes($id);

$ip = getenv("REMOTE_ADDR");
$referer = $_SERVER['HTTP_REFERER'];

        // Find the filename and dest
        $query = mysql_query("SELECT * FROM files WHERE id='$id' ");
        $query = mysql_fetch_array($query);
        $file_name = $query[file_name];
        $file_ext = $query[file_ext];
       
        /*
        //Renaming the filename
        $random = mt_rand(500,9999999999);
        $random .= ".".$file_ext;
        rename("/home/savefile/public_html/users/uploads/$file_name", "/home/savefile/public_html/users/uploads/$random");
        $file_name = $random;
        mysql_query("UPDATE files SET last_load=now(), clicks=clicks+1, file_name='$file_name' WHERE id='$id'");
        */
       
        mysql_query("UPDATE files SET last_load=now(), clicks=clicks+1 WHERE id='$id'");
        mysql_query("INSERT INTO redir (id, file_id, ip, date, referer) values
                                  ('', '$id', '$ip', now(), '$referer')");
       
        if (($file_ext == jpg) || ($file_ext == jpeg) || ($file_ext == gif) || ($file_ext == bmp) || ($file_ext == png) || ($file_ext == swf)) {
            header("Location: http://www.savefile.com/users/uploads/$file_name");
        } else {
            include("/home/savefile/public_html/redir_show.php");
        }
?>
Avatar billede dennismp Nybegynder
28. juni 2004 - 16:50 #15
Det er ikke så godt, hvis vi gør det :)

Når du sender dette til brugeren, så laver du jo en redirect. Hvad forhindre mig at bruge denne direkte, fremover?

header("Location: http://www.savefile.com/users/uploads/$file_name");
Avatar billede kgp43 Nybegynder
28. juni 2004 - 18:01 #16
hmmmm. Du mener hvorfor du ikke bare kan skrive "http://www.savefile.com/users/uploads/$file_name" med det samme?


Det gør brugeren allerede. Mit system ændre filnavne hver time, så brugeren er nød til at anvende stien (den du henvender til). Mod_rewrite laver linket om til en variable som så køres igennem overstående kode. Hvis du finder et smuthul så råb endelig op.

Har du et forslag til popup'en?
Avatar billede dennismp Nybegynder
28. juni 2004 - 18:28 #17
Ah, så brugeren kender navnet i en time. Det vil nok virke fint..

så brugeren "downloader" redir.php som så redirecter til den rigtige fil.

kan redirect ikke laves om, så den viser noget html som laver popup'en, og så bruger meta til at sætte download'en igang (istedet for at du bruger header("Location: ..")

Vil det ikke virke?
Avatar billede dennismp Nybegynder
28. juni 2004 - 18:30 #18
Et eksempel på meta-refresh hvis du ikke har set den før:

<html>
  <head>
    <META HTTP-EQUIV="refresh" content="5; URL=http://www.savefile.com/users/uploads/enfil.exe">
  </head>
.. osv

5 betyder at den venter 5 sekunder før der redirectes, og url'en er der den redirect'es til.
Avatar billede kgp43 Nybegynder
28. juni 2004 - 18:47 #19
Så kan de ikke linke direkte til filen (på min server).

Som det er nu, kan brugerne linke til filen fra deres egen hjemmeside (eller forums) på denne måde:

<a href="http://www.savefile.com/users/uploads/456564">download filen her</a>
Avatar billede kgp43 Nybegynder
28. juni 2004 - 19:03 #20
Når de så klikker på "download filen her" så kommer den standard download ting frem (uden at brugeren bliver sendt videre). Vil så gerne have en popup samtidig - håber du forstår
Avatar billede dennismp Nybegynder
28. juni 2004 - 19:11 #21
jeg tror ikke du kan gøre det fra dit script.

men det link folk trykker på, kan du ikke lave noget javascript på det link?

<a href="http://hvorfilnuer.com" onClick="javascript der laver popup">Download filen her</a>

?
Avatar billede kgp43 Nybegynder
28. juni 2004 - 21:19 #22
Så kan de bare flerne onClick="...." fra linket ik?
Det kan ikke lade sig gøre at sætte to headers, så i stedet for at hente én side henter den to?
Avatar billede dennismp Nybegynder
28. juni 2004 - 21:39 #23
Det kan du ikke. Desværre. Browseren vil bare vælge een af dem.

Så vidt jeg forstår dig. Så vil du gerne have muligheden for at vise at det er dig de henter fra / vise et banner - så du også får lidt ud af at folk kan hente filer fra dig.

Her er hvad jeg ville gøre:

Lave en downloadside, ligesom sourceforge-linket tidligere.

Denne side laver en $_SESSION['maydownload'] = true; og viser det der nu skal vises til brugeren før man kan downloade (evt også lave popup) .. Vha meta-refresh (og evt link) kalder den så selve redir.php filen. I denne fil, tjekker du så om $_SESSION['maydownload'] er true, hvis den ikke er, kan du jo snildt redirecte til "download siden" (som så sætter session) - hvis der derimod er, jammen så reidrecter du til den rigtige fil.
Avatar billede kgp43 Nybegynder
29. juni 2004 - 09:08 #24
Det vil jeg prøve.
Takker for hjælpen. Ligger du lige et svar så du kan få point :)
Avatar billede dennismp Nybegynder
29. juni 2004 - 11:05 #25
Håber du kan bruge det :)
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