Herzlich willkommen im SEO Forum der ABAKUS Internet Marketing GmbH
registrieren registriertes Mitglied
Code: Alles auswählen
<button onclick="leiteweiter('link340')">Apfelsinen<button>
<button onclick="leiteweiter('link341')">Bananen<button>
Code: Alles auswählen
<button id="link340">Apfelsinen<button>
<button id="link341">Bananen<button>
Nun habe ich gerade einen Seite mit Button fertig. In der Seite einen Button:Robert79 hat geschrieben:Sowas würde ich schon gerne haben wollen.
Code: Alles auswählen
<button id="diese_id" type="button"> Download </button>
Code: Alles auswählen
if (document.getElementById("diese_id")) {
var starte_download = document.getElementById("diese_id");
if (window.addEventListener) {
starte_download.addEventListener("click", leiteWeiter, false);
}
else if (window.attachEvent) {
starte_download.attachEvent("onclick", leiteWeiter);
}
}
function leiteWeiter() {
window.location.href = "http://www.example.com/wohin_auch_immer.endung";
}
"... ist ein ungewöhnlicher Download und könnte schädlich sein."
Code: Alles auswählen
<?php
# Logdatei auf Zeilenanzahl pruefen und bei mehr als x Zeilen Datei leeren
$datei="logdatei.txt";
$logdatei = fopen($datei,"r+");
$zeilenanzahl = 0;
while ( $zeile = fgets($logdatei,4096) )
{
$zeilenanzahl++;
}
if ($zeilenanzahl > "20")
{
unlink($datei);
touch($datei);
}
# Logdaten schreiben mit Unterscheidung nach Minuten
fputs($logdatei,
date("d.m.Y, H:i",time()) .
", " . $_SERVER['REMOTE_ADDR'] ."\n"
);
fclose($logdatei);
# Logdatei auslesen und Zeilenumbrueche korrigieren
$text = file_get_contents('logdatei.txt');
$text = str_replace("\r\n", "\n", $text);
$text = str_replace("\r", "\n", $text);
# Array bilden, bei Vorhandensein von mindestens 15 Datensaetzen die Teile 6 bis 15 auf Uebereinstimmung pruefen (10 Zugriffe innerhalb einer Minute), IP mithilfe der htaccess-Datei sperren
$array = explode("\n", $text);
if ($array[15] != 0) {
if ($array[5] == $array[6] && $array[6] == $array[7] && $array[7] == $array[8] && $array[8] == $array[9] && $array[9] == $array[10] && $array[10] == $array[11]&& $array[11] == $array[12] && $array[12] == $array[13] && $array[13] == $array[14] && $array[14] == $array[15]) {
$htaccessdatei = fopen(".htaccess","a");
fputs($htaccessdatei, "order allow,deny"."\n"."deny from ".$_SERVER['REMOTE_ADDR'] ."\n"."allow from all"."\n\n");
fclose($htaccessdatei);
}
}
# Weiterleitung auf die gewuenschte Seite (Aufruf ueber weiterleitung.php?link=123)
switch ($_GET['link']) {
case "123": header("Location: http://www.example.com/123"); break;
case "345": header("Location: http://www.example.com/345"); break;
}
?>
Code: Alles auswählen
<?php
$kam_mit_ip = $_SERVER["REMOTE_ADDR"];
$controldatei = "visitscontrol.txt";
$speichertime = time();
$kontrollzeit = $speichertime -3600;
$vorgabe_maxh = 10; // max pro h von einer ip
$max_anzahl = 0;
$alterstring = "";
$gesamt_stunde = array();
// Prüfen, ob die Datei existiert und lesbar ist
if (file_exists($controldatei) and is_readable($controldatei)) {
// Datei zum Lesen öffnen
$lesen = fopen($controldatei,"r") or exit("F1");
// Eine Zeile nach der anderen lesen, so lange nicht das Dateiende erreicht ist.
while(!feof($lesen)) {
$eintraege = fgets($lesen);
$eintraege = preg_replace("/[^a-zA-Z0-9\/_.:&=-]/", "", $eintraege);
parse_str($eintraege);
// Prüfen, ob beibe Variablen geparst wurden und einen Wert enthalten.
if (isset($prostunde) and !empty($prostunde) and isset($ipad) and !empty($ipad)) {
// Nur die Einträge erneut in $alterstring einlesen, die in der letzten Stunde (-3600) erfolgten
if ($prostunde > $kontrollzeit){
$gesamt_stunde[] = $ipad;
$alterstring .= trim("t&prostunde=".$prostunde."&ipad=".$ipad)."\n";
unset($prostunde);
unset($ipad);
}
}
}
fclose($lesen);
}
$neuerstring = trim("t&prostunde=".$speichertime."&ipad=".$kam_mit_ip)."\n";
file_put_contents($controldatei, $alterstring.$neuerstring, LOCK_EX);
$zaehlips = array_count_values($gesamt_stunde);
$max_anzahl = max($zaehlips);
$welche_ip = "-";
if ($max_anzahl >= $vorgabe_maxh) {
$welche_ip = array_search($max_anzahl, $zaehlips);
}
if ($welche_ip == $kam_mit_ip) {
echo $welche_ip;
/*
Gibt jetzt nur die IP aus, die bereits max pro h von einer ip
überschritten hat. Dafür könnte auch exit folgen.
*/
}
else echo "Es hat noch keine IP-Adresse das Limit überschritten.";
?>
Geht mir nicht anders, werde mir das noch einige Tage anschauen, wenn es dann immer noch so sein sollte, irgendwie ändern. Liegt ja vielleicht nicht an JavaScript, ist vielleicht bei allen neuen Download-Dateien so, dass die erst gecrawlet werden müssen? Nur bisher scheint da noch kein Bot durchgekommen zu sein. Bei meinen älteren Scripts, die ich so zum Download anbiete, ist es ja auch nicht. Wenn das nur an der JS Weiterleitung liegen sollte, dann muss ich halt mal schauen.Robert79 hat geschrieben:Das schreckt mich ehrlich gesagt mit der Chrome-Meldung ein bisschen ab.
Das sieht mir extrem kompliziert aus. Ich wuerde hier empfehlen eine datenbank zu verwenden, einfach weil es einfacher und uebersichtlicher zu programmieren ist, und du musst nicht zeile fuer zeile haendisch parsen, zaehlenn und herrausfinden wie alt der datensatz ist.Robert79 hat geschrieben: Als Anfänger in PHP habe ich mir jetzt folgendes Script gebastelt.Code: Alles auswählen
<?php # Logdatei auf Zeilenanzahl pruefen und bei mehr als x Zeilen Datei leeren [...]
Ohje, ist das wirklich dein code den du auf deinem server einsetzt?Robert79 hat geschrieben:Code: Alles auswählen
# Weiterleitung auf die gewuenschte Seite (Aufruf ueber weiterleitung.php?link=123) switch ($_GET['link']) { case "123": header("Location: http://www.example.com/123"); break; case "345": header("Location: http://www.example.com/345"); break; } ?>
Code: Alles auswählen
// parameter mit (int) zwingend in einen zahlenwert konvertieren, und pruefen on der wert gesetzt ist:
$link_id = (int)$_GET['link'];
if(!empty($link_id)) {
$sql = "SELECT destination FROM redirects WHERE id = ".$link_id;
[abfrage ueber deine db klasse]
if(!empty(result['destination'])) {
$redirect = result['destination'];
} else {
$redirect = error_log("Link ID ".$link_id." nicht vornhanden (ref: ".$_SERVER['HTTP_REFERER'].")");
}