Hack на скрипт - Announce Mail - HELP

19 отговора 1103 прегледа
#1

Hack на скрипт - Announce Mail - HELP

Здравейте,

Надявам се че ще ми помогнете. Харесах си един скрипт за майлинг лист "Announce Mail" тук е сорса.
Добър е скрипта, но когато се зареди страницата се появява Powered by Announce Mail както е показано тук и не се вмества в моя темплейт. Разгледах най-подробно кода, но не мога да разбера от къде се появява този надпис и не мога да го махна.
Ще съм ви много благодарен ако ми помогнете.

p.s Този въпрос не е за обитателите на клуб PHP, защото те освен да псуват друго не знаят. Стойте си там и не се обаждайте когато някой иска помощ тук. А колкото до 15$ най-напред си вижте windowsa дали ви е лицензиран.

Отговор
в отговор на Dok #2

Земи се скрии някъде !

Земи се скрии някъде - точно такива като тебе най-много ме дразнят !

Отговор
в отговор на Учeщ #3

Re: Земи се скрии някъде !

Стой си на село като се дразниш толкова много ...

Отговор
в отговор на Dok #4

Re: Hack на скрипт - Announce Mail - HELP

Тай кат та гледам, нямаш шанс - не за друго (туй дет те мъчи, мое се махне, ма не е там работата) просто такова нещо е коствало на някой съответните усилия и време да го направи (това дет го искаш не върви - никой не обича да го крадат); и хубаво пуснал го е фрее, а на теб ти се свиди да го кредитираш с един гол линк, ебаси!

Отговор
в отговор на Dok #5

Няма ли модератор тук?

Stipe, разкарай го тоя

Проблема не се решава в момента, в който си изтървете нервите
Отговор
в отговор на Volkano v.5 #6

Re: Hack на скрипт - Announce Mail - HELP

Ok, щом е свързно с време само ми кажи кой ред да редактирам и аз ще си го оправя.

Отговор
в отговор на Dok #7

Re: Hack на скрипт - Announce Mail - HELP

хаха...
ето ти начин как да го оправиш:

1. отваряш файла
2. натискаш CTRL+Home
3. натискаш CTRL+Shift+End
4. натискаш Del
5. отиваш в менюто File->Save
6. готов си :)

Just a genius

Отговор
в отговор на Ивaнyшka #8

Re: Няма ли модератор тук?

Мда наистина Страйп махни го тоя ламър бездарен. Да ходи някъде другаде да пита как да си махне 1 ред от кода

Отговор
в отговор на lazo #9

Re: Няма ли модератор тук?

Ако никой не беше отговарял, темата щеше да си замине сама.

Отговор
в отговор на Dok #10

Все пак давам ти шанс ...

Ако си оправиш държането и се извиниш - ще ти покажа как да скриеш или разкараш надписа "Powered by Announce Mail " - обещавам ..

Отговор
в отговор на Учeщ #11

Re: Все пак давам ти шанс ...

Извинявам се най-тържествено ако съм обидил някой !!!
Просто помолих за помощ, но не както трябва явно. Вземам си поука.
Моля те дай ми съвет.

Отговор
в отговор на Dok #12

Re: Все пак давам ти шанс ...

Извинявай за така Ламерския отговор, ама не мога да отваря там, където е скрипта, ще копираш ли сорса, да видя ?

А иначе ти перпоръчвам да не го правиш.Както ти каза Вулкано, това е чужд труд и ей така да си го присвоиш като махнеш малката рекламката е много гадно.Все пак ако ти направиш някой програма или нещо такова и напишеш "Направено от Dok" и сложиш линк към твоя сайт, хубаво ли ще ти стане, някой като го премахне и си я използва публично.
Но щом си решил . . .

Отговор
в отговор на ~Trecho~ #13

Re: Все пак давам ти шанс ...

Благодаря ти предварително. Аз също по скоро се интересувам как е направено а не толкова че ще го ползвам.

Ето го сорса на индекса:

<?PHP
error_reporting (E_ERROR | E_PARSE);
if (ini_get("magic_quotes_sybase")) ini_set("magic_quotes_sybase",0);
if (!get_magic_quotes_gpc()) ini_set("magic_quotes_gpc",1);
if (!get_magic_quotes_runtime()) set_magic_quotes_runtime(1);
if ($s[kun]='UG93ZXJlZCBieSBBbm5vdW5jZSBNYWls') $x = 1; else $x = 0;
if (ini_get("register_globals")) ini_set("register_globals","Off");
include("./data/messages.php"); include("./data/data.php");
$m = strip_replace_array($m);
$linkid = db_connect();
if (!$linkid) problem(sql_error());
$f = fopen ("$s[phppath]/data/templates/_header.txt","r");
$s[header] = fread($f,filesize("$s[phppath]/data/templates/_header.txt")); fclose ($f); $r = $s[phprath].$s[phpruth].$s[kun].'PC9hPjxicj4='; if ((strlen($r))!=104) exit;
$f = fopen ("$s[phppath]/data/templates/_footer.txt","r"); $s[footer] = fread($f,filesize("$s[phppath]/data/templates/_footer.txt")); fclose ($f);

switch ($HTTP_GET_VARS[action]) {
case 'login' : login($HTTP_GET_VARS);
case 'joined' : joined($HTTP_GET_VARS);
case 'unsubscribe' : unsubscribe($HTTP_GET_VARS);
case 'confirm' : confirm($HTTP_GET_VARS,$HTTP_SERVER_VARS[REMOTE_ADDR]);
}
switch ($HTTP_POST_VARS[action]) {
case 'login' : login($HTTP_POST_VARS);
case 'joined' : joined($HTTP_POST_VARS);
case 'edited' : edited($HTTP_POST_VARS);
}
if (!$HTTP_POST_VARS[username]) submit_form('');


function edited($data) {
global $s,$m;
$formular = form_control($data); $chyba = $formular[0]; $form = $formular[1];
if ($chyba) { $s[info] = eot($m[errorsfound],implode('
',$chyba)); login($form); }
write_to_db($form);
$form[password] = $form[newpass]; login($form);
exit; }

function unsubscribe($data) {
global $s;
$q = dq("delete from $s[tblname] where username = '$data[username]' and password = '$data[password]'",0);
if (!mysql_affected_rows()) problem('Your account can\'t be found.');
parse_page('unsubscribed.html',$s);
}

function joined($data) {
global $s,$m;
$formular = form_control($data);
$chyba = $formular[0];
$form = $formular[1];
if ($chyba) { $form[info] = eot($m[errorsfound],implode('
',$chyba)); submit_form ($form); }
$cas = write_to_db($form); $form[code] = md5($cas); send_email($form); show_thankyou($form); }

function login_form() {
global $s; parse_page('user_login.html',$s);
}

function login($form) {
global $s,$m; if (!$form[username]) login_form();
$q = dq("select * from $s[tblname] where username='$form[username]' AND password='$form[password]' AND confirm = 1",1);
$result = mysql_fetch_array($q);
if (!$result[number])
{ $s[info] = iot($m[w_user]); $s[username] = $form[username]; login_form(); exit; }
$result[info] = $s[info];
parse_page('user_edit.html',$result);
}

function confirm($data,$ip) {
global $s,$m;
if (!$ip) $ip = 1;
$q = dq("select time from $s[tblname] where username = '$data[user]' AND password = '$data[password]'",1);
$x = mysql_fetch_row($q);
if (!$x[0]) problem($m[no_account]);
$code = md5($x[0]); if ($code!=$data[code]) problem($m[w_confirm]);
$q = dq("update $s[tblname] set ip = '$ip', confirm = 1 where username = '$data[user]' AND password = '$data[password]'",1);
parse_page('user_confirmed.html',$form);
}

function show_thankyou($form) {
global $s;
$form = strip_replace_array($form);
parse_page('user_joined.html',$form);
}

function send_email($form) {
global $s;
$form = strip_replace_array($form);
$form[to] = $form[email];
$form[confirm_url] = "$s[phpurl]/index.php?action=confirm&user=$form[username]&password=$form[password]&code=$form[code]";
sendemail("$s[phppath]/data/templates/email_confirm.txt",$form);
}

function sendemail($template,$value) {
global $s,$m;
$fd = fopen($template,'r') or problem ("$m[erroropentmpl] $template");
while ($line = fgets($fd,4096)) $emailtext .= $line; fclose($fd); eregi("Subject: +([^\n\r]+)", $emailtext, $regs); $sub = $regs[1];
$emailtext = eregi_replace("Subject: +([^\n\r]+)[\r\n]+",'', $emailtext); reset ($value); while (list($key, $val) = each ($value)) $emailtext = str_replace("#%$key%#",$val,$emailtext);
$emailtext = eregi_replace("#%[a-z0-9_]*%#",'', $emailtext); $emailtext = strip_replace_once($emailtext);
//echo "To: $value[to]
From: $s[email]
Sub: $sub
$emailtext


"; $ok = 1;
$ok = mail($value[to], $sub, $emailtext, "From: $s[email]"); return $ok;
}

function write_to_db($form) {
global $s,$HTTP_SERVER_VARS;
$cas = time(); $form = add_slashes_array($form);
if ($form[action]=='edited') dq("update $s[tblname] set password = '$form[newpass]', email = '$form[email]', name = '$form[name]' where username = '$form[username]' and password = '$form[password]'",1);
else dq("insert into $s[tblname] values (NULL,'$form[username]','$form[password]','$form[name]','$form[email]','$HTTP_SERVER_VARS[REMOTE_ADDR]','$cas','0')",1);
$cislo = mysql_insert_id();
return $cas;
}

function form_control($form) {
global $s,$m;
if ($form[action]=='edited')
{ $q = dq("select count(*) from $s[tblname] where username = '$form[username]' AND password = '$form[password]'",0);
$x = mysql_fetch_row($q); if (!$x[0]) problem($m[no_auth]);
if (!eregi("^[a-z0-9]{5,15}$",$form[newpass])) $chyba[] = $m[wrongpassword];
}
else
{ if (!eregi("^[a-z0-9]{5,15}$",$form[username])) $chyba[] = $m[wrongusername];
if (!eregi("^[a-z0-9]{5,15}$",$form[password])) $chyba[] = $m[wrongpassword];
$q = dq("select count(*) from $s[tblname] where username = '$form[username]'",0); $x = mysql_fetch_row($q); if ($x[0]) $chyba[] = $m[use_username];
$q = dq("select count(*) from $s[tblname] where email = '$form[email]'",0); $x = mysql_fetch_row($q); if ($x[0]) $chyba[] = $m[existing];
}
if (!trim($form[email])) $chyba[] = $m[m_email]; elseif (strlen($form[email]) > 100) $chyba[] = $m[l_email]; elseif ( !(eregi("^[a-z0-9_.-]+@[a-z0-9_-]+\.[a-z0-9.]+$",$form[email])) ) $chyba[] = $m[w_email];
if (!trim($form[name])) $chyba[] = $m[m_name]; elseif (strlen($form[name]) > 100) $chyba[] = $m[l_name]; else $form[name] = ucwords(strtolower($form[name]));
$form = strip_replace_array($form); return array ($chyba,$form);
}

function submit_form($form) {
global $s; parse_page('user_join.html',$form);
}

function show_form($a) {
global $s; $a[pageurl] = $s[pageurl];
parse_page('add.html',$a);
}

function strip_replace_once ($x) { if (!$x) return $x; $x = stripslashes(ereg_replace("''","'",$x)); $x = eregi_replace('&amp;','&',$x); return $x; }

function sql_error() { global $dbe; if(empty($dbe[text])) { $dbe[number] = mysql_errno(); $dbe[text] = mysql_error(); } return "$dbe[number]: $dbe[text]"; }
function problem ($error) { global $s; $s[info] = $error; parse_page('error.html', $s); }
function strip_replace_array ($a) { if (!$a) return $a; reset ($a); while (list ($k, $v) = each ($a)) { if (is_array($v)) continue; $a[$k] = ereg_replace("''","'",strip_tags($v)); $a[$k] = htmlspecialchars(ereg_replace("[\]",'',$a[$k])); $a[$k] = eregi_replace('&amp;','&',$a[$k]); } return $a; }
function add_slashes_array ($a) { if (!$a) return $a; reset ($a); while (list ($k, $v) = each ($a)) { if (is_array($v)) continue; $a[$k] = addslashes(ereg_replace("''","'",$v)); } return $a; }

function parse_page($template,$value) {
global $s,$m;
$template = "$s[phppath]/data/templates/$template";
global $s,$m; if (!is_array($value)) $value = array();
$value[adminemail] = $s[mail];
$f = fopen($template,'r') or problem ("$m[erroropentmpl] $template");
while (!feof($f)) $line .= fgets($f,4096); fclose ($f);
$line1=base64_decode($s[phprath]).base64_decode($s[phpruth]).base64_decode($s[kun]).base64_decode('PC9hPjxicj4=');
while (list($k,$v) = each($value)) $line = str_replace("#%$k%#",$v,$line); reset($value);
$line = eregi_replace("#%[a-z0-9_]*%#",'',strip_replace_once($line)); include ('./data/templates/_header.txt'); echo $line; include('./data/templates/_footer.txt'); echo $line1; exit; }

function parse_part($template,$value) { global $s,$m; if (!is_array($value)) $value = array(); $value[adminemail] = $s[mail];
$fh = fopen( "$template", 'r' ) or problem ("$m[erroropentmpl] $template"); while (!feof($fh)) $line .= fgets ($fh,4096); fclose ($fh);
while (list($key,$val) = each ($value)) $line = str_replace("#%$key%#",$val,$line); reset ($value); $line = eregi_replace("#%[a-z0-9]*%#",'',strip_replace_once($line)); return $line; }

function db_connect() { global $s,$m,$dbe; $link_id = mysql_connect($s[dbhost],$s[dbusername],$s[dbpassword]);
if(!$link_id) { $dbe[number] = 0; $dbe[text] = "$m[dbconnecterror] $s[dbhost]."; return 0; }
if(empty($s[dbname]) && !mysql_select_db($s[dbname])) { $dbe[number] = mysql_errno(); $dbe[text] = mysql_error(); return 0; }
if(!empty($s[dbname]) && !mysql_select_db($s[dbname])) { $dbe[number] = mysql_errno(); $dbe[text] = mysql_error(); return 0; } return $link_id; }

##################################################################################

function iot($info) {
return '<span class="text13blue"><b>'.$info.'</b></span>

';
}

##################################################################################

function eot($info,$errors) {
return '<span class="text13blue"><b>'.$info.'</b></span>
<span class="text13">'.$errors.'</span>

';
}

##################################################################################

function dq($query,$check) {
global $s;
$q = mysql_query($query);
if ( ($check) AND (!$q) ) problem(mysql_error());
return $q;
}

##################################################################################

?>

Отговор
в отговор на Dok #14

Добре ..

Викни си тази функция на onload на BODY-то на "проблемните" места ... Ако не знаеш как да я викнеш пиши пак тук ..


<script language="JavaScript" type="text/javascript">
<!--//
function hideAdv()
{
/*
Не случаино индексирам със j
долу .. по принцип е по-интересно
да се направи с PHP-то обаче имам
да уча за изпит и плюс това
ме мързи малко ..
*/
var hideAd=new Function( "obj" , "with(obj)"+
"{"+
"var allLinks=getElementsByTagName(\"A\");"+
"for(j=0;j<allLinks.length;j++)"+
"{"+
"if(allLinks[j].href.match(/phpwebscripts.com/))"+
"allLinks[j].style.display=\"none\";"+
"}"+
" } " );
if(window.top==this)
{
hideAd(window.document)
}
else{
for(j=0;j<window.top.frames.length;j++)
{
hideAd(window.top.frames[j].document);
}
}
}
//-->
</script>



Редактирано от Учeщ на

Отговор
в отговор на Учeщ #15

Re: Добре ..

"var hideAd=new Function..."

Т'ва с цел някаква или за по-интересно? :)

Отговор
в отговор на Paдo #16

Въпрос на вкус ..

Така "капсулираме" част от кода и си го използваме на местата във функцията където ни е необходим - вместо да го пишем няколко пъти ..

Отговор
в отговор на Учeщ #17

Re: Въпрос на вкус ..

Да де, ама защо не просто function x(args) {}?

Отговор
в отговор на Paдo #18

Ми защото

Защото по ми харесва като инстанциирам обект и го "типизирам"
да си го направя с new. Питаш защо не е така


var hideAd=function(obj)
{
with(obj)
{
var allLinks=getElementsByTagName("A");
for(j=0;j<allLinks.length;j++)
{
if(allLinks[j].href.match(/phpwebscripts.com/))
allLinks[j].style.display="none";
}
}
}


ами на тебе така какво не ти харесва ?


var hideAd=new Function( "obj" , "with(obj)"+
"{"+
"var allLinks=getElementsByTagName(\"A\");"+
"for(j=0;j<allLinks.length;j++)"+
"{"+
"if(allLinks[j].href.match(/phpwebscripts.com/))"+
"allLinks[j].style.display=\"none\";"+
"}"+
" } " );


На типа кеф му така кеф му иначе.

Редактирано от Учeщ на

Отговор
в отговор на Учeщ #19

Re: Добре ..

Учeщ

Много ти благодаря !!
Да знам как да я викна и наистина става номера, но ако се преработи кода ще е по интересно за другите тук - около 900 човека са погледнали този топик.
Така или иначе ти си първия тук който все пак наистина помогна и аз съм ти много благодарен.

Благодарности и към Paдo !

Отговор
в отговор на Dok #20

off

Не са 900 човека.
Брои се всеки клик на всеки отговор. Независимо, че си в същата тема.
Само ти може да си навъртял брояча 100 пъти.
Както и да е.

Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
Отговор