2012-02-13 3 views
-2

많은 사람들에게 익숙한 시스템이 있습니다. 그것은 필자가 만든 템플릿 스크립트를 수동으로 복사하고 필요에 따라 편집하는 데 많은 시간이 걸린다. mysql 데이터베이스 등을 가져 와서 몇 밤 전에 생각했다. "양식을 작성하여 정확한 mysql 정보가 주어지고 링크 및 스타일과 같은 올바른 변수가 주어지면 어떻게 될까요? 가서 다음과 같은 작업을 수행 : 1. 2. 실제로 다음 템플릿 코드를 닮은 스크립트 작성 지정된 MySQL 데이터베이스의 특정 테이블을 만듭니다 : 그것은 데이터베이스 이름을 요청할 필요가다른 PHP 스크립트를 배포하는 PHP 스크립트

<?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" />&nbsp;</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:[email protected]">WILLRENFROE</a> 
</center> 

</body> 

을, DATABASE, USERNAME , DTABASE, 비밀 번호, 데이터베이스 호스트, 링크 등 아무도 도와 드릴까요? 난 구글을 시도하고 아무것도 찾을 수 없습니다.

+2

따옴표로 묶지 않은 문자열을 사용하지 마십시오 (정의되지 않은 상수는 php가 코드를 작동시키는 문자열로 처리하기 위해 불쾌한 대체 방법을 사용합니다). 'error_reporting (E_ALL);'을 코드에 추가하면 그 이유를 알 수 있습니다! – ThiefMaster

+1

모든 CMS는 설치시 정확히 작동합니다. joomla 또는 wordpress 또는 당신이 생각할 수있는 다른 CMS에 대한 설치 코드를 살펴보면 설치 방법을 알 수 있습니다. 귀하의 질문은 약간의 givemecodez, 당신이 원하는 시스템을 구현하려고 시도하고 발생하는 특정 문제가 여기에 와서. 여기에서 질문해야 할 질문 유형에 대해서는 [faq] (http://stackoverflow.com/faq)를 참조하십시오. – vascowhite

+0

phpbb는 vascowhite의 목록에 추가하는 것과 똑같습니다. –

답변

1

nowdoc 당신의 스크립트를 변수에 저장하는 데 사용할 수 있습니다.

그런 다음 str_replace과 같은 작업을 수행하여 필요한 데이터를 덤프 할 수 있습니다. 예를 들어 str_replace('DATABASENAME, $DBNAME, $script);으로 스크립트의 DATABASENAME$DBNAME 값으로 바꿉니다.

관련 문제