Вграждане на php в JavaScript

talevtehnology

Registered
Здравейте някой може ли да направи така че тоя прозорец за бгоп да не е с cookies ,а да е с база дани и запис на IP тоест в джавата да се вмъкне този php код
ето го Javascripta
Код:
var persistclose=1 //set to 0 or 1. 1 means once the bar is manually closed, it will remain closed for browser session
var startX = 230 //set x offset of bar in pixels
var startY = 250 //set y offset of bar in pixels
var verticalpos="fromtop" //enter "fromtop" or "frombottom"

function iecompattest(){
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

function get_cookie(Name) {
var search = Name + "="
var returnvalue = "";
if (document.cookie.length > 0) {
offset = document.cookie.indexOf(search)
if (offset != -1) {
offset += search.length
end = document.cookie.indexOf(";", offset);
if (end == -1) end = document.cookie.length;
returnvalue=unescape(document.cookie.substring(offset, end))
}
}
return returnvalue;
}

function closebar(){
if (persistclose)
document.cookie="remainclosed=1"
document.getElementById("topbar").style.visibility="hidden"
}

function staticbar(){
barheight=document.getElementById("topbar").offsetHeight
var ns = (navigator.appName.indexOf("Netscape") != -1) || window.opera;
var d = document;
function ml(id){
var el=d.getElementById(id);
if (!persistclose || persistclose && get_cookie("remainclosed")=="")
el.style.visibility="visible"
if(d.layers)el.style=el;
el.sP=function(x,y){this.style.right=x+"px";this.style.top=y+"px";};
el.x = startX;
if (verticalpos=="fromtop")
el.y = startY;
else{
el.y = ns ? pageYOffset + innerHeight : iecompattest().scrollTop + iecompattest().clientHeight;
el.y -= startY;
}
return el;
}
window.stayTopLeft=function(){
if (verticalpos=="fromtop"){
var pY = ns ? pageYOffset : iecompattest().scrollTop;
ftlObj.y += (pY + startY - ftlObj.y)/8;
}
else{
var pY = ns ? pageYOffset + innerHeight - barheight: iecompattest().scrollTop + iecompattest().clientHeight - barheight;
ftlObj.y += (pY - startY - ftlObj.y)/8;
}
ftlObj.sP(ftlObj.x, ftlObj.y);
setTimeout("stayTopLeft()", 10);
}
ftlObj = ml("topbar");
stayTopLeft();
}

if (window.addEventListener)
window.addEventListener("load", staticbar, false)
else if (window.attachEvent)
window.attachEvent("onload", staticbar)
else if (document.getElementById)
window.onload=staticbar
ето го и php код който е за връзката с базаданите
Код:
<?
$server = "localhost"; 
$dbuser = "******"; 
$dbpass = "******"; 
$dbname = "talevteh_bgtop"; 
$dbtable = "bgtop"; 
$db_conn = mysql_connect($server, $dbuser, $dbpass); 
@mysql_select_db($dbname, $db_conn) or die(mysql_error()); 
$ip = $_SERVER["REMOTE_ADDR"]; 
$link = "http://bgtop.net/in.php/1273870652" ; // тук посочи твоя линк. 
$time = time(); 
$vtime = "86400"; // това е времето в секунди, за което ще може да се гласува. в случая е 24 часа. 
$dtime = "345600"; // времето, след което ще се изтриват ненужните записи. в случая е 4 дни(72 часа) 
?>
Това ми се налага защото искам дразнещия прозорец да се показва на потребителите веднъж на 24 часа а с cookies когато си изключат компютъра и после пак го включат и влезнат в сайта пак изкача независимо че не са минали 24 часа (явно сe изтрива cookies-a)
P.S Сега забелязах че прозореца се скрива само за текущата сесия ,тоест след затжаряне на браузера и следващото отваряне прозореца изкача.
Моляви помагайте :?
 
Бисквитките по подразбиране се изтриват след като се затвори браузъра. Просто им задай да стоят по-дълго време :)
Добави след "biskvitka=stoinost" добави expires=дата
Ето рпимер:
Код:
"biskvitka=stoinost; expires=Fri, 3 Aug 2010 20:47:11 UTC;"
За повече информация разгледай тази статия:
http://www.quirksmode.org/js/cookies.html
:)
 
Благодаря за предложението но ми се налага да е с базадани и по други причини и много бих искал да разбера как ще стане :)
 
Никой ли не се сеща :shock: въпроса е просто да не е с cookies а да ползва вече съществуващото поле в бд-то
 
Това го слагаш на страниците на които искаш да се вижда:



//БГТОП
$ip = $_SERVER["REMOTE_ADDR"];
$vtime = "86400"; // това е времето в секунди, за което ще може да се гласува. в случая е 24 часа.
$dtime = "345600"; // времето, след което ще се изтриват ненужните записи. в случая е 4 дни(72 часа)

function show() {
echo '
<center><script type="text/javascript">
var ns4=document.layers
var ie4=document.all
var ns6=document.getElementById&&!document.all

//drag drop function for NS 4////
/////////////////////////////////

var dragswitch=0
var nsx
var nsy
var nstemp

function drag_dropns(name){
if (!ns4)
return
temp=eval(name)
temp.captureEvents(Event.MOUSEDOWN | Event.MOUSEUP)
temp.onmousedown=gons
temp.onmousemove=dragns
temp.onmouseup=stopns
}

function gons(e){
temp.captureEvents(Event.MOUSEMOVE)
nsx=e.x
nsy=e.y
}
function dragns(e){
if (dragswitch==1){
temp.moveBy(e.x-nsx,e.y-nsy)
return false
}
}

function stopns(){
temp.releaseEvents(Event.MOUSEMOVE)
}

//drag drop function for ie4+ and NS6////
/////////////////////////////////


function drag_drop(e){
if (ie4&&dragapproved){
crossobj.style.left=tempx+event.clientX-offsetx
crossobj.style.top=tempy+event.clientY-offsety
return false
}
else if (ns6&&dragapproved){
crossobj.style.left=tempx+e.clientX-offsetx+"px"
crossobj.style.top=tempy+e.clientY-offsety+"px"
return false
}
}

function initializedrag(e){
crossobj=ns6? document.getElementById("showimage") : document.all.showimage
var firedobj=ns6? e.target : event.srcElement
var topelement=ns6? "html" : document.compatMode && document.compatMode!="BackCompat"? "documentElement" : "body"
while (firedobj.tagName!=topelement.toUpperCase() && firedobj.id!="dragbar"){
firedobj=ns6? firedobj.parentNode : firedobj.parentElement
}

if (firedobj.id=="dragbar"){
offsetx=ie4? event.clientX : e.clientX
offsety=ie4? event.clientY : e.clientY

tempx=parseInt(crossobj.style.left)
tempy=parseInt(crossobj.style.top)

dragapproved=true
document.onmousemove=drag_drop
}
}
document.onmouseup=new Function("dragapproved=false")

////drag drop functions end here//////

function hidebox(){
crossobj=ns6? document.getElementById("showimage") : document.all.showimage
if (ie4||ns6)
crossobj.style.visibility="hidden"
else if (ns4)
document.showimage.visibility="hide"
}
</script></center>

<center><div align="center" id="showimage" style="position:absolute; left:33%; top:160px; z-index:100;">

<table align="center" border="0" width="250" bgcolor="#333333" cellspacing="0" cellpadding="2">
<tr>
<td width="100%"><table border="0" width="100%" cellspacing="0" cellpadding="0"
height="36px">
<tr>
<td id="dragbar" style="cursor:hand; cursor:pointer" width="100%" onMousedown="initializedrag(event)"><ilayer width="100%" onSelectStart="return false"><layer width="100%" onMouseover="dragswitch=1;if (ns4) drag_dropns(showimage)" onMouseout="dragswitch=0"><font face="Verdana"
color="#FFFFFF"><center><strong><b>BGTOP</b></strong></font></layer></ilayer></center> </td>
<td style="cursor:hand"><a href="#" onClick="hidebox();return false"><img src="image/close.gif" width="17px"
height="14px" border=0></a></td>
</tr>
<tr>
<td class ="lista" width="100%" bgcolor="#333333" style="padding:4px" colspan="2"></center>




<center><a href="vote.php" target="_blank"><img src="image/bgtop1.jpg" width="351" height="424" border="0" /></a><center>

<br>

<b><font face="verdana" size="3">Гласувайте за нас всеки ден в BGTOP класацията, за да ни помогнета да се развием.<br>След като гласувате прозореца ще изчезне за 24 часа.</font></b>




</td>
</tr>
</table>
</td>
</tr>
</table>
</div>

';
}


$sql = mysql_query("SELECT ctime FROM bgtop WHERE ip='$ip'");
if($row = mysql_fetch_array($sql))
{
$calc = $row['ctime'] + $vtime;
if ($calc < $time)
{
show();
}
}
else
{
show();
}
//БГТОП


Създаваш файл

vote.php


<?php
ob_start();

include "config.php";

$sql = mysql_query("SELECT ctime FROM bgtop WHERE ip='$ip'");
if($row = mysql_fetch_array($sql))
{
$calc = $row['ctime'] + $vtime;

if ($calc>$time)
{
echo "Можете да гласувате само по веднъж за 24 часа!";
header("location: http://bgtop.net/in.php/1216811575");
}
else
{
$sql= mysql_query("UPDATE bgtop SET ctime = \"$time\" WHERE ip=\"$ip\"");
header("location: http://bgtop.net/in.php/1216811575");
}
}
else
{
$sql = mysql_query("INSERT INTO bgtop (`ip`,`ctime`) VALUES ('$ip','$time')");
header("location: http://bgtop.net/in.php/1216811575");
}


$time=$time-87000;

$sql = "DELETE FROM bgtop WHERE ctime<'$time'";
$res = mysql_query($sql);
?>


SQl:


CREATE TABLE IF NOT EXISTS `bgtop` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`ip` varchar(33) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
`ctime` varchar(33) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=3491 ;



Това в червено може да си го променяш както искаш!!!
 

Back
Горе