【发布时间】:2012-02-13 21:47:02
【问题描述】:
我为很多人制作了一个熟悉的系统。手动复制我制作的模板脚本会占用我很多时间,并根据需要进行编辑。导入mysql数据库等。所以几天前我在想,“如果我可以制作一个表格来填写,当给出正确的mysql信息和正确的变量(如链接和样式)时,它会进入并执行以下任务: 1. 在指定的 mySQL 数据库中创建一个特定的表 2. 实际上创建一个类似于以下模板代码的脚本:
<?php
// Creator: Will Renfroe
// All rights Reserved
//Vote Sites and MySQL
$DBNAME="DATABASENAME";
$DBUSER="DATABASENAME";
$DBPASSWORD="PASS";
$DBHOST="DATABASE HOST NAME";
///////////////////
// SCRIPT
///////////////////
mysql_connect($DBHOST, $DBUSER, $DBPASSWORD) or die("<center>Cannot connect to MySQL</center>");
mysql_select_db($DBNAME) or die("<center>Cannot select DB</center>");
/////////
?>
<?php
include("secure.php");
if (getenv(HTTP_X_FORWARDED_FOR)) {
$pipaddress = getenv(HTTP_X_FORWARDED_FOR);
$ipaddress = getenv(REMOTE_ADDR);
} else {
$ipaddress = getenv(REMOTE_ADDR);
}
if(isset($_POST['dovote'])){
check_inject();
//Get user id from session
$userid=secure($_POST["nick"]);
$time=time();
$query=mysql_query("SELECT nick,time FROM votesdb WHERE ip='$ipaddress'");
$checkip=mysql_num_rows($query);
$iprow=mysql_fetch_row($query);
$query=mysql_query("SELECT time FROM votesdb WHERE nick='$userid'");
$checkuser=mysql_num_rows($query);
$userrow=mysql_fetch_row($query);
if ($checkuser){
//if user vote
if ($checkip and $time>$iprow[1]){$canvote=1;}
if (!$checkip and $time>$userrow[0]){$canvote=1;}
}else{
//if user never vote
if ($checkip and $time>$iprow[1]){$canvote=1;}
if (!$checkip){$canvote=1;}
}
//Do Vote
if ($canvote){
$newtime=time()+60*60*24;
if ($checkuser){
//update
mysql_query("UPDATE votesdb SET time=$newtime, ip='$ipaddress', votes=votes+1, flag=flag+1 WHERE nick='$userid'");
}else{
//insert
$query=mysql_query("INSERT INTO votesdb(nick,time,ip,votes,flag) VALUES ('$userid',$newtime,'$ipaddress',1,1)");
}
//Add nick to nicklist table
$query=mysql_query("INSERT INTO nicklist(nick) VALUES ('$userid')");
echo "<font color='green'>Thanks you for a vote. You have been rewarded 10 diamond!</font>";
}else{
echo "<font color='red'>You can only vote every 24 hours to get a reward.</font>";
}
}
?>
<center>
<form target="_blank" action="**WEBSITE URL CAN GO HERE**" method="post"> <input onclick="document.getElementById('vote2').disabled=false" value="NAME OF BUTTON" name="vote1" id="vote1" type="submit" /> </form>
<form method="post" action="**WEBSITE URL CAN GO HERE**" target="_blank"> <input disabled="disabled" name="vote3" value="NAME OF BUTTON" onclick="document.getElementById('vote4').disabled=false" id="vote2" type="submit" /> </form>
</p>
<span class="minecrafttext">Then Enter Your In-Game-Name: </span> <br />
<form method="POST">
<input name="nick" onSubmit="return nameempty();" /> <br/>
<form method="POST">
<input name="dovote" type="submit" value="Get your diamonds!" onclick="document.getElementById('vote4').disabled=false" id="vote4" disabled="disabled"/>
</form>
©<a href="mailto:Willrenfroe@gmail.com">WILLRENFROE</a>
</center>
</body>
它需要询问 DATABASENAME、DATABASE、USERNAME、DTABASE、PASSWORD、DATABASE HOST、链接等,有人可以帮我吗?我尝试了谷歌并找不到任何东西。
【问题讨论】:
-
请不要使用未加引号的字符串(未定义的常量,php 有一个讨厌的后备来将它们作为字符串处理,这就是您的代码工作的原因)。将
error_reporting(E_ALL);添加到您的代码中,您就会知道原因! -
每个 CMS 在安装时都会这样做。只需查看 joomla 或 wordpress 或您能想到的任何其他 cms 的安装代码,您就会知道它是如何完成的。你的问题有点givemecodez,最好尝试实现你想要的系统并带着你遇到的具体问题来到这里。请参阅faq,了解您应该在此处提出的问题类型。
-
phpbb 做同样的事情只是为了添加到 vascowhite 的列表中。
-
不要这样做:$ipaddress = getenv(REMOTE_ADDR);然后做这样的事情: $query=mysql_query("SELECT nick,time FROM votesdb WHERE ip='$ipaddress'");确保在执行 mysql 查询之前转义所有内容。根据接受值的预定义数组检查 ipadress。 $userid 也是一样。
标签: php deployment