Bolo by dobré vypísať správu už pri zobrazení formulára. Upravený spript rservice.php:
<?php
######################################################################
# phpRS Reader's service 1.3.8
######################################################################
// Copyright (c) 2001-2006 by Jiri Lukas ([email]jirilukas@supersvet.cz[/email])
// [http://www.supersvet.cz/phprs/]
// This program is free software. - Toto je bezplatny a svobodny software.
/*
Tento script slouzi k obsluze specialni ctenarskych sluzeb: zasilani informacniho mailu a tisk clanku.
*/
// vyuzivane tabulky: rs_clanky
// upravu proti neautorizovanemiu odosielaniu mailov doplnil Patrik JAN (pa3k) www.kvalitne.sk
// 21.5.2007
define('IN_CODE',true); // inic. ochranne konstanty
include_once("config.php");
include_once("myweb.php");
// test na pritomnost promenne $akce
if (!isset($GLOBALS["akce"])):
echo "<html><body><div align=\"center\">".RS_AKCE_ERR."</div></body></html>\n";
exit();
endif;
// test na pritomnost promenne $cisloclanku
if (!isset($GLOBALS["cisloclanku"])):
echo "<html><body><div align=\"center\">".RS_VW_ERR1."</div></body></html>\n";
exit();
endif;
function CtenariTestNaAdresu($mail = '')
{
// tato funkce testuje platnost zadaneho e-mailu
if (ereg('^[_a-zA-Z0-9\.\-]+@[_a-zA-Z0-9\.\-]+\.[a-zA-Z]{2,4}$',$mail)):
return 1; // spravna struktura
else:
return 0; // chybna struktura
endif;
}
function NovyMail()
{
if ($GLOBALS["prmyctenar"]->ctenarstav==1) {
// bezpecnostni korekce
$GLOBALS["cisloclanku"]=phprs_sql_escape_string($GLOBALS["cisloclanku"]);
// zjisteni titulku
$dotazclanek=phprs_sql_query("select titulek from ".$GLOBALS["rspredpona"]."clanky where link='".$GLOBALS["cisloclanku"]."'",$GLOBALS["dbspojeni"]);
if ($dotazclanek!=0&&phprs_sql_num_rows($dotazclanek)>0):
$pole_clanek=phprs_sql_fetch_assoc($dotazclanek);
else:
$pole_clanek['titulek']='';
endif;
?>
<p align="center" class="nadpis"><? echo RS_CS_NADPIS; ?></p>
<p align="center" class="z"><strong><? echo RS_CS_CLANEK; ?>: <? echo $pole_clanek['titulek']; ?></strong></p>
<form action="rservice.php" method="post">
<input type="hidden" name="akce" value="sendinfo" />
<input type="hidden" name="cisloclanku" value="<? echo $GLOBALS["cisloclanku"]; ?>" />
<input type="hidden" name="prtitulek" value="<? echo $pole_clanek['titulek']; ?>" />
<table border="0" cellspacing="0" cellpadding="0" align="center">
<tr class="z"><td><? echo RS_CS_PRIJEMCE; ?>:</td><td><input type="text" size="40" name="prprijemce" value="@" class="textpole" /></td></tr>
<tr class="z"><td><? echo RS_CS_ODESILATEL; ?>:</td><td><input type="text" size="40" name="prodesilatel" value="@" class="textpole" /></td></tr>
<tr class="z"><td colspan="2" align="center"><br /><? echo RS_CS_TEXT_ZPR; ?><br /><textarea name="przprava" cols="50" rows="4" wrap="yes" class="textbox"></textarea></td></tr>
</table>
<p align="center"><input type="submit" value=" <? echo RS_CS_ODESLAT; ?> " class="tl" /></p>
<p align="center" class="z"><? echo RS_CS_INFO_TEXT; ?></p>
</form>
<p></p>
<?php
} else {
// chybova sprava, odoslat email moze len registrovany
echo '<p align="center" class="z">Je nám líto, ale tato funkce je povolena pouze pro registrované čtenáře. Prosím zaregistrujte se.</p>';
}
}
function OdeslaniMailu()
{
$chyba=0; // inic. testu na chyby
// test na chyby
if (CtenariTestNaAdresu($GLOBALS["prprijemce"])==0):
$chyba=1;
endif;
if (CtenariTestNaAdresu($GLOBALS["prodesilatel"])==0):
$chyba=1;
endif;
// text zobrazeny na strance
echo "<p align=\"center\" class=\"nadpis\">".RS_CS_NADPIS."</p>\n";
if ($chyba==1):
// chyba
echo RS_CS_ERR2;
else:
if ($GLOBALS["prmyctenar"]->ctenarstav==1) {
// sestaveni tela zpravy
$obsah_zpravy=RS_CS_MAIL1.' '.$GLOBALS["prtitulek"]."\n";
$obsah_zpravy.=$GLOBALS["baseadr"].'view.php?cisloclanku='.$GLOBALS["cisloclanku"]."\n\n";
$obsah_zpravy.=RS_CS_MAIL2."\n";
$obsah_zpravy.=$GLOBALS["przprava"];
// sestaveni predmetu zpravy
$predmet_zpravy=RS_CS_MAIL_PREDMET.' '.$GLOBALS["wwwname"];
include_once('admin/astdlib_mail.php'); // nacteni postovni tridy
$odeslani_posty = new CPosta();
$odeslani_posty->Nastav("predmet",$predmet_zpravy);
$odeslani_posty->Nastav("obsah",$obsah_zpravy);
$odeslani_posty->Nastav("adresat",$GLOBALS["prprijemce"]);
$odeslani_posty->Nastav("odesilatel_mail",$GLOBALS["prodesilatel"]);
$odeslani_posty->Nastav("odesilatel_txt",'');
if ($odeslani_posty->Odesilac()==1):
echo "<p align=\"center\" class=\"z\">".RS_CS_DOPIS_OK."</p>\n"; // vse OK
else:
echo "<p align=\"center\" class=\"z\">".RS_CS_ERR1."</p>\n"; // chyba
endif;
} else {
// chybova sprava, odoslat email moze len registrovany
echo '<p align="center" class="z">Je nám líto, ale tato funkce je povolena pouze pro registrované čtenáře. Prosím zaregistrujte se.</p>';
}
endif;
echo "<p align=\"center\" class=\"z\"><a href=\"view.php?cisloclanku=".$GLOBALS["cisloclanku"]."\">".RS_CS_ZOBRAZ_CLA."</a></p>\n";
echo "<p></p>\n";
}
function TiskClanku()
{
// bezpecnostni korekce
$GLOBALS['cisloclanku']=phprs_sql_escape_string($GLOBALS['cisloclanku']);
include_once('trclanek.php'); // vlozeni tridy na zpracovani clanku
$GLOBALS['clanek'] = new CClanek();
$GLOBALS['clanek']->HlidatLevel(NactiConfigProm('hlidat_level',0));
$GLOBALS['clanek']->NastavZakazovouSab(NactiConfigProm('zobrazit_zakaz',0));
$GLOBALS['clanek']->NastavLevelCtenare($GLOBALS["prmyctenar"]->UkazLevel());
$vysledek_dotazu=$GLOBALS['clanek']->NactiClanek($GLOBALS['cisloclanku']);
if ($vysledek_dotazu==1): // test na existenci clanku
if ($GLOBALS['clanek']->Ukaz('zakazova_sab')==0): // test na uplatneni "zakazove sablony"
// tvorba print stranky
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<?php echo $GLOBALS['rsconfig']['kodovani']; ?>">
<title><?php echo $GLOBALS['wwwname']; ?></title>
<?php echo $GLOBALS['layoutcss']; ?>
</head>
<body bgcolor="#FFFFFF">
<?php
// sestaveni specialni tiskove clankove sablony
$spec_tisk_sablona=$GLOBALS['adrobrlayoutu'].'cla_tisk.php';
// test na existenci tiskove sablony
if (file_exists($spec_tisk_sablona)):
// vlozeni specialni tiskove clankove sablony
include_once($spec_tisk_sablona);
else:
// CHYBA: Chyba pri zobrazovani clanku cislo XXX! System nemuze nalezt odpovidajici sablonu!
echo "<p align=\"center\" class=\"z\">".RS_IN_ERR1_1." ".$GLOBALS['cisloclanku']."! ".RS_IN_ERR1_2."<p>\n";;
endif;
?>
<p></p>
<div align="center">
<form>
<input type="button" value="<?php echo RS_CS_TISK; ?>" onclick="if (window.print()==0) { alert('<?php echo RS_CS_ERR_TISK; ?>'); }" class="tl" />
</form>
</div>
<p></p>
</body>
</html>
<?php
// konec - tvorba print stranky
else:
// CHYBA: Chyba! Clanek cislo XXX neexistuje!
echo "<p align=\"center\" class=\"z\">".RS_VW_ERR2_1." ".$GLOBALS['cisloclanku']." ".RS_VW_ERR2_2."<p>\n";
endif;
else:
// CHYBA: Chyba! Clanek cislo XXX neexistuje!
echo "<p align=\"center\" class=\"z\">".RS_VW_ERR2_1." ".$GLOBALS['cisloclanku']." ".RS_VW_ERR2_2."<p>\n";
endif;
}
// test na typ akce
if ($GLOBALS["akce"]=='tisk'):
TiskClanku();
else:
// Tvorba stranky
$vzhledwebu->Generuj();
ObrTabulka(); // Vlozeni layout prvku
// rocestnik
switch ($GLOBALS["akce"]):
case 'info': NovyMail(); break;
case 'sendinfo': OdeslaniMailu(); break;
endswitch;
// Dokonceni tvorby stranky
KonecObrTabulka(); // Vlozeni layout prvku
$vzhledwebu->Generuj();
endif;
?>