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.
Annonceindlæg fra Deloitte
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
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
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
23. januar 2004 - 20:37
#4
er det fordi at det er en SHTML side jeg skriver den I ?
exp
Juniormester
23. januar 2004 - 21:45
#5
Jeps - shtml kan vel nærmest sammenlignes med php's phtml...
23. januar 2004 - 21:48
#6
exp> dvs at det er muligt at includere en PHP side i en Shtml fil ?
exp
Juniormester
23. januar 2004 - 21:49
#7
ikke hvad jeg ved af...
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
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"-->
Slettet bruger
23. januar 2004 - 23:37
#10
Virker det ikke, hvis du kalder php-filen for index.php ?
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
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.
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.
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;
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;
24. januar 2004 - 00:26
#16
den melder Undefined variable: REMOTE_ADDR på begge linier
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 ???
Slettet bruger
24. januar 2004 - 00:30
#18
ret $REMOTE_ADDR til $_SERVER['REMOTE_ADDR']
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()); }
Slettet bruger
24. januar 2004 - 00:41
#20
Ja. Der findes jo ikke nogen varibel, der hedder $d i den funktion.
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
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); ?>
24. januar 2004 - 00:47
#23
$d bliver oprettet i linie 78 $d = $data["a1"];
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.
24. januar 2004 - 09:34
#25
Tak, ingen point til mig.
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
30. september 2005 - 10:29
#27
lukker
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.