WinFuture-Forum.de: Counter Php - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Counter Php Realoadsperre


#1 Mitglied ist offline   F481 

  • Gruppe: aktive Mitglieder
  • Beiträge: 292
  • Beigetreten: 13. April 08
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:daheim ^^

geschrieben 16. April 2008 - 20:49

Hallo Leute bin "Neuling" bei PHP. Bin grad dabei en kleinen simplen Counter zu erstellen.
Das klappt alles auch soweit ganz gut. Aber jetzt will ich noch eine Realoadsperre mit einbauen.

Wie mach ich das am besten hab hier schon mal en kleinen Ansatz:

<?php

  $ip = $_SERVER['REMOTE_ADDR'];
  $zeit = time();
  $schreibe = $ip . "|" .time()."\n";
  $re = fopen("reload.txt", "a+");
  $reloadin = file('reload.txt');

  for($i=0;$i<100;$i++) {
   $zeile = explode("|", $reloadin[$i]);
   $rest = time()-$zeile[1];
  }
   if($ip == $zeile[0] AND $rest < 60)
  {
   echo "Reloadsperre aktiv!! ";
  }

?>


Ist das einigermaßen in Ordnung und wie muss es jetzt noch weitergehen?
0

Anzeige



#2 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.942
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 17. April 2008 - 07:13

Stichwort Sessions...
Falls du damit nichts anfangen kannst, sag bescheid.
0

#3 Mitglied ist offline   F481 

  • Gruppe: aktive Mitglieder
  • Beiträge: 292
  • Beigetreten: 13. April 08
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:daheim ^^

geschrieben 17. April 2008 - 09:07

äh ja en bisschen kann ich damit anfangen. Aber du darfst es gerne nochmal erklären :rolleyes:
0

#4 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.942
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 17. April 2008 - 09:23

So z.B.
Zu Beginn startest du eine Sesion mit session_start(). In der Session speicherst du die IP-Adresse des Benutzers. Beim nächsten Request überprüfst du, ob die übertragene IP-Adresse in der Session vorhanden ist. Ist dies der Fall, weißt du dass der Benutzer schon mal hier war und erhöhst nicht den Counter.
0

#5 Mitglied ist offline   F481 

  • Gruppe: aktive Mitglieder
  • Beiträge: 292
  • Beigetreten: 13. April 08
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:daheim ^^

geschrieben 17. April 2008 - 12:02

hm ok könntest du mir ein script zur verdeutlichung zeigen?
0

#6 Mitglied ist offline   K050V4 

  • Gruppe: aktive Mitglieder
  • Beiträge: 788
  • Beigetreten: 13. August 04
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Stuttgart
  • Interessen:(X)HTML<br />CSS2+<br />PHP 4/5<br />MySQL 5<br />Symfony 1.2+<br />JavaScript / AJAX<br />jQuery<br />C++<br />C#<br />Java<br />...

geschrieben 17. April 2008 - 15:18

Hier F481,

Ich habe es dir zwar heute schon in der Informatikstunde gezeigt, aber wie du schon sagst: zur Verdeutlichung. ;)
Vielleicht hilft das jemand anderen auch?!

1. HTML-Datei mit einem Formular zum Eingeben der Daten (Username & PW): login.html
...
<form method="POST" action="login.php">
Benutzer: <input type="text" name="user" /><br />
Passwort: <input type="password" name="pass" /><br />
<input type="submit" value="Login" />
</form>
...


2. PHP-Datei zum Prüfen der Daten: login.php
<?php
session_start();

$user = $_POST['user']; //Empfange Usernamen
$pass = $_POST['pass']; //Empfange Passwort
$login = 0; //Setze login auf 0

if($user=="HANS" && $pass=="geheim") {

  $login = 1;
  //Wenn login erfolgreich war, setze login auf 1

  session_register("user");
  //hiermit registriert man die Variable user, also den Benutzernamen

  session_register("login");
  /* und hiermit registriert man die Variable login,
  die auf 1 ist -> dient zum späteren Abfragen,
  ob man eingeloggt ist */

  header("Location: start.php");
  //jetzt wird man auf start.php weitergeleitet

} else {

  header("Location: login.html");
  //Falls der login nicht erfolgreich war, wird man auf login.html weitergeleitet

}
?>


3. Geschützte Seiten sehen dann alle so aus:
<?php
session_start();
if($_SESSION['login']==1) {
//hier wird überprüft, ob man eingeloggt ist, wenn ja dann wird das folgende ausgegeben:
?>

Hier ist der geschützte Bereich, der nur angezeigt wird, wenn man eingeloggt ist.;)
(Ganz normal html hier benutzen)

<?
} else {

  echo "Zugriff verweigert! Sie sind nicht eingeloggt.";
  //Amsonsten: eine Zeile 'drüber' :D

}
?>


Ich hoffe ich konnte es gut verdeutlichen. :gähn:

if($verdeutlichung==false) { stelle(frage);  }


Liebe Grüß,
Nick

Zitat

"In der Welt des Erkennbaren ist die Idee des Guten die höchste." - Platon

Spritify! Easy CSS-Sprite-Generator | Albanisch Deutsch Wörterbuch
0

#7 Mitglied ist offline   F481 

  • Gruppe: aktive Mitglieder
  • Beiträge: 292
  • Beigetreten: 13. April 08
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:daheim ^^

geschrieben 17. April 2008 - 15:27

hm ja des könnt mich weiterbringen :gähn:
0

#8 Mitglied ist offline   F481 

  • Gruppe: aktive Mitglieder
  • Beiträge: 292
  • Beigetreten: 13. April 08
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:daheim ^^

geschrieben 22. April 2008 - 16:23

hm okay das mit der Reloadsperre hab ich hinbekommen.

Hab jetzt nur noch ein Problem mit dem Aktualisieren und anzeigen des neuen Counterstandes

hier mein code vll findet jm den Fehler:

$sql = "INSERT INTO `reload` (`id`, `ip`, `zeit`) VALUES ('', '".$ip."', '".$zeit."')";
	 $schreibe = mysql_query($sql);
	 
	 $resulttxx = "SELECT * FROM counter WHERE id=1";
	 $resultxx = mysql_query($resulttxx);

	 while($row = mysql_fetch_row($resultxx))
	 {
	  $coutstand = $row[1];
	 }

	 $coutstand = $coutstand+1;

	 $sqlxx = 'UPDATE `counter` SET `zahl` = '.$coutstand.' WHERE `id` = 1';
	 $resultf = mysql_query($sqlxx);
	 echo $coutstand;

0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0