W tym poradniku przedstawię prosty sposób na raportowanie plików np. na stronie z downloadem. Możemy go oczywiście wykorzystać do innego celu. Skrypt ten pozwoli nam na zgłoszenie niedziałającego linku, które zostanie wysłane na wskazany e-mail.
Skrypt dodatkowo wyśle nam informacje o użytkowniku, który zgłasza dany plik (przeglądarka, host, ip).
Adres URL, numer id, lub nazwa zgłaszanego pliku przesłane zostaną metodą GET. Na naszej stronie dodajemy więc kod:
<a href="http://jakasdomena.pl/raportuj.php?pliczek=$id"><img src="images/raportuj.png" alt="raportuj"></a>
gdzie zmienna $id to numer ID naszego pliku - zostanie on automatycznie dopisany do zgłoszenia i nie będzie go można edytować.
Możemy oczywiście użyć jakiejkolwiek innej zmiennej, skrypt należy dostosować do własnych potrzeb ;)
Listing
<html>
<head>
<META HTTP-EQUIV="content-type" CONTENT="text/html; CHARSET=iso-8859-2">
<title> Raportuj </title>
<script language="JavaScript1.2">
<!--
function sprawdzAdres() {
var dobryEmail = /^[^@]+@([a-z0-9\-]+\.)+[a-z]{2,4}$/i;
/* wyrażenie opisuj±ce dobry adres e-mail:
^ - pocz±tek napisu
[^@]+ - 1 lub więcej znaków innych niż @
@ - znak @
([a-z0-9\-]+\.)+ - jedna lub więcej grupa, a w niej:
[a-z0-9\-]+ - jedna lub więcej litera, cyfra lub my¶lnik
\. - kropka
[a-z]{2,4} - od dwóch do czterech liter
$ - koniec napisu
*/
if (dobryEmail.test(document.form.email.value)) {
return true
} else {
alert('"' + document.form.email.value +
'" to nie jest poprawny adres e-mail!');
return false;
}
}
function poprawImieNazwisko() {
// To jest event handler, więc możemy używać "this".
// Zamienia zapis "nazwisko[może spacje],[może spacje]imię" na
// "imię nazwisko".
this.value = this.value.replace(/^(.*)\s*,\s*(.*)$/, "$2 $1");
}
function inicjuj() {
document.form.onsubmit = sprawdzAdres;
document.form.imienazwisko.onchange=poprawImieNazwisko;
}
window.onload = inicjuj;
//-->
</script>
</head>
<body>
<form name="form" method="post" action="mail.php3">
Podaj swój nick:<br>
<input type="text" name="imie"><br>
Podaj swój email:<br>
<input type="text" name="email"><br>
Powód zgłoszenia:<br>
<textarea name="tresc" rows="5" cols="40"></textarea><br>
<input type="hidden" name="info" value=" <?
if ($_SERVER['REMOTE_ADDR'] == '')
{
$_POST[ip] = $_SERVER['REMOTE_ADDR'];
} else $_POST[ip] = $_SERVER['REMOTE_ADDR'];
echo "IP: $_POST[ip]. \n";
echo "Host: ".gethostbyaddr($_SERVER['REMOTE_ADDR'])."\n";
echo "Przegl±darka: ".$_SERVER['HTTP_USER_AGENT'];
?>" />
Zgłaszany plik:<br>
<textarea name="pliczek" readonly="readonly" cols="50" rows="2"><? $pliczek = $_GET['pliczek']; echo "$pliczek"; ?></textarea>
<br><input type="submit" name="submit" value="wy¶lij">
</form>
</BODY>
</html>
//mail.php3
<?
if (($_POST[imie] == "") || ($_POST[email] == "") || ($_POST[tresc] == ""))//jeśli jakiekolwiek z pól zostało pominięte tworzymy formularz
{
echo "<form name=form method=post action=mail.php3>";
echo "Nie wypełniłeś wszystkich pól formularza... uzupełnij brakujące pola<br>";
}
if ($_POST[imie] == "")//sprawdzamy czy pole imie jest puste
{
echo "Podaj swój nick:<br><input type=text name=imie><br>";//jeśli pole imie jest puste wyświetlamy pole imie itd...
}
else
{
echo "<input type=hidden name=imie value=$_POST[imie]>";
}
if ($_POST[email] == "")
{
echo "Podaj swój email:<br><input type=text name=email><br>";
}
else
{
echo "<input type=hidden name=email value=$_POST[email]>";
}
if ($_POST[tresc] == "")
{
echo "Tresć wiadomości:<br><textarea name=tresc rows=5 cols=40></textarea><br>";
}
else
{
echo "<input type=hidden name=tresc value=$_POST[tresc]>";
}
if (($_POST[imie] == "") || ($_POST[email] == "") || ($_POST[tresc] == ""))
{
echo "<input type=submit name=submit value=wyślij>";
echo "<input type=reset name=reset value=od nowa>";
echo "</form>";//zamykamy formularz
}
else
{
$_POST[wiadomosc] = "=======================================RAPORT=======================================\n\nImię: $_POST[imie]\nEmail: $_POST[email]\nPowód zgłoszenia: $_POST[tresc]\npliczek: $_POST[pliczek]\n\n===================================DODATKOWE INFO===================================\n$_POST[info]\n====================================================================================";
$_POST[header] = "From: $_POST[email]\n";
mail ("admin@jakasdomena.pl,drugi-admin@jakasdomena.pl.pl", "Raport", $_POST[wiadomosc], $_POST[header]);
echo "Dzięki za zgłoszenie, $_POST[imie] ;)";
}
?>