За последние 24 часа нас посетили 24480 программистов и 1722 робота. Сейчас ищет 1791 программист ...

echo

Тема в разделе "Прочие вопросы по PHP", создана пользователем eaglenix, 12 июл 2006.

  1. eaglenix

    eaglenix Активный пользователь

    С нами с:
    12 июл 2006
    Сообщения:
    47
    Симпатии:
    0
    Как сделать чтоб ссылка <?php linklokurl('text.txt',10,1);?> была после echo и работала?Как такое можно реализовать?Помогите пожалуйста.

    Код (Text):
    1. <?php include"linklokurl.php"; ?>
    2. <img src="1.jpg"><br>
    3. <?
    4. if (isset($_SERVER["PHP_AUTH_USER"])) {
    5.    echo "Показывает текст зарегистрированному пользователю";
    6. } else {
    7.    echo "<a href=<?php linklokurl('text.txt',10,1);?>>скачать</a>";
    8. }
    9. ?>
     
  2. simpson

    simpson Активный пользователь

    С нами с:
    11 фев 2006
    Сообщения:
    1.650
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    PHP:
    1. <?php include 'linklokurl.php'; ?>
    2. <img src="1.jpg"><br>
    3. <?php
    4. if (isset($_SERVER["PHP_AUTH_USER"])) {
    5.    echo 'Показывает текст зарегистрированному пользователю';
    6. } else {
    7.    echo '<a href="' . linklokurl('text.txt', 10, 1) . '">скачать</a>';
    8. }
    9. ?>
     
  3. eaglenix

    eaglenix Активный пользователь

    С нами с:
    12 июл 2006
    Сообщения:
    47
    Симпатии:
    0
    Сейчас он не считает за ссылку <a href="' . linklokurl('text.txt', 10, 1) . '">
    получается так:
    /index.php/text.txt?linklokauth=text.txt%2C1152706329%2C1%2C82cd986c57deb4c2710c7150b15bbeeb и только потом ссылка скачать
    ??
     
  4. simpson

    simpson Активный пользователь

    С нами с:
    11 фев 2006
    Сообщения:
    1.650
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    покажи код функции linklokurl.
     
  5. eaglenix

    eaglenix Активный пользователь

    С нами с:
    12 июл 2006
    Сообщения:
    47
    Симпатии:
    0
    Код (Text):
    1. <?php
    2.  
    3.  
    4.   $LinklokKey="secretkeyword";
    5.   $LinklokLocation="http://www.test1.ru/down/";
    6.     $ManualPassword="letmein";
    7.     $ErrorTemplate="";
    8.   $LinklokLog="";
    9.  
    10.   // The following variables must be set if you wish to use the email links feature of Linklok
    11.  
    12.   $YourCompany="CC";
    13.   $YourEmail="me@somehost.ru";
    14.   $EmailTemplate="";
    15.   $HTMLEmail="Y";
    16.  
    17.   // List of email addresses / services to block if required. You can add delete from this list
    18.  
    19.   $FreeEmail[]="yahoo.";
    20.   $FreeEmail[]="hotmail.";
    21.   $FreeEmail[]="altavista.";
    22.   $FreeEmail[]="prontomail.";
    23.   $FreeEmail[]="talk21.";
    24.   $FreeEmail[]="address.";
    25.   $FreeEmail[]="mail.";
    26.   $FreeEmail[]="@australia.";
    27.   $FreeEmail[]="boardermail.";
    28.   $FreeEmail[]="@canada.";
    29.   $FreeEmail[]="bolt.";
    30.   $FreeEmail[]="dbzmail.";
    31.   $FreeEmail[]="etoast.";
    32.   $FreeEmail[]="fastmail.";
    33.   $FreeEmail[]="freemail.";
    34.   $FreeEmail[]="icqmail.";
    35.   $FreeEmail[]="jaydemail.";
    36.   $FreeEmail[]="keromail.";
    37.   $FreeEmail[]="linuxmail.";
    38.   $FreeEmail[]="lycos.";
    39.   $FreeEmail[]="myrealbox.";
    40.   $FreeEmail[]="netscape.";
    41.   $FreeEmail[]="popmail.";
    42.   $FreeEmail[]="themail.";
    43.   $FreeEmail[]="toast.";
    44.   $FreeEmail[]="webcity.";
    45.  
    46.   ///////////////////////////////////////////////////////////////////////////////////////////////////////
    47.  
    48.     if (!empty($HTTP_GET_VARS)) while(list($name, $value) = each($HTTP_GET_VARS)) $$name = $value;
    49.     if (!empty($HTTP_POST_VARS)) while(list($name, $value) = each($HTTP_POST_VARS)) $$name = $value;
    50.  
    51.   if ((isset($HTTP_GET_VARS['LinklokKey'])) || (isset($HTTP_POST_VARS['LinklokKey'])))
    52.   {
    53.     ShowMessage($ErrorTemplate,"Access denied");
    54.     exit;
    55.   }
    56.     if ((isset($HTTP_GET_VARS['ManualPassword'])) || (isset($HTTP_POST_VARS['ManualPassword'])))
    57.     {
    58.     ShowMessage($ErrorTemplate,"Access denied");
    59.       exit;
    60.     }
    61.   if (isset($HTTP_GET_VARS['linklokauth']))
    62.     $linklokauth=$HTTP_GET_VARS['linklokauth'];
    63.   if (isset($HTTP_POST_VARS['linklokauth']))
    64.     $linklokauth=$HTTP_POST_VARS['linklokauth'];
    65.   if (isset($HTTP_GET_VARS['linklokform']))
    66.     $linklokform=$HTTP_GET_VARS['linklokform'];
    67.   if (isset($HTTP_POST_VARS['linklokform']))
    68.     $linklokform=$HTTP_POST_VARS['linklokform'];
    69.   $ipaddr=$HTTP_SERVER_VARS['REMOTE_ADDR'];
    70.   $thispage=$HTTP_SERVER_VARS['PHP_SELF'];
    71.   $thisurl="http://".$HTTP_SERVER_VARS['HTTP_HOST'].$thispage;
    72.     // If ?orderform them request password
    73.     if ((isset($manualentry)) || (isset($MANUALENTRY)))
    74.     {
    75.       print "<html><head><title>Linklok URL Manual Entry Form</title></head><body>\n";
    76.       print "<script language=\"JavaScript\">\n";
    77.       print "<!-- JavaScript\n";
    78.       print "function validateform(form)\n";
    79.       print "{\n";
    80.       print "  if (form.password.value==\"\")\n";
    81.       print "  {\n";
    82.       print "    alert(\"Please enter the password\")\n";
    83.       print "    form.password.focus()\n";
    84.       print "    return\n";
    85.       print "  }\n";
    86.       print "  form.submit();\n";
    87.       print "}\n";
    88.       print "// - JavaScript - -->\n";
    89.       print "</script>\n";
    90.       print "<form name=\"form1\" method=\"post\" action=\"$thisurl\">\n";
    91.       print "<p align=\"left\"><font face=\"Arial\" color=\"#333399\"><span style=\"font-size:16pt;\"><b>Linklok Manual Entry Form</b></span></font></p>\n";
    92.       print "<table border=\"0\" cellpadding=\"0\" cellspacing=\"10\" bgcolor=\"#FFFFCC\">\n";
    93.       print "<tr><td><p><font face=\"Arial\" size=\"2\">Password</font></p></td>\n";
    94.       print "<td><p><input type=\"password\" name=\"password\" maxlength=\"50\" size=\"30\"></p></td></tr><tr><td><p>&nbsp;</p></td>\n";
    95.       print "<td align=\"right\"><p><input type=\"button\" name=\"button1\" value=\"Login\" onclick=\"validateform(this.form);\"></p></td>";
    96.       print "</tr></table></form></body></html>\n";
    97.       exit;
    98.     }
    99.  
    100.     if (($ManualPassword!="") && (isset($password)) && ($ManualPassword!=$password))
    101.     {
    102.       ShowMessage($ErrorTemplate,"Incorrect password.");
    103.       exit;
    104.     }
    105.   if ($linklokauth!="")
    106.   {
    107.     // Request to access file
    108.     linklokgetfile($linklokauth);
    109.   }
    110.   if ($linklokform!="")
    111.   {
    112.     // Request to send email with links
    113.     linklokemaillinks($HTTP_GET_VARS,$HTTP_POST_VARS,$FreeEmail);
    114.   }
    115.  
    116.     // If password entered and correct then display manual order form
    117.     if (($ManualPassword!="") && ($ManualPassword==$password))
    118.     {
    119.       print "<html><head><title>Linklok URL Manual Entry Form</title></head><body>\n";
    120.       print "<script language=\"JavaScript\">\n";
    121.       print "<!-- JavaScript\n";
    122.       print "function validateform(form)\n";
    123.       print "{\n";
    124.       print "  if (form.f0.value==\"\")\n";
    125.       print "  {\n";
    126.       print "    alert(\"Please select at least one item\")\n";
    127.       print "    form.f0.focus()\n";
    128.       print "    return\n";
    129.       print "  }\n";
    130.       print "  if (ValidateEmail(form.email.value)==false)\n";
    131.       print "  {\n";
    132.       print "    alert(\"Please enter a valid email address\")\n";
    133.       print "    form.email.focus()\n";
    134.       print "    return\n";
    135.       print "  }\n";
    136.       print "  form.submit();\n";
    137.       print "}\n";
    138.       print "\n";
    139.       print "function ValidateEmail(str)\n";
    140.       print "{\n";
    141.       print "    // are regular expressions supported?\n";
    142.       print "    var supported = 0;\n";
    143.       print "    if (window.RegExp) {\n";
    144.       print "      var tempStr = \"a\";\n";
    145.       print "      var tempReg = new RegExp(tempStr);\n";
    146.       print "      if (tempReg.test(tempStr)) supported = 1;\n";
    147.       print "    }\n";
    148.       print "    if (!supported)\n";
    149.       print "      return (str.indexOf(\".\") > 2) && (str.indexOf(\"@\") > 0);\n";
    150.       print "    var r1 = new RegExp(\"(@.*@)|(\\\.\\\.)|(@\\\.)|(^\\\.)\");\n";
    151.       print "    var r2 = new RegExp(\"^.+\\\@(\\\[?)[a-zA-Z0-9\\\-\\\.]+\\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\\]?)$\");\n";
    152.       print "    return (!r1.test(str) && r2.test(str));\n";
    153.       print "}\n";
    154.       print "// - JavaScript - -->\n";
    155.       print "</script>\n";
    156.       print "<form name=\"form1\" method=\"post\" action=\"$thisurl\">\n";
    157.       print "<input type=\"hidden\" name=\"password\" value=\"$password\">\n";
    158.     print "<input name=\"m\" type=\"hidden\" value=\"0\">\n";
    159.     print "<input name=\"a\" type=\"hidden\" value=\"$password\">\n";
    160.     print "<input name=\"g\" type=\"hidden\" value=\"\">\n";
    161.     print "<input name=\"linklokform\" type=\"hidden\" value=\"1\">\n";
    162.       print "<p align=\"left\"><font face=\"Arial\" color=\"#333399\"><span style=\"font-size:16pt;\"><b>Linklok Manual Entry Form</b></span></font></p>\n";
    163.       print "<table border=\"0\" cellpadding=\"0\" cellspacing=\"10\" bgcolor=\"#FFFFCC\">\n";
    164.       for ($i=0;$i<=9;$i++)
    165.       {
    166.         print "<tr>\n";
    167.         print "<td><p><font face=\"Arial\" size=\"2\">Item $i</font></p></td>\n";
    168.       $fnum="f".$i;
    169.       if ($$fnum!="")
    170.           print "<td><p><input name=\"f$i\" type=\"text\" value=\"".$$fnum."\"></p></td>\n";
    171.       else
    172.           print "<td><p><input name=\"f$i\" type=\"text\" value=\"\"></p></td>\n";
    173.         print "</tr>\n";
    174.       }
    175.       print "<tr><td><p><font face=\"Arial\" size=\"2\">Expiry Time</font></p></td>\n";
    176.       print "<td><p><select name=\"x\" size=\"1\">\n";
    177.     if ($x=="10")
    178.           print "<option selected value=\"10\">10 minutes</option>\n";
    179.     else
    180.           print "<option value=\"10\">10 minutes</option>\n";
    181.     if ($x=="60")
    182.           print "<option selected value=\"60\">1 Hour</option>\n";
    183.     else
    184.           print "<option value=\"60\">1 Hour</option>\n";
    185.     if ($x=="180")
    186.           print "<option selected value=\"180\">3 Hours</option>\n";
    187.     else
    188.           print "<option value=\"180\">3 Hours</option>\n";
    189.     if (($x=="1440") || (!isset($x)))
    190.           print "<option selected value=\"1440\">24 Hours</option>\n";
    191.     else
    192.           print "<option value=\"1440\">24 Hours</option>\n";
    193.     if ($x=="43200")
    194.           print "<option selected value=\"43200\">30 Days</option>\n";
    195.     else
    196.           print "<option value=\"43200\">30 Days</option>\n";
    197.     if ($x=="525600")
    198.         print "<option selected value=\"525600\">1 Year</option>\n";
    199.     else
    200.         print "<option value=\"525600\">1 Year</option>\n";
    201.     if ($x=="0")
    202.           print "<option selected value=\"0\">No Expiry</option>\n";
    203.         else
    204.           print "<option value=\"0\">No Expiry</option>\n";
    205.       print "</select></p></td></tr><tr><td><p><font face=\"Arial\" size=\"2\">Email address</font></p></td><td><p>\n";
    206.       print "<font face=\"Arial\"><span style=\"font-size:10pt;\"><input type=\"text\" name=\"email\" size=\"30\"></span></font></p></td></tr>\n";
    207.       print "<tr><td><p><font face=\"Arial\"><span style=\"font-size:10pt;\">&nbsp;</span></font></p></td>\n";
    208.       print "<td><p align=\"right\"><font face=\"Arial\"><span style=\"font-size:10pt;\"><input type=\"button\" name=\"Submit\" value=\"Send Links\" onclick=\"validateform(this.form);\">\n";
    209.       print "</span></font></p></td></tr></table></form></body></html>\n";
    210.       exit;
    211.     }
    212.  
    213.   function linklokurl($fname,$expiry,$dialog)
    214.   {
    215.      global $LinklokKey,$thispage,$NoExtraPath;
    216.      if ($expiry>0)
    217.        $expirytime=time()+($expiry*60);
    218.      else
    219.        $expirytime=0;
    220.      $auth=md5($LinklokKey.$fname.$expirytime);
    221.      $link=$fname.",".$expirytime.",".$dialog.",".$auth;
    222.      $link=rawurlencode($link);
    223.      // Get filename only
    224.      $i=strrpos($fname,"/");
    225.      if (is_integer($i))
    226.          $fnameonly=substr($fname,$i+1,strlen($fname)-i-1);
    227.      else
    228.        $fnameonly=$fname;
    229.      if ($NoExtraPath==1)
    230.          $link=$thispage."?linklokauth=".$link;
    231.      else
    232.          $link=$thispage."/".$fnameonly."?linklokauth=".$link;
    233.      print($link);
    234.   }
    235.  
    236.   function linklokemail($files,$expiry,$filter,$goto)
    237.   {
    238.      global $LinklokKey;
    239.      $fnames=explode(",",$files);
    240.      $tohash=$LinklokKey;
    241.      for ($k=0;$k<count($fnames);$k++)
    242.      {
    243.        print("<input name=\"f$k\" type=\"hidden\" value=\"$fnames[$k]\">\n");
    244.        $tohash.=$fnames[$k];
    245.      }
    246.      print("<input name=\"x\" type=\"hidden\" value=\"$expiry\">\n");
    247.      $tohash.=$expiry;
    248.      print("<input name=\"m\" type=\"hidden\" value=\"$filter\">\n");
    249.      $tohash.=$filter;
    250.      $hash=md5($tohash);
    251.      print("<input name=\"g\" type=\"hidden\" value=\"$goto\">\n");
    252.      print("<input name=\"a\" type=\"hidden\" value=\"$hash\">\n");
    253.      print("<input name=\"linklokform\" type=\"hidden\" value=\"1\">\n");
    254.   }
    255.  
    256.   function linklokgetfile($linklokauth)
    257.   {
    258.     global $LinklokKey, $LinklokLocation,$ErrorTemplate;
    259.     // Split linklokauth into its parts
    260.     $linklokauth=rawurldecode($linklokauth);
    261.     $fname=strtok($linklokauth,",");
    262.     $expirytime=strtok(",");
    263.     $dialog=strtok(",");
    264.     $auth=strtok(",");
    265.     $auth=trim($auth);
    266.     // Verify hash value to ensure nothing tampered wth
    267.     if (md5($LinklokKey.$fname.$expirytime)!=$auth)
    268.     {
    269.        ShowMessage($ErrorTemplate,"Linklok URL authentication failed");
    270.        exit;
    271.     }
    272.     // Check link hasn't expired
    273.     if ($expirytime!=0)
    274.     {
    275.       $curtime=time();
    276.       if ($curtime>$expirytime)
    277.       {
    278.         ShowMessage($ErrorTemplate,"Sorry but this Linklok link has expired.\n");
    279.         exit;
    280.       }
    281.     }
    282.     // Make full path or url to file
    283.     $link=$LinklokLocation.$fname;
    284.       // See if link is local path or URL
    285.       $pos=strpos(strtolower($link),"http://");
    286.       if (!is_integer($pos))
    287.       {
    288.         // If link is a local path then get local path and handle resume & download managers
    289.         $i=strrpos($link,"/");
    290.         $fname=substr($link,$i+1,strlen($link)-i);
    291.         $fsize=@filesize($link);
    292.         /* is resume requested? */
    293.         $headers = xgetallheaders();
    294.         if(isset($headers["Range"]))
    295.         {
    296.           header("HTTP/1.1 206 Partial content");
    297.           $val=split("=",$headers["Range"]);
    298.           if(ereg("^-",$val[1]))
    299.           {
    300.             $slen = ereg_replace("-","",$val[1]);
    301.             $sfrom = $fsize - $slen;
    302.             header("Content-Length: ".$slen);
    303.           }
    304.           else if(ereg("-$",$val[1]))
    305.           {
    306.             $sfrom = ereg_replace("-","",$val[1]);
    307.             $slen = $fsize - $sfrom;
    308.             header("Content-Length: ".(string)((int)$fsize-(int)$sfrom));
    309.           }
    310.           $br = $sfrom."-".(string)($fsize-1)."/".$fsize;
    311.           header("Content-Range: bytes $br");
    312.             $mimetype=getmimetype($link);
    313.             if (($dialog==1) || ($mimetype==""))
    314.         {
    315.               header("Content-type: application/octet-stream\n");
    316.               header("Connection: close");
    317.         }
    318.         else
    319.         {
    320.               header("Content-type: $mimetype\n");
    321.               header("Connection: close");
    322.         }
    323.           if (!($fh=@fopen($link,"rb")))
    324.           {
    325.               ShowMessage($ErrorTemplate,"Linklok could not open the file.");
    326.             exit;
    327.           }
    328.           fseek($fh, $sfrom);
    329.           @fpassthru($fh);
    330.         }
    331.         else
    332.         {
    333.           $i=strrpos($link,"/");
    334.           $fname=substr($link,$i+1,strlen($link)-i);
    335.           $size=@filesize($link);
    336.           if (!($fh=@fopen($link,"rb")))
    337.           {
    338.               ShowMessage($ErrorTemplate,"Linklok could not open the file.");
    339.             exit;
    340.           }
    341.             $mimetype=getmimetype($link);
    342.             if (($dialog==1) || ($mimetype==""))
    343.         {
    344.             header("Content-type: application/octet-stream\n");
    345.             header("Content-disposition: attachment; filename=".$fname."\n");
    346.         }
    347.         else
    348.         {
    349.               header("Content-type: $mimetype\n");
    350.         }
    351.           header("Content-transfer-encoding: binary\n");
    352.           header("Content-Length: ".$size."\n");
    353.           @fpassthru($fh);
    354.         }
    355.       }
    356.       else
    357.       {
    358.         // link is a URL rather than local path so do simple download
    359.         $i=strrpos($link,"/");
    360.         $fname=substr($link,$i+1,strlen($link)-i);
    361.         if (!($fh=@fopen($link,"rb")))
    362.         {
    363.           ShowMessage($ErrorTemplate,"Linklok could not open the file.");
    364.           exit;
    365.         }
    366.         $mimetype=getmimetype($link);
    367.         if (($dialog==1) || ($mimetype==""))
    368.       {
    369.             header("Content-type: application/octet-stream\n");
    370.             header("Content-disposition: attachment; filename=".$fname."\n");
    371.       }
    372.       else
    373.       {
    374.           header("Content-type: $mimetype\n");
    375.       }
    376.         header("Content-transfer-encoding: binary\n");
    377.         if ((int)$size>0)
    378.           header("Content-Length: ".$size."\n");
    379.         @fpassthru($fh);
    380.       }
    381.     exit;
    382.   }
    383.  
    384.   function linklokemaillinks($getvars, $postvars,$freem)
    385.   {
    386.     global $LinklokKey,$EmailTemplate,$YourCompany,$YourEmail,$thisurl,$LinklokLog,$NoExtraPath,$ManualPassword,$LinklokLocation,$HTMLEmail,$ErrorTemplate,$ipaddr;
    387.     $tohash=$LinklokKey;
    388.     for ($k=0;$k<10;$k++)
    389.     {
    390.       $var="f".$k;
    391.       if ((isset($getvars[$var])) && ($getvars[$var]!=""))
    392.       {
    393.         $fname[]=$getvars[$var];
    394.         $tohash.=$fname[$k];
    395.       }
    396.       if ((isset($postvars[$var])) && ($postvars[$var]!=""))
    397.       {
    398.         $fname[]=$postvars[$var];
    399.         $tohash.=$fname[$k];
    400.       }
    401.     }
    402.     if (isset($getvars['x']))
    403.     {
    404.       $expiry=$getvars['x'];
    405.       $tohash.=$expiry;
    406.     }
    407.     if (isset($postvars['x']))
    408.     {
    409.       $expiry=$postvars['x'];
    410.       $tohash.=$expiry;
    411.     }
    412.     if (isset($getvars['m']))
    413.     {
    414.       $filter=$getvars['m'];
    415.       $tohash.=$filter;
    416.     }
    417.     if (isset($postvars['m']))
    418.     {
    419.       $filter=$postvars['m'];
    420.       $tohash.=$filter;
    421.     }
    422.     if (isset($getvars['email']))
    423.       $clientemail=$getvars['email'];
    424.     if (isset($postvars['email']))
    425.       $clientemail=$postvars['email'];
    426.     $goto="";
    427.     if (isset($getvars['g']))
    428.       $goto=$getvars['g'];
    429.     if (isset($postvars['g']))
    430.       $goto=$postvars['g'];
    431.   // if filter set to 1 then block free email services listed above
    432.   if ($filter=="1")
    433.   {
    434.     for ($k=0; $k<count($freem);$k++)
    435.     {
    436.       $pos=strpos(strtolower($clientemail),strtolower($freem[$k]));
    437.       if (is_integer($pos))
    438.       {
    439.         ShowMessage($ErrorTemplate,"Linklok does not accept free email addresses.<BR><BR>Click your browsers BACK button and try again.");
    440.       exit;
    441.       }
    442.     }
    443.   }
    444.   $clientname="";
    445.     if (isset($getvars['name']))
    446.       $clientname=$getvars['name'];
    447.     if (isset($postvars['name']))
    448.       $clientname=$postvars['name'];
    449.     if (isset($getvars['a']))
    450.       $auth=$getvars['a'];
    451.     if (isset($postvars['a']))
    452.       $auth=$postvars['a'];
    453.   $hash=md5($tohash);
    454.   // If manual order password then override
    455.   $manualentry=False;
    456.   if (($auth==$ManualPassword) && ($ManualPassword!=""))
    457.   {
    458.     $manualentry=True;
    459.       $hash=$auth;
    460.   }
    461.   if ($hash!=$auth)
    462.   {
    463.     ShowMessage($ErrorTemplate,"Linklok form authentication failed");
    464.     exit;
    465.   }
    466.   if ($expiry>0)
    467.     $expirytime=time()+($expiry*60);
    468.   else
    469.     $expirytime=0;
    470.   // Now send email with download links to client
    471.   if ($EmailTemplate=="")
    472.   {
    473.       $subject = "Download Links from ".$YourCompany;
    474.       $mailBody="Please use the link(s) below to begin downloading.\n\n";
    475.       for ($k=0;$k<count($fname);$k++)
    476.       {
    477.         $auth=md5($LinklokKey.$fname[$k].$expirytime);
    478.         $link=$fname[$k].",".$expirytime.","."1".",".$auth;
    479.         $link=rawurlencode($link);
    480.       $reallocation=$LinklokLocation.$fname[$k];
    481.         // See if link is local path or URL
    482.       $fsize=0;
    483.         $pos=strpos(strtolower($reallocation),"http://");
    484.           if (!is_integer($pos))
    485.           $fsize=@filesize($reallocation);
    486.       // Get filename only
    487.       $i=strrpos($fname[$k],"/");
    488.       if (is_integer($i))
    489.           $fnameonly=substr($fname[$k],$i+1,strlen($fname[$k])-i-1);
    490.       else
    491.         $fnameonly=$fname[$k];
    492.         if ($NoExtraPath==1)
    493.           $link=$thisurl."?linklokauth=".$link;
    494.         else
    495.           $link=$thisurl."/".$fnameonly."?linklokauth=".$link;
    496.         if($HTMLEmail == "Y")
    497.       {
    498.             $mailBody.="To download ".$fnameonly." click the link below:\n";
    499.         $mailBody.="<a href=\"".$link."\">".$fnameonly."</a>";
    500.           if ($fsize!=0)
    501.                 $mailBody.=" (".FriendlyFileSize($fsize).")";
    502.             if ($expiry!="0")
    503.                 $mailBody.=" ~ Download link will expire in ".FriendlyExpiryTime($expiry).".\n";
    504.             else
    505.                 $mailBody.=" \n";
    506.             $mailBody.=" \n";
    507.       }
    508.       else
    509.       {
    510.             $mailBody.="To download ".$fnameonly." click the link below:\n".$link."\n";
    511.             $mailBody.=$fnameonly;
    512.           if ($fsize!=0)
    513.                 $mailBody.=" (".FriendlyFileSize($fsize).")";
    514.             if ($expiry!="0")
    515.                 $mailBody.=" ~ Download link will expire in ".FriendlyExpiryTime($expiry).".\n";
    516.             else
    517.                 $mailBody.=" \n";
    518.             $mailBody.=" \n";
    519.       }
    520.     }
    521.     $mailBody.="\n";
    522.     $mailBody.=$YourCompany."\n";
    523.     $mailBody.=$YourEmail."\n";
    524.       if($HTMLEmail == "Y")
    525.         $mailBody = eregi_replace("\n","<br>",$mailBody);
    526.       $headers.= "MIME-Version: 1.0\r\n";
    527.       if($HTMLEmail == "Y")
    528.         $headers.= "Content-type: text/html; charset=iso-8859-1\r\n";
    529.       else
    530.         $headers.= "Content-type: text/plain\r\n";
    531.       $headers.= "From: ".$YourCompany."<".$YourEmail.">\r\n";
    532.       $headers.= "Reply-To: ".$YourCompany."<$YourEmail>\r\n";
    533.       mail($clientname." <".$clientemail.">", $subject, $mailBody, $headers);
    534.   }
    535.   else
    536.   {
    537.       if (!($fh=@fopen($EmailTemplate,"r")))
    538.       {
    539.         ShowMessage($ErrorTemplate,"Can't open email template");
    540.         exit;
    541.       }
    542.       $mailBody = fread ($fh,100000);
    543.       fclose($fh);
    544.       $i=strrpos($EmailTemplate,".");
    545.       $ext=substr($EmailTemplate,$i,strlen($EmailTemplate)-$i);
    546.       $ext=strtolower($ext);
    547.       // Get subject for email
    548.       if ($ext==".txt")
    549.       {
    550.         $pos=strpos($mailBody,"\n");
    551.         $subject=substr($mailBody,0,$pos);
    552.         $mailBody=substr($mailBody,$pos+1,strlen($mailBody)-$pos-1);
    553.       }
    554.       else
    555.       {
    556.         $subject="Download Links";
    557.         $pos=strpos($mailBody,"<TITLE>");
    558.         if (!is_integer($pos))
    559.           $pos=strpos($mailBody,"<title>");
    560.         $pos2=strpos($mailBody,"</TITLE>");
    561.         if (!is_integer($pos2))
    562.           $pos2=strpos($mailBody,"</title>");
    563.         if ((is_integer($pos)) &&  (is_integer($pos2)))
    564.         {
    565.           $subject=substr($mailBody,$pos+7,$pos2-$pos-7);
    566.         }
    567.       }
    568.       // Create secure links and get size and filename for each file
    569.       for ($k=0;$k<count($fname);$k++)
    570.       {
    571.         // Get filename only
    572.         $i=strrpos($fname[$k],"/");
    573.         if (is_integer($i))
    574.           $fnameonly=substr($fname[$k],$i+1,strlen($fname[$k])-i-1);
    575.         else
    576.           $fnameonly=$fname[$k];
    577.         $ProdFile[$k]=$fnameonly;
    578.         $auth=md5($LinklokKey.$fname[$k].$expirytime);
    579.         $link=$fname[$k].",".$expirytime.","."1".",".$auth;
    580.         $link=rawurlencode($link);
    581.         if ($NoExtraPath==1)
    582.           $ProdLink[$k]=$thisurl."?linklokauth=".$link;
    583.         else
    584.           $ProdLink[$k]=$thisurl."/".$fnameonly."?linklokauth=".$link;
    585.         $reallocation=$LinklokLocation.$fname[$k];
    586.         // See if link is local path or URL
    587.         $fsize=0;
    588.         $pos=strpos(strtolower($reallocation),"http://");
    589.         if (!is_integer($pos))
    590.           $fsize=@filesize($reallocation);
    591.         $ProdSize[$k]=$fsize;
    592.       }
    593.     $max=30;
    594.     if (count($fname)>$max)
    595.       $max=count($fname);
    596.       // First deal with any !!!link_n!!! that is part of hyperlink
    597.       $start=0;
    598.       do
    599.       {
    600.         $pos=strpos($mailBody,"<a",$start);
    601.         if (!is_integer($pos))
    602.           $pos=strpos($mailBody,"<A",$start);
    603.         $pos2=strpos($mailBody,"</a>",$pos);
    604.         if (!is_integer($pos2))
    605.           $pos2=strpos($mailBody,"</A>",$pos);
    606.         $found=0;
    607.         if ((is_integer($pos)) && (is_integer($pos2)))
    608.         {
    609.           $found=1;
    610.           for ($k=1; $k<=$max; $k++)
    611.           {
    612.             if ($ProdLink[$k-1]=="")
    613.             {
    614.               // See if !!!link_k!!! is within the hyperlink
    615.               $hl=substr($mailBody,$pos,$pos2-$pos);
    616.               $pos3=strpos($hl,"!!!link_".$k."!!!");
    617.               if (!is_integer($pos3))
    618.                 $pos3=strpos($hl,"!!!link_".$k."!!!");
    619.               if (is_integer($pos3))
    620.               {
    621.                 $start=$pos;
    622.                 $mailBody=substr_replace($mailBody,"",$pos,$pos2-$pos);
    623.                 break;
    624.               }
    625.               else
    626.                 $start=$pos2;
    627.             }
    628.             else
    629.               $start=$pos2;
    630.           }
    631.         }
    632.       }
    633.       while($found==1);
    634.       // Now replace all other variables
    635.       for ($k=1; $k<=$max; $k++)
    636.       {
    637.         if ($ProdLink[$k-1]!="")
    638.         {
    639.           $mailBody=eregi_replace("!!!filename_".$k."!!!",$ProdFile[$k-1],$mailBody);
    640.           $mailBody=eregi_replace("!!!link_".$k."!!!",$ProdLink[$k-1],$mailBody);
    641.           $mailBody=eregi_replace("!!!size_".$k."!!!",FriendlyFileSize($ProdSize[$k-1]),$mailBody);
    642.           $mailBody=eregi_replace("!!!expires_".$k."!!!",FriendlyExpiryTime($expiry),$mailBody);
    643.           if(($HTMLEmail == "Y") || ($ext!=".txt"))
    644.           {
    645.             $tot="To download ".$ProdFile[$k-1]." click the link below:<BR>";
    646.             $tot.="<a href=\"".$ProdLink[$k-1]."\">".$ProdFile[$k-1]."</a>";
    647.             if ($ProdSize[$k-1]!="0")
    648.               $tot.=" (".FriendlyFileSize($ProdSize[$k-1]).")";
    649.             if ($expiry!="0")
    650.               $tot.=" ~ Download link will expire in ".FriendlyExpiryTime($expiry);
    651.           }
    652.           else
    653.           {
    654.             $tot="To download ".$ProdFile[$k-1]." click the link below:\n".$ProdLink[$k-1]."\n";
    655.             $tot.=$ProdFile[$k-1];
    656.             if ($ProdSize[$k-1]!="0")
    657.               $tot.=" (".FriendlyFileSize($ProdSize[$k-1]).")";
    658.             if ($expiry!="0")
    659.               $tot.=" ~ Download link will expire in ".FriendlyExpiryTime($expiry);
    660.           }
    661.           $mailBody=eregi_replace("!!!download_".$k."!!!",$tot,$mailBody);
    662.         }
    663.         else
    664.         {
    665.           $mailBody=eregi_replace("!!!filename_".$k."!!!","",$mailBody);
    666.           $mailBody=eregi_replace("!!!size_".$k."!!!","",$mailBody);
    667.           $mailBody=eregi_replace("!!!expires_".$k."!!!","",$mailBody);
    668.           $mailBody=eregi_replace("!!!download_".$k."!!!","",$mailBody);
    669.           $mailBody=eregi_replace("!!!link_".$k."!!!","",$mailBody);
    670.         }
    671.       }
    672.       // Now we should see if !!!eachfilestart!!! sections exists
    673.       $start=0;
    674.       do
    675.       {
    676.         $found=0;
    677.         $pos=strpos($mailBody,"<!--eachfilestart-->");
    678.         $pos2=strpos($mailBody,"<!--eachfileend-->");
    679.         if ((is_integer($pos)) && (is_integer($pos2)))
    680.         {
    681.           $found=1;
    682.           $buf=substr($mailBody,$pos+20,$pos2-$pos-20);
    683.           // Now remove this section
    684.           $mailBody1=substr($mailBody,0,$pos);
    685.           $mailBody2=substr($mailBody,$pos2+18,strlen($mailBody)-$pos2-18);
    686.           $mailBody=$mailBody1;
    687.           for ($k=1; $k<=count($ProdLink); $k++)
    688.           {
    689.             $repeatbuf=$buf;
    690.             $repeatbuf=eregi_replace("!!!filename!!!",$ProdFile[$k-1],$repeatbuf);
    691.             $repeatbuf=eregi_replace("!!!link!!!",$ProdLink[$k-1],$repeatbuf);
    692.             $repeatbuf=eregi_replace("!!!size!!!",FriendlyFileSize($ProdSize[$k-1]),$repeatbuf);
    693.             $repeatbuf=eregi_replace("!!!expires!!!",FriendlyExpiryTime($expiry),$repeatbuf);
    694.             if(($HTMLEmail == "Y") || ($ext!=".txt"))
    695.             {
    696.               $tot="To download ".$ProdFile[$k-1]." click the link below:<BR>";
    697.               $tot.="<a href=\"".$ProdLink[$k-1]."\">".$ProdFile[$k-1]."</a>";
    698.               if ($ProdSize[$k-1]!="0")
    699.                 $tot.=" (".FriendlyFileSize($ProdSize[$k-1]).")";
    700.               if ($expiry!="0")
    701.                 $tot.=" ~ Download link will expire in ".FriendlyExpiryTime($expiry);
    702.             }
    703.             else
    704.             {
    705.               $tot="To download ".$ProdFile[$k-1]." click the link below:\n".$ProdLink[$k-1]."\n";
    706.               $tot.=$ProdFile[$k-1];
    707.               if ($ProdSize[$k-1]!="0")
    708.                 $tot.=" (".FriendlyFileSize($ProdSize[$k-1]).")";
    709.               if ($expiry!="0")
    710.                 $tot.=" ~ Download link will expire in ".FriendlyExpiryTime($expiry);
    711.             }
    712.             $repeatbuf=eregi_replace("!!!download!!!",$tot,$repeatbuf);
    713.             $mailBody.=$repeatbuf;
    714.           }
    715.           $mailBody.=$mailBody2;
    716.         }
    717.       }
    718.       while($found==1);
    719.       if(($HTMLEmail == "Y") && ($ext==".txt"))
    720.         $mailBody = eregi_replace("\n","<br>",$mailBody);
    721.       $headers.= "MIME-Version: 1.0\r\n";
    722.       if($HTMLEmail == "Y")
    723.         $headers.= "Content-type: text/html; charset=iso-8859-1\r\n";
    724.       else
    725.         $headers.= "Content-type: text/plain\r\n";
    726.       $headers.= "From: ".$YourCompany."<".$YourEmail.">\r\n";
    727.       $headers.= "Reply-To: ".$YourCompany."<".$YourEmail.">\r\n";
    728.       mail($clientname." <".$clientemail.">", $subject, $mailBody, $headers);
    729.   }
    730.   // If manual form entry then don't send email to site or log entry.
    731.   if ($manualentry==True)
    732.     return;
    733.   // Send email to website owner with all fields from the form
    734.   $subject = "Website download request";
    735.   $mailBody="The following files were requested.\n\n";
    736.   for($k=0;$k<count($fname);$k++)
    737.     $mailBody.=$fname[$k]."\n";
    738.   $mailBody.="\nData from other form fields:-\n\n";
    739.   if (!empty($getvars))
    740.   {
    741.     while(list($namepair, $valuepair) = each($getvars))
    742.     {
    743.       $$namepair = $valuepair;
    744.       if ((strlen($namepair)>2) && ($namepair!="linklokform"))
    745.         $mailBody.=$namepair." : ".$valuepair."\n";
    746.     }
    747.   }
    748.   if (!empty($postvars))
    749.   {
    750.     while(list($namepair, $valuepair) = each($postvars))
    751.     {
    752.       $$namepair = $valuepair;
    753.       if ((strlen($namepair)>2) && ($namepair!="linklokform"))
    754.         $mailBody.=$namepair." : ".$valuepair."\n";
    755.     }
    756.   }
    757.   $mailBody.="IP : ".$ipaddr."\n";
    758.   $mailBody.="\n";
    759.   $headers= "MIME-Version: 1.0\r\n";
    760.   $headers.= "Content-type: text/plain\r\n";
    761.   $headers.= "From: ".$YourCompany."<".$YourEmail.">\r\n";
    762.   $headers.= "Reply-To: ".$YourCompany."<$YourEmail>\r\n";
    763.   mail($YourCompany." <".$YourEmail.">", $subject, $mailBody, $headers);
    764.   // if Logfile required add a line to it containing details of this request
    765.   if ($LinklokLog!="")
    766.   {
    767.     if (is_writeable($LinklokLog))
    768.     {
    769.       $fh=@fopen($LinklokLog,"a");
    770.       if ($fh)
    771.       {
    772.         $logstr="Date,".date("d/m/y").",Time,".date("H:i:s").",IP,".$ipaddr; // Date,time,IP
    773.         // Add filenames File0,test.zip,File1,demo.pdf etc
    774.         for($k=0;$k<count($fname);$k++)
    775.           $logstr.=",File".$k.",".$fname[$k];
    776.         // Add other form fields Name,Adrian,Email,test@mysite.com etc
    777.         if (!empty($getvars))
    778.         {
    779.           reset($getvars);
    780.           while(list($namepair, $valuepair) = each($getvars))
    781.           {
    782.             $$namepair = $valuepair;
    783.             if ((strlen($namepair)>2) && ($namepair!="linklokform"))
    784.               $logstr.=",".$namepair.",".$valuepair;
    785.           }
    786.         }
    787.         if (!empty($postvars))
    788.         {
    789.           reset($getvars);
    790.           while(list($namepair, $valuepair) = each($postvars))
    791.           {
    792.             $$namepair = $valuepair;
    793.             if ((strlen($namepair)>2) && ($namepair!="linklokform"))
    794.               $logstr.=",".$namepair.",".$valuepair;
    795.           }
    796.         }
    797.         $logstr.="\n";
    798.         fputs($fh,$logstr);
    799.         fclose($fh);
    800.       }
    801.     }
    802.   }
    803.   if ($goto!="")
    804.   {
    805.       header("Location: ".$goto);
    806.   }
    807.   }
    808.  
    809.   function getmimetype($fn)
    810.   {
    811.     $mt['jpg']="image/jpeg";
    812.     $mt['gif']="image/gif";
    813.     $mt['cgm']="image/cgm";
    814.     $mt['gif']="image/gif";
    815.     $mt['htm']="text/html";
    816.     $mt['html']="text/html";
    817.     $mt['txt']="text/plain";
    818.     $mt['pdf']="application/pdf";
    819.     $mt['mpg']="video/mpeg";
    820.     $mt['mpeg']="video/mpeg";
    821.     $mt['rm']="audio/x-pn-realaudio";
    822.     $mt['wmv']="application/x-ms-wmv";
    823.     $i=strrpos($fn,".");
    824.     $ext=substr($fn,$i+1,strlen($fn)-$i);
    825.     $ext=strtolower($ext);
    826.     if (isset($mt[$ext]))
    827.       $mimetype=$mt[$ext];
    828.     else
    829.       $mimetype="";
    830.     return("$mimetype");
    831.   }
    832.  
    833. function FriendlyExpiryTime($exp)
    834. {
    835.   if ($exp==0)
    836.     return("");
    837.   if (($exp>=1) && ($exp<=59))
    838.   {
    839.     if ($exp==1)
    840.       return("$exp minute");
    841.     else
    842.       return("$exp minutes");
    843.   }
    844.   if (($exp>=60) && ($exp<=1440))
    845.   {
    846.     $hours=intval($exp/60);
    847.     $mins=$exp % 60;
    848.     if ($hours==1)
    849.       $ret=$hours." hour";
    850.     else
    851.       $ret=$hours." hours";
    852.     if ($mins>0)
    853.     {
    854.       if ($mins==1)
    855.         $ret.=" & ".$mins." minute";
    856.       else
    857.         $ret.=" & ".$mins." minutes";
    858.     }
    859.     return($ret);
    860.   }
    861.   if ($exp>=1441)
    862.   {
    863.     $days=intval($exp/1440);
    864.     $exp=$exp-($days*1440);
    865.     $hours=intval($exp/60);
    866.     $mins=$exp % 60;
    867.     if ($days==1)
    868.       $ret=$days." day";
    869.     else
    870.       $ret=$days." days";
    871.     if ($hours>0)
    872.     {
    873.       if ($mins==0)
    874.         $ret.=" &";
    875.       if ($hours==1)
    876.         $ret.=" ".$hours." hour";
    877.       else
    878.         $ret.=" ".$hours." hours";
    879.     }
    880.     if ($mins>0)
    881.     {
    882.       if ($mins==1)
    883.         $ret.=" & ".$mins." minute";
    884.       else
    885.         $ret.=" & ".$mins." minutes";
    886.     }
    887.     return($ret);
    888.   }
    889. }
    890.  
    891. function FriendlyFileSize($sz)
    892. {
    893.   if ($sz<=1023)
    894.     return("$sz Bytes");
    895.   if (($sz>=1024) && ($sz<=1048575))
    896.   {
    897.     $sz=intval($sz/1024);
    898.     return("$sz KB");
    899.   }
    900.   if ($sz>=1048576)
    901.   {
    902.     $sz=$sz/1048576;
    903.     $sz=intval($sz*100)/100;
    904.     return("$sz MB");
    905.   }
    906. }
    907.  
    908. function CustomMessage($Template,$msg)
    909. {
    910.   if ($Template=="")
    911.     return(0);
    912.   if (!($fh=@fopen($Template,"r")))
    913.     return(0);
    914.   // Read each line of template page and insert Linklok variables
    915.   while(!feof($fh))
    916.   {
    917.     $lne=fgets($fh,1024);
    918.     $lne=eregi_replace("!!!message!!!",$msg,$lne);
    919.     print($lne);
    920.   }
    921.   fclose($fh);
    922.   return(1);
    923. }
    924.  
    925. function ShowMessage($Template,$msg)
    926. {
    927.   if (0==CustomMessage($Template,$msg))
    928.   {
    929.     print ("<HTML>\n");
    930.     print ("<HEAD>\n");
    931.     print ("<TITLE>Linklok URL</TITLE>\n");
    932.     print ("</HEAD>\n");
    933.     print ("<BODY>\n");
    934.     print("$msg<BR>");
    935.     print ("</BODY>\n");
    936.     print ("</HTML>\n");
    937.   }
    938. }
    939.  
    940. function xgetallheaders()
    941. {
    942.  global $HTTP_SERVER_VARS;
    943.  $headers = array();
    944.   while (list($key, $value) = each ($HTTP_SERVER_VARS))
    945.   {
    946.     if (strncmp($key, "HTTP_", 5) == 0)
    947.     {
    948.       $key = strtr(ucwords(strtolower(strtr(substr($key, 5), "_", " "))), " ", "-");
    949.       $headers[$key] = $value;
    950.     }
    951.   }
    952.   return $headers;
    953. }
    954.  
    955. ?>
     
  6. simpson

    simpson Активный пользователь

    С нами с:
    11 фев 2006
    Сообщения:
    1.650
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    в функции linklokurl:
    заменить print($link);
    на return $link;
     
  7. eaglenix

    eaglenix Активный пользователь

    С нами с:
    12 июл 2006
    Сообщения:
    47
    Симпатии:
    0
    Спасибо огромное, все заработало.