Daten aus Forum

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
SinTao
Mitglied
Beiträge: 275
Registriert: 09.04.2006 21:16

Beitrag von SinTao »

Also ein ' zuviel? Oh man, sowas Plötes aber auch. :) Naja, als non-Phpler sitzt man davor und denkt, das wird schon alles seine Richtigkeit haben. :)

Ich danke euch beiden vielmals für eure große, und ausdauernde Hilfe!

Schönes Restwochenende noch,

SinTao
Andavos
Mitglied
Beiträge: 145
Registriert: 13.07.2006 11:50
Wohnort: Winterthur

Beitrag von Andavos »

Andavos hat geschrieben:Du musst dich noch in deine Datenbank einloggen. Sonst kann der Browser (oder was auch immer) die Daten die auf deiner Datenbank gespeichert sind nicht aufrufen!

Ich habe folgenden Code benutzt:

Code: Alles auswählen

$verbindung=mysql_connect("localhost","***","***")
				or die("Verbindung fehlgeschlagen!");
				$datenbank=mysql_select_db("***")
				or die("<br>Datenbank nicht gefunden!");
Bei den Sternchen kommen jeweils dein Datenbankusername, dein DB-Passwort und der Name der Detenbank!

PS: Ich habe noch ein paar Fragen, wäre froh wenn diese ebenso schnell beantwortet werden könnten:
1. Die Frage die schon in der Topic eröffnung stand, wie kann ich einen Counter programmieren der alle 24 stunden auf Null zurückschaltet?

2. Wie kann ich machen, dass man sich auf meiner Homepage mittels zwei Felder einloggen kann? Wenn man sich dann angemeldet hat, also den richtigen Username und das richtige Passwort eingegeben hat, dann soll sich in einem neuen Fenster dass sich dann öffnet das Forum kommen (man soll dann natürlich eingeloggt sein!)
Und auf der Page sollte dann unter den Kästchen (oder wenn möglich sogar ersetzenden) stehen, ob man eine neue PN hat, oder nicht!
Geht das?

3. Und kann man auch noch die Namen inklusive Link zum Profil der User unter der Anzahl anzeigen die online sind?

Hat jemand antworten auf meine Fragen?
Benutzeravatar
S2B
Ehemaliges Teammitglied
Beiträge: 3258
Registriert: 10.08.2004 22:48
Wohnort: Aachen
Kontaktdaten:

Beitrag von S2B »

zu 1: Bei jedem Anlegen des Counters den aktuellen Timestamp (time()) speichern und bei jedem Zählen überprüfen, ob schon 24 Stunden (= 24 * 60 * 60 Sekunden) vergangen sind. Wenn ja, Counter zurücksetzen, wenn nein zählen.

zu 2: KB:phpbb_login, target="_blank" beim form-Tag, KB:forum_homepage für die Sache mit den PN's

zu 3:

Code: Alles auswählen

$sql = 'SELECT user_id, username
  FROM phpbb_sessions s, phpbb_users u
  WHERE s.session_user_id = u.user_id
    AND session_time >= ' . (time() - 300);
Gruß, S2B
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
Andavos
Mitglied
Beiträge: 145
Registriert: 13.07.2006 11:50
Wohnort: Winterthur

Beitrag von Andavos »

Zu 1:
Ich bin kein grosser PHPler, kannst du mir den Code mitgeben?

Zu 2:
Was muss ich da noch abändern, und was kommt bei meine_homepage.php hin?

Das ist der Code den ich im Moment habe:

Code: Alles auswählen

<form action="phpBB2/login.php" method="post"> 
Benutzername: <input type="text" name="username"><br> 
Passwort: <input type="password" name="password"><br> 
Autologin? <input type="checkbox" name="autologin"><br> 
<input type="hidden" name="redirect" value="meine_homepage.php"> 
<input type="submit" name="login" value="Login"> 
</form>
Zu 3:
Wie kann ich es anzeigen?
Benutzeravatar
S2B
Ehemaliges Teammitglied
Beiträge: 3258
Registriert: 10.08.2004 22:48
Wohnort: Aachen
Kontaktdaten:

Beitrag von S2B »

zu 1: Den Counter musst du dir schon selber suchen, ich werd dir jetzt keinen Counter schreiben. :wink:

zu 2: Willst du das mit den PN's haben oder nur den Login?
Anstatt meine_homepage.php musst du die Datei eintragen, auf die nach dem Login weitergeleitet werden soll. Wenn es die Standard-Datei sein soll (index.php vom Forum), damm kannst du dieses input auch weglassen.
Um das ganze in einem neuen Fenster öffnen zu lassen, solltest du dir nochmal meinen letzten Beitrag anschauen.

zu 3:

Code: Alles auswählen

$sql = [...]
if (!$result = mysql_query($sql))
{
  die('Fehler: ' . mysql_error());
}
$userlist = '';
while ($row = mysql_fetch_assoc($result))
{
  $userlist .= ($userlist != '') ? ', ' : '';
  $userlist .= '<a href="http://www.deine-domain.de/dein_pfad/profile.php?mode=viewprofile&u=' . $row['user_id'] . '">' . $row['username'] . '</a>';
}
mysql_free_result($result);

echo $userlist;
Gruß, S2B
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
Andavos
Mitglied
Beiträge: 145
Registriert: 13.07.2006 11:50
Wohnort: Winterthur

Beitrag von Andavos »

Vielen Dank, 2 und 3 funktionieren jetzt.
Aber ich weiss nicht wie du das bei 1 gemeint hast...

Code: Alles auswählen

<?php
				  echo "<b>***</b><br>";
		          if(!file_exists("***.txt"))
		          {$counter=@fopen("***.txt", "a");}
		          else
		          {$counter=@fopen("***.txt", "r+");}
		          $aufruf=fgets($counter,800);
		          $aufruf=$aufruf+1;
		          rewind($counter);
		          fputs($counter,$aufruf);
		          fclose($counter);
		          echo "Hits insgesamt:&nbsp;$aufruf";
		?>

Dies ist der Code denn ich für den Counter verwendet habe, kannst du mir deine Idee einbauen. Im Moment zählt mein Counter einfach, aber er soll ja alle 24 Stunden zurückschalten...
Benutzeravatar
S2B
Ehemaliges Teammitglied
Beiträge: 3258
Registriert: 10.08.2004 22:48
Wohnort: Aachen
Kontaktdaten:

Beitrag von S2B »

Den aktuellen Timestamp könntest du eigentlich mit genau der gleichen Prozedur speichern und bei jedem Zählen laden. Der Rest ist dann nur noch eine if-Schleife:

Code: Alles auswählen

// Timestamp auslesen bzw. das erste Mal schreiben

if (time() - $timestamp > 86400)
{
  // neuen Timestamp speichern
  // Counter zurücksetzen
}
else
{
  // Zählen
}
Gruß, S2B
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
Andavos
Mitglied
Beiträge: 145
Registriert: 13.07.2006 11:50
Wohnort: Winterthur

Beitrag von Andavos »

Muss ich bei

Code: Alles auswählen

//Zählen
einfach meinen Counter einfügen?

PS: Mir ist noch was zum LogIn auf meiner Seite eingefallen. Wie kann ich es den nun machen, dass man, wenn man sich eingeloggt hat, auch auf der Page sieht, ob man eine neue PN hat oder nicht?
Benutzeravatar
S2B
Ehemaliges Teammitglied
Beiträge: 3258
Registriert: 10.08.2004 22:48
Wohnort: Aachen
Kontaktdaten:

Beitrag von S2B »

Zum Counter: Probier es doch einfach aus... :wink:

zu den PN's: Dazu musst du die Website in dein Forum einbauen, zumindest ins Session-System (Link dazu siehe oben).
Gruß, S2B
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
Andavos
Mitglied
Beiträge: 145
Registriert: 13.07.2006 11:50
Wohnort: Winterthur

Beitrag von Andavos »

1. Geht nicht...

Code: Alles auswählen

// Timestamp auslesen bzw. das erste Mal schreiben 

					if (time() - $timestamp > 86400) 
					{ 
					  // neuen Timestamp speichern 
					  // Counter zurücksetzen 
					} 
					else 
					{ 
					  if(!file_exists("***.txt"))
					  {$counter=@fopen("***.txt", "a");}
					  else
					  {$counter=@fopen("***.txt", "r+");}
					  $rufauf=fgets($counter,800);
					  $rufauf=$aufruf+1;
					  rewind($counter);
					  fputs($counter,$aufruf_2);
					  fclose($counter);
					  echo "<br>Besucher heute:&nbsp;$rufauf";
					}

2. Kapier ich nicht...
Antworten

Zurück zu „Coding & Technik“