Avatar billede snoezel Nybegynder
23. januar 2004 - 20:11 Der er 26 kommentarer og
1 løsning

Include - php i en shtml

Hej.
Er det ikke muligt at includere in.php i en Index.shtml fil med denne linie i header: <!--#include file="in.php" -->

Den udskriver en masse indhold - i stedet for at udskrive en cookie!

Det skal siges at det er på en windows server, men udbyderen siger at SSI er muligt.
Avatar billede snoezel Nybegynder
23. januar 2004 - 20:11 #1
hvis jeg kører in.php - så kan jeg se i kildekoden at den har gjort hvad den skal korrekt
Avatar billede erikjacobsen Ekspert
23. januar 2004 - 20:13 #2
Hvis du har PHP skal du bare
  <?php include("in.php"); ?>
Hvis du ikke har PHP kan du selvfølgelig hverken det ene eller det andet
Avatar billede snoezel Nybegynder
23. januar 2004 - 20:37 #3
<?php include("in.php"); ?> bliver udskrevet i kildekoden når jeg vælger VIS i browser - den includerer ikke siden

Ja, php er muligt - in.php virker helt fint når jeg kører den direkte
Avatar billede snoezel Nybegynder
23. januar 2004 - 20:37 #4
er det fordi at det er en SHTML side jeg skriver den I ?
Avatar billede exp Juniormester
23. januar 2004 - 21:45 #5
Jeps - shtml kan vel nærmest sammenlignes med php's phtml...
Avatar billede snoezel Nybegynder
23. januar 2004 - 21:48 #6
exp> dvs at det er muligt at includere en PHP side i en Shtml fil ?
Avatar billede exp Juniormester
23. januar 2004 - 21:49 #7
ikke hvad jeg ved af...
Avatar billede erikjacobsen Ekspert
23. januar 2004 - 21:53 #8
Nej, den skal hedde .php eller lignende - det glemte jeg vist. Der er vel ingen grund til
at det lige skal være en .shtml
Avatar billede snoezel Nybegynder
23. januar 2004 - 22:03 #9
nej det kan godt være en PHP - men det tager udbyderen desværre ikke højde for at det kan være en startside - det er kun .htm .html og .asp der kigges efter - og jeg har behover for oplysninger i header på den allerførste side de rammer mit domæne med, og den tjkker IN.PHP så. Jeg må skrive og høre om de vil sætte serveren op til at godtage default.php som "default" startside - takker for hjælpen ang. spørgsmålet, så behøver jeg ikke lege med det mere - men det er underligt at der står dette i manualen til scriptet:
***********************************************************************
Your main page needs to end with .shtml or .php. The main page is where the trades are gonna send the hits to. Most people use index.shtml

-For SSI (.shtml) Add this line in the header part of the main page html code :
<!--#include file="in.php"-->
Avatar billede Slettet bruger
23. januar 2004 - 23:37 #10
Virker det ikke, hvis du kalder php-filen for index.php ?
Avatar billede snoezel Nybegynder
23. januar 2004 - 23:44 #11
nej, jeg har prøvet med både index og default - men så viser den ikke siden, men blot en fejl: Directory Listing not allowed
Avatar billede Slettet bruger
23. januar 2004 - 23:57 #12
OK.

Hvis du har adgang til at lave .htaccess-filer, kan du lave en med følgende indhold:

DirectoryIndex index.php index.asp index.html index.htm index.shtml

Du kan selv ændre på rækkefølgen, hvis du vil have dem prioriteret anderledes. Den første, der er i mappen, bliver brugt.
Avatar billede Slettet bruger
23. januar 2004 - 23:57 #13
Det gælder forresten for Apache. Jeg ved ikke, om IIS gør på samme måde.
Avatar billede snoezel Nybegynder
24. januar 2004 - 00:11 #14
jeg må prøve det af :)

Er der nogen der lige kan lure af hvordan jeg får ISSET på denne linie :-)
if (blacklisted($from) or blacklisted($REMOTE_ADDR)) exit;
Avatar billede Slettet bruger
24. januar 2004 - 00:21 #15
Hvis den skal afslutte hvis $from ikke er sat (NB! den afslutter også, hvis $from er sat, men bare er tom.):

if (empty($from) or blacklisted($from) or blacklisted($REMOTE_ADDR)) exit;

Ellers:

if ((isset($from) and blacklisted($from)) or blacklisted($REMOTE_ADDR)) exit;
Avatar billede snoezel Nybegynder
24. januar 2004 - 00:26 #16
den melder Undefined variable: REMOTE_ADDR på begge linier
Avatar billede snoezel Nybegynder
24. januar 2004 - 00:28 #17
hvis jeg putter denne ind: error_reporting(E_ALL ^ E_NOTICE);
Så er der ingen fejl - men er den holdbar ???
Avatar billede Slettet bruger
24. januar 2004 - 00:30 #18
ret $REMOTE_ADDR til $_SERVER['REMOTE_ADDR']
Avatar billede snoezel Nybegynder
24. januar 2004 - 00:38 #19
ja det hjalp - men den siger så: Undefined variable linie 174 dbadd($d);

function hit_in($from,$is_raw)
{
    global $day,$hour,$is_raw;
    $tm = time();
    if ($is_raw) $query = "update trade set a6 = '$tm', a10 = a10 + 1 where a1 = '$from'";
    else $query = "update trade set a6 = '$tm', a10 = a10 + 1, a11 = a11 + 1 where a1 = '$from'";
    $result = mysql_query($query);
    if (!$result) error_message(sql_error());
    dbadd($d);
    if ($is_raw) $query = "update day set zr$hour = zr$hour + 1 where z = '$from'";
    else $query = "update day set zr$hour = zr$hour + 1, zu$hour = zu$hour + 1 where z = '$from'";
    $result = mysql_query($query);
    if(!$result) error_message(sql_error());
}
Avatar billede Slettet bruger
24. januar 2004 - 00:41 #20
Ja. Der findes jo ikke nogen varibel, der hedder $d i den funktion.
Avatar billede snoezel Nybegynder
24. januar 2004 - 00:42 #21
det er lidt mærkeligt, for dette script kører fint på en anden server, så det har vel noget at gøre med at det nu er en windows server. Jeg giver dig lige hele scriptet på in.php
Avatar billede snoezel Nybegynder
24. januar 2004 - 00:43 #22
<?php
// Cjultra v2.0.3
ignore_user_abort(true);
include("common.php");
$linkid = db_connect();
if (!$linkid) error_message(sql_error());
$day = date("w");
$yday = date("w", time() - 86400);
$hour = date("G");

if (isset($get_HTTP_X_FORWARDED_FOR)) $REMOTE_ADDR = $HTTP_X_FORWARDED_FOR;
if (isset($get_HTTP_REFERER)) {
$url = parse_url($HTTP_REFERER);
$from = eregi_replace("www\.", "", $url["host"]);
$from = addslashes($from);
if (!$from) $from = "noref";
}
else $from = "noref";

?>
<script language="JavaScript">
<!--
document.cookie='from=<?php echo $from; ?>; expires=<?php echo date("l, j-M-y G:i:s ", time() + 300); ?>GMT;';
//-->
</script>
<?php

if (empty($from) or blacklisted($from) or blacklisted($_SERVER['REMOTE_ADDR'])) exit;

//if ((isset($from) and blacklisted($from)) or blacklisted($REMOTE_ADDR)) exit;
//if (blacklisted($from) or blacklisted($REMOTE_ADDR)) exit;
dbadd($from);
if (is_raw_hit($_SERVER['REMOTE_ADDR'])) $is_raw = 1;
else $is_raw = 0;
hit_in($from,$is_raw);

$query = "select * from lastupdate";
$result = mysql_query($query);
$data = mysql_fetch_array($result);
if ($hour != $data["i1"]) $hourlyreset = 1;
if (abs(time() - $data["i2"]) > 60) calculate();
//////
/////
function calculate() {
global $dailyreset, $hourlyreset;
$day = date("w");
$min = date("i");
$yday = date("w", time() - 86400);
$hour = date("G");
if ($hour > 0) $yhour = $hour - 1;
else $yhour = 23;
$time = time();
$query = "select * from trade";
$result = mysql_query($query);
while ($data = mysql_fetch_array($result)) {

$query2 = "select * from day where z = '" . $data["a1"] . "'";
$result2  = mysql_query($query2);

if (!mysql_num_rows($result2) == 0) {
$data2 = mysql_fetch_array($result2);
for ($i = 0; $i <= $hour; $i++) {
$data["a22"] += $data2["zr$i"];
$data["a23"] += $data2["zu$i"];
$data["a24"] += $data2["zo$i"];
$data["a25"] += $data2["zc$i"];
}
}
else {
$data["a22"] = $data["a23"] = $data["a24"] = $data["a25"] = 0;
}
$data["a26"] = $data2["zr$hour"];
$data["a27"] = $data2["zu$hour"];
$data["a28"] = $data2["zo$hour"];
$data["a29"] = $data2["zc$hour"];


    $d = $data["a1"];
    if ($data["a25"]) $p = 1000 * (($data["a25"] + 1) / ($data["a24"] + 1));
    else $p = 0;
    $p = $p * sqrt(($data["a22"] + 1)/ ($data["a24"] + 1));
    if ($data["a15"] == -1 && $data["a24"] > 10 && (($data["a24"] + 1) / ($data["a22"] + 1) * 100 > $data["a8"])) $p = -1000000;
    if ($data["a16"] == -1) $p = -1000000;
    if (!($data["a9"] == -1 && $hour > 0 && $data2["zr$hour"] + $data2["zr$yhour"] == 0) && $data["a18"] > $data["a28"]) $p += 3000 * (($data["a18"] - $data["a28"]) / ($data["a28"] + 1));
    $p = ceil($p);

    $query3 = "update trade set a19 = '$p' where a1 = '$d'";
    $result3 = mysql_query($query3);
    if(!$result3) error_message(sql_error());
}
$query5 = "update lastupdate set i2 = '$time'";
$result5 = mysql_query($query5);
if(!$result5) error_message(sql_error());
  $query14 = "select a1 from trade";
  $result14 = mysql_query($query14);
  while ($data14 = mysql_fetch_array($result14)) {
      dbadd($data14["a1"]);
}
}
///
if (isset($hourlyreset)) {
if ($hour == 0) {
    $dy = date("Ymd",time() - 6000);
    $dy = $dy . ".txt";
    if (!(file_exists("cjstats/$dy"))){
        $query = "select * from day";
        $result = mysql_query($query);
        $fp = fopen("cjstats/$dy","w");
        while ($data = mysql_fetch_array($result)) {
              $str = $data["z"];
              for ($i = 0; $i <= 23; $i ++) {
                  $str = "$str|" . $data["zr$i"];
              }
              for ($i = 0; $i <= 23; $i ++) {
                  $str = "$str|" . $data["zu$i"];
              }
              for ($i = 0; $i <= 23; $i ++) {
                  $str = "$str|" . $data["zo$i"];
              }
              for ($i = 0; $i <= 23; $i ++) {
                  $str = "$str|" . $data["zc$i"];
              }
              $str = "$str\n";
              fwrite($fp, $str);
        }
        fclose($fp);
    }
}

  $query11 = "update day set zr$hour = '0', zu$hour = '0', zo$hour = '0', zc$hour = '0'";
  $result11 = mysql_query($query11);
  $query12 = "update lastupdate set i1 = '$hour'";
  $result12 = mysql_query($query12);
  if(!$result12) error_message(sql_error());
if ($hour % 6 == 0) {
            $fp = fopen("iplog.txt" , "w");
            fwrite($fp, "0000\n");
            fclose($fp);
}
$query = "delete from day where ";
for ($i = 0; $i < 24; $i++)
{
    $query .= "zr$i = 0 and zu$i = 0 and zo$i = 0 and zc$i = 0";
    if ($i < 23) $query .= " and ";
}
    $result = mysql_query($query);
    if(!$result) error_message(sql_error());
}
///


function is_raw_hit($ip) {
$ip_array = file("iplog.txt");
if (in_array("$ip\n", $ip_array) || !$ip) return true;
else {
    array_push($ip_array, "$ip\n");
    if ($fp = fopen("iplog.txt" , "w")) {
            $ip_array = implode("", $ip_array);
            fwrite($fp, $ip_array);
            fclose($fp);
            }
            return false;
    }
}

function hit_in($from,$is_raw)
{
    global $day,$hour,$is_raw;
    $tm = time();
    if ($is_raw) $query = "update trade set a6 = '$tm', a10 = a10 + 1 where a1 = '$from'";
    else $query = "update trade set a6 = '$tm', a10 = a10 + 1, a11 = a11 + 1 where a1 = '$from'";
    $result = mysql_query($query);
    if (!$result) error_message(sql_error());
    dbadd($d);
    if ($is_raw) $query = "update day set zr$hour = zr$hour + 1 where z = '$from'";
    else $query = "update day set zr$hour = zr$hour + 1, zu$hour = zu$hour + 1 where z = '$from'";
    $result = mysql_query($query);
    if(!$result) error_message(sql_error());
}

function dbadd($d)
{
    $day = date("w");
    $query = "select z from day where z = '$d'";
    $result = mysql_query($query);
    if(!$result) error_message(sql_error());
    if ((mysql_num_rows($result) == 0) and $d) {
        $query2 = "insert into day values('$d'";
        for ($i = 0; $i < 96; $i++) {
            $query2 = $query2 . ",'0'";
        }
        $query2 = $query2 . ")";
        $result2 = mysql_query($query2);
        if(!$result2) error_message(sql_error());
}
}
function blacklisted($from)
{
    $query = "select * from blacklist where e1 = '$from'";
    $result = mysql_query($query);
    if(!$result) error_message(sql_error());
    return (mysql_num_rows($result) > 0);
}
mysql_close($linkid);
?>
Avatar billede snoezel Nybegynder
24. januar 2004 - 00:47 #23
$d bliver oprettet i linie 78
$d = $data["a1"];
Avatar billede snoezel Nybegynder
24. januar 2004 - 02:03 #24
Lars og erik smider i et svar - så kan i dele points som tak for hjælpen, jeg satte isset på $d så fejler scriptet ihvertfald ikke synligt - men til gengæld bliver alle besøgende genkendt som værende "Noref" - jeg opretter et nyt spørgsmål ang. dette.
Avatar billede erikjacobsen Ekspert
24. januar 2004 - 09:34 #25
Tak, ingen point til mig.
Avatar billede sukos Juniormester
29. januar 2004 - 12:29 #26
Man kan da sagtens include en phpfil i en *.shtml fil, og få afviklet PHP-koden
Forudsat selvf. at serveren er sat op til at afvikle shtml.

<!--#include virtual="/in.php" -->

http://httpd.apache.org/docs/howto/ssi.html
Avatar billede snoezel Nybegynder
30. september 2005 - 10:29 #27
lukker
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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