jensgebken
Goto Top

PHP - Weiterleitung inkl. zählen

Hallo Gemeinschaft,

habe eine subdomain eingerichtet ind der eine datei (index.php) reinsoll , wenn man diese aufruft, dann soll in eine db tabelle ein zähler sein, der die Häufigkeit mitzählt und dasnach weiterleitet auf die Hauptdomain

könnt ihr da helfen?

Content-Key: 52556619491

Url: https://administrator.de/contentid/52556619491

Printed on: April 27, 2024 at 10:04 o'clock

Member: ASP.NET.Core
ASP.NET.Core Nov 07, 2023 at 16:24:58 (UTC)
Goto Top
Hi,
Was soll man dir da helfen? Es steht keine vernünftige Frage oder auch nur eine Zeile Code drin. Im Gegenteil, was zu tun ist scheint dir sogar klar.

Das klingt als suchst du einen Dummen, der dir deine Arbeit machst. So was ist bei einem Dienstleister den du dafür bezahlst okay, in einem Community Forum finde ich das dreist.
Member: Crusher79
Crusher79 Nov 07, 2023 at 16:57:45 (UTC)
Goto Top
Moin,

https://matomo.org/

Das würde so einiges bieten.
Member: StefanKittel
StefanKittel Nov 07, 2023 at 22:45:42 (UTC)
Goto Top
Hallo,

zwei Vorschläge:
1. Auslesen der access.log Datei und daran den Zähler anpassen
2. Eine PHP-Datei welche den Download und den Zähler steuert https://dl.firma.de/download.php?name=file1.zip
Dabei aufpassen, dass Niemand dies Skript nutzt um Deinen Server zu übernehmen.

Stefan
Member: maretz
maretz Nov 08, 2023 at 06:12:42 (UTC)
Goto Top
oder man baut sich das in 30 sek selbst... bei der anforderung ne einfache DB-Anfrage, bestehenden wert um 1 hochzählen, fertig...
Member: Jugg3r
Jugg3r Nov 08, 2023 at 06:57:45 (UTC)
Goto Top
Jup, Datenbank-Tabelle mit verschiedenen Feldern inkrementel hochzählen lassen, wie schon angedacht.
Die Weiterleitung über PHP ist zwar nicht ganz "sauber", aber mit die einfachste Möglichkeit, wenn ein Aufrufzähler eingebaut werden soll.
Member: jensgebken
jensgebken Nov 08, 2023 updated at 07:14:51 (UTC)
Goto Top
guten morgen

habe in der Nacht nochmal geschaut und dieses gefunden
<?php
// Counter für Seitenaufrufe

$dateiname = "counter.txt";  

// Überprüfen ob die Datei vorhanden ist
if (!file_exists($dateiname)) {

 // Datei erstellen und die Zahl: 0 eintragen
 file_put_contents($dateiname, "0");  
}

// Zahl auslesen
$zahl = intval(file_get_contents($dateiname));

// Zahl erhöhen und speichern
$zahl++;
file_put_contents($dateiname, $zahl);

// Zahl ausgeben
echo $zahl . ' Seitenaufrufe';  
?>

wie würdet ihr es dann realisieren, dass dann meine Hauptseite aufgerufen wird - nachdem gezählt wurde
Member: NordicMike
NordicMike Nov 08, 2023 at 07:21:07 (UTC)
Goto Top
Das sind Grundkenntnisse eines Webservers. Jeder Webserver bietet dir Logs an, die du nur durchzählen brauchst, und jeder Server bietet dir HTTP Redirect an, je nach dem welchen du benutzt.

Wenn Du es direkt im PHP machen möchtest, recherchiere mal nach:

http redirect per php
Member: jensgebken
jensgebken Nov 08, 2023 at 07:23:59 (UTC)
Goto Top
hab mich für header entschieden

<?php
header("Location: http://www.site.de");  
// Counter für Seitenaufrufe

$dateiname = "counter.txt";  

// Überprüfen ob die Datei vorhanden ist
if (!file_exists($dateiname)) {

 // Datei erstellen und die Zahl: 0 eintragen
 file_put_contents($dateiname, "0");  
}

// Zahl auslesen
$zahl = intval(file_get_contents($dateiname));

// Zahl erhöhen und speichern
$zahl++;
file_put_contents($dateiname, $zahl);

// Zahl ausgeben
echo $zahl . ' Seitenaufrufe';  

?>
spricht was dagegen
Member: NordicMike
NordicMike Nov 08, 2023 at 07:28:11 (UTC)
Goto Top
Wer sieht das Echo?

Evtl musst du noch ein "\n" in die Datei hinzufügen, damit es übersichtlicher in eine neue Zeile gespeichert wird, fall es nicht schon von selbst macht.
Member: em-pie
em-pie Nov 08, 2023 updated at 07:46:40 (UTC)
Goto Top
Moin,

ich würde ja eine Funktion erstellen, die du aufrufst. Innerhalb der Funktion kannst du dann - wie auch immer - die Aufrufe zählen.
Wenn du es jetzt man zunächst nur per Datei löst, kannst du die Funktion später dahingehend abändern, dass das Zählen über eine Datenbank erfolgt.

Ich weis ja nicht, was dein Ansinnen ist, aber ich würde keinen Zähler hochzählen lassen, sondern Zeitstempel "irgendwohin" schreiben.
Warum: dann kannst du die einzelnen Zeitstempel auswerten und z. B. sagen, dass pro Stunde/ Tag/ Woche/ Monat die Seite soundso häufig aufgerufen wurde. Mit einem stumpfen Zähler wird das nichts. Und was machst du, wenn die Seite aufgerufen wird, während der vorherige Aufruf die Datei aber noch nicht weggespeichert hat? Dann geht dir ein Aufruf flöten...


Links
Member: Jugg3r
Jugg3r Nov 08, 2023 at 07:47:07 (UTC)
Goto Top
Eigentlich wäre es wichtig zu wissen, mit welchem Trafik Du auf der Subdomäne rechnest.
Davon ist abhängig ob die "Zählerstände" immer direkt geschrieben werden sollen, oder wie mein Vorgänger richtig dargestellt hat, besser in einem Speicher über eine Zeit X behalten und dann geschrieben werden.
Member: jensgebken
jensgebken Nov 08, 2023 at 10:40:30 (UTC)
Goto Top
problem ist bei den android telefonen - dort kommt eine frage ob man auf die website weitergeleitet werden möchte - beim iphone geht es
Member: ASP.NET.Core
ASP.NET.Core Nov 13, 2023 at 08:46:47 (UTC)
Goto Top
Zitat von @jensgebken:
spricht was dagegen
Erst Umleiten & dann protokollieren? Mit Textdateien ist unsauber, z.B. bei parallelen Zugriffen gegenseitiges überschreiben möglich. Wie schon gesagt: Dein Ansatz mit der DB war sinnvoll. Wenn das so einfach reicht, die Tabelle mit einer Spalte anlegen. Ich würde mindestens eine weitere für den Zeitstempel machen, um Auswertungen nach z.B. Datum machen zu können. Gegebenenfalls ist auch eine IP-Sperre sinnvoll, damit eine Person nicht (gewollt oder ungewollt) die Daten durch zig Aufrufe verfälscht.

Und es gibt verschiedene Arten von Umleitungen: 301 dauerhaft, 402 temporär. Das ist v.a. für Suchmaschinen relevant, bei 301 fliegt die alte Adresse auf Dauer aus dem Index.