php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Scripts > BRAINSTORMING PHP/SQL/HTML/JS/CSS
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


BRAINSTORMING PHP/SQL/HTML/JS/CSS Ihr habt eine Idee, aber keinen genauen Ansatz? Diskutiert mit anderen Usern des Forums über eure Gedankengänge um evtl. hilfreiche Ideen zu bekommen!
Normale Fragen bitte weiterhin in die entsprechenden Foren!

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 10-05-2007, 22:09
Everdream
 Registrierter Benutzer
Links : Onlinestatus : Everdream ist offline
Registriert seit: Dec 2006
Beiträge: 118
Everdream ist zur Zeit noch ein unbeschriebenes Blatt
Standard Forenscript

Hallo,

man kann ja bekanntlich immer dazulernen indem man ein eigenes Script schreibt. Ich denke das ich relativ viel kann auch wenn ich natürlich immernoch gewillt bin mehr zu lernen. Darum würd ich gerne mal eine eigene Forensoftware schreiben. Ich habe auch einpaar Gedanken dazu und hätte gern vielleicht hier und da einpaar tipps.

Struktur

Die indexdatei includiert die wichtigsten Dateien wie z.b. die Datei mit den MySQL daten, php endung für Leute die auf ihrem Server php4 oder dergleich schreiben müssen, die Sessions und vielleicht noch eine Sprachdatei. Im Bodytag werden die Tabellen includiert die man im AdminPanel auch erweitern kann also neue hinzufügen (wie das genau gehen soll weiß ich auch noch nicht...). Auch die Links zu den Verschiedenen Foren müssen in dieser Datei gegeben sein, per Get sodass diese auch verlinkt werden können:

http://myforum.de/index.php?boardid=1

In den boards ist es dasselbe der Link zu den Threads heisst dann natürlich dann anders:

http://myforum.de/board.php?threadid=1

Die verschiedenen Profile sind ebenfalls über get zu erreichen:

http://myforum.de/profil.php?id=1

Für die verschiedenen Boards und Threads sollte ein Template reichen damit es auch später mit wenigen HTML kenntnissen oder WYSIWYG editoren nachbearbeitet werden kann. Selbiges gilt für die Profile.

Die MySQL struktur könnte folgendermaßen aussehen:

user - beinhaltet die Nutzer mit deren Angaben, Einstellungen und Nutzergruppen
posts - beinhaltet den Post, den Autor, die BoardID und das Datum
threads - beinhaltet Threadtitel, Nachricht, Autor, Datum und die Boardid
Boards - beinhaltet BoardID, Name des Boards und ggf. beschreibung
Admintables - beinhalten verschiedene Konfigurationen die der Admin vorgenommen hat in seinem CP und natürlich auch die des ModCPs welche die Moderatoren vorgenommen haben...
Anhangtables sollten vielleicht gesondert sein um die Anhänge zu verwalten die dann dementsprechend im ACP abgerufen werden können

Ansonsten unter Umständen noch Tables für BBCodes, Avatare, Smilies, events, Kalendar, Aktionlogs der Admins und Mods, für PNs, Umfragen, Ranks und Styles.

AdminCP

Das AdminCP soll nur verfügar sein wenn der User auch wirklich admin ist also circa:

PHP-Code:
if(logged_in AND $usergroup == "Admin"){
echo 
'<a href=admincp.php?session='$PHPSESSID .'>AdminCP</a>';

Im AdminCP könnte man die SessionID dann noch prüfen denn es könnte ja auch jemand kommen und einfach admincp.php im Browser eingeben.

Nun nehmen wir an der User ist eingeloggt und Admin und alles hat geklappt.

Dann wäre er im admincp und würde ein kleines Overview sehen. Z.B. wann das Board erstellt wurde, wieviele Member es hat, wieviele Posts, Threads und wer alles Online ist.

Links dann die Navigationsleiste. Es wird bei jeder Seite überprüft ob der Administrator auch die Rechte dazu hat denn es soll ja vielleicht auch Admins mit beschränkten rechten geben. Also:

PHP-Code:
if($usergroup == "Admin" && $adminrechte == $full){
tuwas
}elseif($usergroup == "Admin" && $adminrechte == $half){
tuwas anderes
}
... 
Die einstellungen werden wie schon gesagt in der DB gespeichert. Nehmen wir an der Admin will eine Signaturlänge festlegen. Also wird ein Formular mit einer Zahl abgeschickt, diese Zahl wird in der DB gespeichert und später im Profil wird das alles überprüft anhand der Daten in der DB. Kein Problem, denke ich.

Wenn der Admin einen User Sperren will wird die Nutzergruppe geändert, auch kein Problem.

Thread.php

Sobald ein Thread abgeschickt wird, also sobald das Formular gesendet wurde wird der Nutzer weitergeleitet:

PHP-Code:
if(!empty($beitrag) && !empty($threadtitel)){
echo 
"Dein Beitrag wurde erfolgreich eingetragen, du wirst nun weitergeleitet.";
}
elseif(!empty(
$beitrag) && empty($threadtitel)){
echo 
"Bitte geben einen Threadtitel an.";
}
elseif(empty(
$beitrag) && !empty($threadtitel)){
echo 
"Du hast keinen Beitrag eingegeben.";

Nach erfolgreichem Eintrag in die DB wird der nutzer auf seinen Post weitergeleitet. Dort werden die Informationen angegeben wie beitragersteller etc. in der Post.php passiert dasselbe allerdings wird das ganze gespeichert in der post table und die ThreadID wird mit übergeben. Die ThreadID ist Unique, genau wie die BoardID.

index

In der Indexdatei und das wäre ein Problem für mich werden die verschiedenen Foren und die Kategorien gelistet.

<!-- Kategorie -->
<!-- BoardID1 -->

Aber wie kann der Admin über ACP Board hinzufügen...?

Beispiel: ich wähle alle BoardIDs aus der SQL und dann:

PHP-Code:
<?
//Kategorie
echo $row->Kategorie//where BoardID == 1
echo $row->Boards//where ID == 1
?>
Das wäre meine lösung und wenn die ID nicht gefunden wird, wird nichts angezeigt. Problem: wenn ich 4 IDs vordefiniere kann der Admin nicht mehr als 4 Board und Kategorien haben. Das würde ich lösen indem ich die Datei überschreibe sobald der Admin ein neues Board hinzufügt. Das heisst allerdings auch das die Datei immer größer wird. Also muss es auch eine andere Möglichkeit geben, die ich noch suche.

Im Grunde war es das schon alles andere ist Schnick Schnack und kann auch später hinzugefügt werden.

Rechtschreib- und Grammatikfehler sind gewollt und Copyrighted :P

Geändert von Everdream (10-05-2007 um 22:11 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 11-05-2007, 07:38
nOe
 Registrierter Benutzer
Links : Onlinestatus : nOe ist offline
Registriert seit: Nov 2006
Ort: GAMERny
Beiträge: 253
nOe ist zur Zeit noch ein unbeschriebenes Blatt
nOe eine Nachricht über ICQ schicken
Standard

Was meinst du mit:

Zitat:
Problem: wenn ich 4 IDs vordefiniere kann der Admin nicht mehr als 4 Board und Kategorien haben.
?

mfg nOe
__________________
"I am what I am and I do what I can..."
Meine HP -- Mein GPG-Key
Meine Projekte: WebStorage 2.0 -- easyAJAX-Chat 2.2.0 (beta)
Mit Zitat antworten
  #3 (permalink)  
Alt 11-05-2007, 07:53
Everdream
 Registrierter Benutzer
Links : Onlinestatus : Everdream ist offline
Registriert seit: Dec 2006
Beiträge: 118
Everdream ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Nehmen wir an ich schreib das jetzt alles. Hab jetzt nich grad nen guten Faden dahin aber wenn ich die Boards ausgeben lasse dann...

Also verbindung zur DB steht die Table wurde ausgewählt und alles ist bereit ausgelesen zu werden. Muss ich dann nur:

echo $row->Boards;

Machen? Also damit alle schön untereinander aufgelistet werden? Ich muss ja auch jedes Board in eine andere Kategorie bringen können und da ist das Problem:

echo $row->Kategorie;
echo $row->Board;

würde ausgeben:
cat1
cat2

board1
board2

ich will ja aber:

cat1
board1

cat2
board2

Was ich damit meinte ist ich könnte in die index datei schreiben:

echo $row->cat1;
echo $row->board1;


echo $row->cat2;
echo $row->board2;

Aber das wäre ja irgendwann mal zuende ich kanns ja nich bis 200 oder weiß der teufel vorgeben.
Mit Zitat antworten
  #4 (permalink)  
Alt 11-05-2007, 08:54
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 Everdream
Aber das wäre ja irgendwann mal zuende ich kanns ja nich bis 200 oder weiß der teufel vorgeben.
Der Teufel würde, wenn er denn PHP programmieren würde, wohl zumindest schon mal was von Schleifen gehört haben.

Wenn das bei dir nicht der Fall ist, dann überleg' dir das mit dem Forum lieber noch mal, und fang mit was kleinerem an - denn ich fürchte, du wirst dich ziemlich übernehmen.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #5 (permalink)  
Alt 11-05-2007, 10:05
DarkRoot
 Registrierter Benutzer
Links : Onlinestatus : DarkRoot ist offline
Registriert seit: May 2005
Beiträge: 44
DarkRoot ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Schleifen und Rekursion.

Tabelle board_categories:
- catID
- description
- parentID

und in die ParentID schreibst du die Oberkategorie rein, sprich wenn Kategorie #2 untergeordnet von Kategorie #1 ist:

FÜGE EIN IN board_categories (catID, description, parentID) WERTE
(1, 'Kategorie #1', 0),
(2, 'Kategorie #2', 1;

OffTopic:
Das war jetzt eigentlich schon zu viel Hilfe
Mit Zitat antworten
  #6 (permalink)  
Alt 13-05-2007, 06:14
Everdream
 Registrierter Benutzer
Links : Onlinestatus : Everdream ist offline
Registriert seit: Dec 2006
Beiträge: 118
Everdream ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ah verdammt die Lösung ist immer so einfach...

OffTopic:
Wenn man nich denken kann sollte man das Denken anderen überlassen :P


Edit: Achja wie siehts mit Forensicherheit aus?

1. Captchas bei Registrierung:

Captchas coden ist kein Problem... was ist sicherer Zahlen und Buchstaben im Reintext oder Bilder? Oder gibt es da keinen unterschied?

2. Passwortverschlüsselung:

Das Passwort wird natürlich mit md5() verschlüsselt... wenn ein neues angefordert werden soll kann man ja mit rand einpaar zahlen und buchstaben in die usertable schreiben Where $row->email == $email. Also man gibt seine email ein, die wird geprüft (Wert in der DB ist ja Unique) und das Passwort wird überschrieben und ein automatisch generiertes wird verschickt. Unter Umständen sollte man einen Bestätigungslink versenden damit der nutzer dann erst auf den Link klicken muss in der email um ein neues Passwort zu erhalten.

3. Captchas bei Gastpostings

Sonst noch was?

Geändert von Everdream (13-05-2007 um 06:17 Uhr)
Mit Zitat antworten
  #7 (permalink)  
Alt 13-05-2007, 11:31
nOe
 Registrierter Benutzer
Links : Onlinestatus : nOe ist offline
Registriert seit: Nov 2006
Ort: GAMERny
Beiträge: 253
nOe ist zur Zeit noch ein unbeschriebenes Blatt
nOe eine Nachricht über ICQ schicken
Standard

Zitat:
Original geschrieben von Everdream
2. Passwortverschlüsselung:
[...]
Also man gibt seine email ein, die wird geprüft (Wert in der DB ist ja Unique) und das Passwort wird überschrieben und ein automatisch generiertes wird verschickt.
[...]
Dann solltest du aber auch noch überprüfen, ob der Nutzer der Owner dieser eMail Adresse ist, denn sonst kann jeder User die Passwörter eines anderen ändern.. Besser wäre es dann auch - wie du selbst schon sagtest - einen Bestätigungslink in diese eMail zu packen

mfg nOe
__________________
"I am what I am and I do what I can..."
Meine HP -- Mein GPG-Key
Meine Projekte: WebStorage 2.0 -- easyAJAX-Chat 2.2.0 (beta)
Mit Zitat antworten
  #8 (permalink)  
Alt 13-05-2007, 12:01
ministry
 PHP Junior
Links : Onlinestatus : ministry ist offline
Registriert seit: Jun 2006
Ort: KI / KA
Beiträge: 965
ministry ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Fang doch erstmal mit der Grundstruktur an, ohne dich jetzt in Kleinigkeiten wie der Registrierung und den Captchas zu verzetteln.

Das kann man immer noch machen, falls der Rest was geworden ist
__________________
ich glaube
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

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 06:48 Uhr.