php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 08-09-2006, 22:24
Lennie
 PHP Senior
Links : Onlinestatus : Lennie ist offline
Registriert seit: May 2006
Beiträge: 1.013
Lennie ist zur Zeit noch ein unbeschriebenes Blatt
Standard IP Zeit Sperre

Hallo Leute.

Ich bin gerade dabei, ein Script zu basteln, was verhindert das ein Mailscript als Spamversender genutzt wird.

Dafür will ich einstellen, das man nur jede Stunde eine Mail senden kann.

Um dies zu verwirklichen, habe ich in den Teil, der Den Text ausgibt, Die Mail wurde versand (in diesen Falle muss ja alles funktioniert haben)
den Code
PHP-Code:
$_SESSION['IP'] = $_SERVER['REMOTE_ADDR']; 
eingefügt.
Nun habe ich um das eigentliche Kontaktformular eine Abfrage gebaut die kontrolliert ob dieser User schon gesendet hat.
dafür habe ich folgendes script
PHP-Code:
 if($_SESSION['IP'] != $_SERVER['REMOTE_ADDR']) {
     
// Hier das Kontaktformular
} else {
   echo 
"es darf nur eine Mail pro Stunde gesendet werden! bitte
 gedulden sie sich!\n"

Soweit ich aber feststellen kann, bleibt die IP aber dauerhaft in der Session. Wie kann ich nun einstellen, dass sie nach einer belibigen Zeit in diesen Falle einer Stunde wieder verschwindet?
Mit Zitat antworten
  #2 (permalink)  
Alt 08-09-2006, 22:28
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard Re: IP Zeit Sperre

Na ja, wenn du dich auf den Eintragszeitpunkt beziehen willst, dann solltest du dir den vielleicht auch irgendwo merken ...


Aber was willst du da überhaupt mit (standardmäßigen) Sessions anfangen? Da sorge ich mal fix dafür, dass ich 'ne neue Session-ID bekomme - und womit vergleichst du dann bitte meine IP ...?
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #3 (permalink)  
Alt 08-09-2006, 22:32
Lennie
 PHP Senior
Links : Onlinestatus : Lennie ist offline
Registriert seit: May 2006
Beiträge: 1.013
Lennie ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Mhh habe das script noch nicht getestet. war jetzt kurz als frage.

Zum Thema neue Session ID, das könnte schwer werden, da ich gar keine Session ID erstellen lasse :P

Dies ist als Kontaktformular auf eienr Seite gedacht. Damit ein Postkasten nicht zugespammt wird. In diesen Falle meiner, da die Mails momentan noch an mich gehen.

Gibt es denn andere Möglichkeiten um zu verhindern dass das Kontakt formular missbraucht wird, wenn keine id erstellt wirt?
Mit Zitat antworten
  #4 (permalink)  
Alt 08-09-2006, 22:38
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

@lennie
Stichwort Proxy/NAT --> ein und dieselbe IP kann durchaus von mehreren Usern benutzt werden.
Also ich würde das nicht aussschliesslich auf IP Basis machen

Gruss

tobi
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #5 (permalink)  
Alt 08-09-2006, 22:39
Lennie
 PHP Senior
Links : Onlinestatus : Lennie ist offline
Registriert seit: May 2006
Beiträge: 1.013
Lennie ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Naja das habe ich jetzt auch mitbekommen. Welche Methoden gibt es denn, um einen Gast eine wirksame zeitsperre zu erteilen?
Mit Zitat antworten
  #6 (permalink)  
Alt 08-09-2006, 22:52
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von Lennie
Zum Thema neue Session ID, das könnte schwer werden, da ich gar keine Session ID erstellen lasse :P
Und wie willst du dann die "gespeicherten" IPs wieder aus einer Session auslesen, wenn du gar keine erstellst ...?
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #7 (permalink)  
Alt 08-09-2006, 22:55
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Welche Methoden gibt es denn, um einen Gast eine wirksame zeitsperre zu erteilen?
Wirksam weil nicht zu umgehen --> keine
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #8 (permalink)  
Alt 08-09-2006, 22:58
Lennie
 PHP Senior
Links : Onlinestatus : Lennie ist offline
Registriert seit: May 2006
Beiträge: 1.013
Lennie ist zur Zeit noch ein unbeschriebenes Blatt
Standard

OffTopic:
Naja da keine Antwort kommt habe ich mal die Suchfunktion genutzt.
Muss aber mal loben, heute hier mal schön und höflich behandelt worden. Heute irgendeinfestag? naja aber im ernst. so macht es doch gleich mehr spass dieses forum mit fragen zu belasten Vielleicht finde ich ja heute noch welche


Ich Habe nicht unbedingt passende Varianten gefunden, aber mir jetzt aus den Ideen was zusammengesucht, leider ist es wieder IP abhängig und noch etwas beta.

1. Bei Korrekt abgesendeter Mail wird die IP des Gastes und die Aktuelle Zeit in eine SQL Tabelle geschrieben.
2. Beim Eigentlichen Script wird die IP des Gastes geprüft, ob schon ein
Eintrag mit dieser IP besteht, wenn nicht, wird das Formular angezeugt.
Wenn ja, wird die Differenz zwischen dem Derzeitigen Zeitpunkt und dem in der Datenbank in variablen gespeichert. Mit einer kleinen Kontrolle mit Größer oder Kleiner als, wird nun kontrolliert, ob die Stunde schon zuende ist, oder nicht.
3. Wenn die Stunde noch nicht zuende Sein sollte wird eine Fehlermeldung angezeigt. Ansonsten nicht!


Nun sind abe noch 2 Punkte zu klären.

1. Möglicherweise nimmt die Datenbank eine ziemliche größe an.
Gibt es eine Möglichkeit die Spaltenanzahl auf ein maximum zu beschränken? Sollte dies überschritten werden, wird die jeweils kleinste id überschriben?

2. Was macht man, wenn tatsächlich 2 Personen unter einen Internetanschluss eine Mail schreiben wollten?
Mit Zitat antworten
  #9 (permalink)  
Alt 08-09-2006, 23:06
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Was macht man, wenn tatsächlich 2 Personen unter einen Internetanschluss eine Mail schreiben wollten?
Keine Sperre die auf IP basiert
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #10 (permalink)  
Alt 08-09-2006, 23:09
Lennie
 PHP Senior
Links : Onlinestatus : Lennie ist offline
Registriert seit: May 2006
Beiträge: 1.013
Lennie ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Coockies sind Löschbar, der Chache ist leerbar, IP's können von mehreren Genutzt werden. Wäre es nicht mal an der Zeit, dafür ein entgültiges Merkmal in die Zukünftigen Betriebssysteme einzusetzen, die nicht zu verfälschen sind, und von seiten des servers auslesbar?

Frage 1 hat keine Antwort?
Mit Zitat antworten
  #11 (permalink)  
Alt 08-09-2006, 23:29
3DMax
 PHP Senior
Links : Onlinestatus : 3DMax ist offline
Registriert seit: Jan 2004
Beiträge: 1.916
3DMax ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von Lennie
1. Möglicherweise nimmt die Datenbank eine ziemliche größe an.
Gibt es eine Möglichkeit die Spaltenanzahl auf ein maximum zu beschränken? Sollte dies überschritten werden, wird die jeweils kleinste id überschriben?

2. Was macht man, wenn tatsächlich 2 Personen unter einen Internetanschluss eine Mail schreiben wollten?
zu 1) ich würde da nicht noch eine extra id vergeben, also nur ip und timestamp. dann kannst du bei der überprüfung erstmal alle einträge löschen, die älter als ne stunde sind.

zu 2) beste und sichere möglichkeit: die benutzer müssen sich einloggen.
wenn du das nicht möchtest, dann gibt es keine wirklich sichere methode.

du könntest zusätzlich mit cookies arbeiten, versuchen, die ip auch hinter einem proxy herauszubekommen (hier im forum hab ich dazu mal eine gute funktion gefunden)...etc.
Mit Zitat antworten
  #12 (permalink)  
Alt 08-09-2006, 23:36
Lennie
 PHP Senior
Links : Onlinestatus : Lennie ist offline
Registriert seit: May 2006
Beiträge: 1.013
Lennie ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Sag doch bite stichwort womit ich das forum nach dieser funktion durchsuchen kann.

Zu 1. Die iDee ist nich schlecht, mache aber einen extra Punkt zum Löschen dieser ID's in den Admin bereich. Der Aufgerufen werden kann, sollte die tabelle 100 id's übersteigen dann wird es beim login gelöscht ansonsten manuel über den Adminpunkt.
Das hat den vorteil das der User beim Formularaufruf nicht von der Ladezeit des Löschvorgangs genervt wird.
Mit Zitat antworten
  #13 (permalink)  
Alt 08-09-2006, 23:59
3DMax
 PHP Senior
Links : Onlinestatus : 3DMax ist offline
Registriert seit: Jan 2004
Beiträge: 1.916
3DMax ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von Lennie
Sag doch bite stichwort womit ich das forum nach dieser funktion durchsuchen kann.
habs selbst kaum wiedergefunden. hier: IP über Proxy ermitteln

Zitat:
Das hat den vorteil das der User beim Formularaufruf nicht von der Ladezeit des Löschvorgangs genervt wird.
dauern bei dir die db-abfragen so lange?
du kannst auch bei der überprüfung abfragen "WHERE timestamp größer zeit - stunde"
Mit Zitat antworten
  #14 (permalink)  
Alt 09-09-2006, 13:46
Lennie
 PHP Senior
Links : Onlinestatus : Lennie ist offline
Registriert seit: May 2006
Beiträge: 1.013
Lennie ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Db abfragen nicht aber bei 400 die vor dem anzeuigen des eigentlichen scriptes gelöscht werden müssen, könnte ich mir vorstellen das das doch ein bisschen dauert oder?
Mit Zitat antworten
  #15 (permalink)  
Alt 09-09-2006, 17:33
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Dann erzeug doch erst die Ausgabe, schick sie zum Client - und lösche dann.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 11:24 Uhr.