php.de

Zurück   php.de > Webentwicklung > Software-Design

Software-Design Diskussionen auf Profi-Niveau: PHP Lösungen auf konzeptioneller Ebene

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 06.02.2010, 22:25  
Neuer Benutzer
 
Benutzerbild von bugzz
 
Registriert seit: 01.01.2010
Beiträge: 18
PHP-Kenntnisse:
Anfänger
bugzz befindet sich auf einem aufstrebenden Ast
Standard AJAX/PHP Gästebuch - Konzept/Design ?

Hallo, Experte.
@Mods.
Ich entschulide mich sofort falls ich doch in Einsteiger-bereuch posten sollte. Wenn ihr denkt, da wirds besser sein: You're the boss

Also. Wie der Threadname schon sagt, ich möchte ein eigenes AJAX/PHP gäste buch basteln! Ja ihr habt recht. Es is nicht neues, radikales oder weltbewegendes, aber es ist, meiner meineung nach, ein guter Anfang um meine Kentnisse ins Langzeitgedächnus zu bringen.

Im moment gibts nich so viele Ziele:
- auslesen aller Nachrichten
- einfügen (+ Auslesen des letzten Beitrages)
- editieren

Im moment habe ich schon eine PHP/Mysql version meines Gästebuches, aber ich bin mir ziemlich sicher solche funktionen wie :
PHP-Code:



function GetEntries()
{
    
$database = new mysqli(DB_HOSTDB_USERDB_PWDDB_DEF_BASE) or die("Server Connect Error # ".mysqli_error()."<br />Kann keine Verbindung erstellen");
    
$sql_select_entries "SELECT * FROM `tbl_guest_book` ORDER BY `added` ASC";
    
$results $database->query($sql_select_entries);
        
$selektiert $results->num_rows;
        if(
$selektiert <= 0)
          {
             
$msg utf8_encode("keine Einträge in der DB");
             echo 
$msg;
             
          }
          else
          {
            
$msg_counter 1;
            while (
$row $results->fetch_object())
            {
                
$edit = ($row->modified) ? "letzte &Auml;nderung [".date("j. M Y H:i",strtotime($row->modified))."]" "" ;
                        echo 
"<table class=\"content\">\n" .
                             
"<tr>\n" .
                             
"\t<th id=\"gb_entry_user\">\n" .
                             
"\t<a href=\"http://" $row->web "\" title=\"{$row->nickname}'s WebPage\" >" $row->nickname "</a>\n" .
                             
"\t</th>" .
                             
"\t<th id=\"gb_entry_date\">\n" date("j. M Y \\<\i\> H:i \\<\\i\>",strtotime($row->added)) .
                             
"\t</th>\n" .
                             
"</tr>\n" .
                             
"<tr>\n" .
                             
"\t<td id=\"gb_etry_msg\" colspan=\"2\">\n\t" nl2br(convert_bbcodes($row->msg)) .
                             
"\n\t</td>\n" .
                             
"</tr>\n" .
                             
"<tr>\n" .
                             
"\t<td id=\"gb_entry_msgID\">\n" .
                             
"\t#&nbsp;<a href=\"#\">" $msg_counter ."</a>\n" $edit .
                             
"\t</td>\n" .
                             
"\t<td id=\"gb_entry_funcs\">\n".
                             
"\t<a class=\"edit\" href=\"edit_entry.php?id=".$row->msgID."\">edit</a>\n" .
                             
"<a class=\"del\" href=\"?delete_entry=".$row->msgID."\">delete</a>\n" .
                             
"\t</td>\n" .
                             
"</tr>\n</table>\n";
                             
$msg_counter++;
            }
          }
    
$results->free();
    
$database->close();

sind nicht optimal oder eher nicht estetisch. Irgendwie habe ich das gefühl ,dass solche ausgabe per "echo" falsch sind. Bestimmt gibt es eine elegantere/professionele Lösung. Ich brauche feedback und hilfe um mein Projekt, vielleicht, ein bisschen Professionelle nennem zu dürfen.

vielleicht soll ich auch eigene klassen dazu schreiben, damits weniger code wirdm, etc. Ich möchte ein paar vorschläge hören wie man so was am besten/optimalsten machen würde. Welche gängigste methoden gibt und welche Pro/Contas gibt bei der Realisierung.
Miniaturansicht angehängter Grafiken
ajax-php-gaestebuch-konzept-design-gb.jpg  
__________________
Deutsch ist nicht meine Muttersprache
bugzz ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 06.02.2010, 22:34  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.798
PHP-Kenntnisse:
Fortgeschritten
robo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblick
Standard

Eleganter wäre auf jeden Fall eine Trennung von Code (php) und Layout (html), schau mal in Richtung Template-Engine, MVC-Struktur.

Ein guter Einstieg wäre vielleicht mal das Tutorial zum Thema Gästebuch auf Basis des APF von Dr. E

Gstebuch-Tutorial :: Adventure PHP Framework (APF)
robo47 ist offline   Mit Zitat antworten
Alt 06.02.2010, 23:18  
Neuer Benutzer
 
Benutzerbild von bugzz
 
Registriert seit: 01.01.2010
Beiträge: 18
PHP-Kenntnisse:
Anfänger
bugzz befindet sich auf einem aufstrebenden Ast
Standard

hallo, robo47!
ich habe mir das tut angeguckt unf das sieht zimlich vortgeschritte naus, auf jeden fall für mich (anfänger). Ausserdem habe keinerlei erfahrungn mit PHP frameworks. Nach dem ich mir ERM-Modell für DB angeguckt habe war mir schon klar dass ich noch weit weg von solcher konzepte bin, und nach dem php-code in teil 2 war mir 100% klar: it's out of my league

Ich werd mir Template-engine angucken ...
__________________
Deutsch ist nicht meine Muttersprache
bugzz ist offline   Mit Zitat antworten
Alt 06.02.2010, 23:57  
Erfahrener Benutzer
 
Registriert seit: 27.06.2009
Beiträge: 498
PHP-Kenntnisse:
Anfänger
cetalian sorgt für eine eindrucksvolle Atmosphärecetalian sorgt für eine eindrucksvolle Atmosphäre
Standard

Schau dir doch vielleicht mal Codeigniter an. Dr. E's Framework mag genial sein, es ist aber auch eine Hürde beim Einarbeiten.

Sonst würde ich dir empfehlen zuerst einmal einen groben Plan auzustellen welche Entitäten es in einem Gästebuch gibt, wie sie interagieren und daraus erstmal ein Klassendiagramm zu erstellen.
cetalian ist offline   Mit Zitat antworten
Alt 07.02.2010, 02:18  
Neuer Benutzer
 
Benutzerbild von bugzz
 
Registriert seit: 01.01.2010
Beiträge: 18
PHP-Kenntnisse:
Anfänger
bugzz befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von cetalian Beitrag anzeigen
Schau dir doch vielleicht mal Codeigniter an. Dr. E's Framework mag genial sein, es ist aber auch eine Hürde beim Einarbeiten.
Naja was die PHP frameworks angeht da versteh ich nicht ganz wie es überhaupt funktioniert (finde den zisammenhang zwischen einen Framework und PHP sprache nicht ) und aus diesem grund habe ich mich immer davon ferngehalten.....
Zitat:
Zitat von cetalian Beitrag anzeigen
Sonst würde ich dir empfehlen zuerst einmal einen groben Plan auzustellen welche Entitäten es in einem Gästebuch gibt, wie sie interagieren und daraus erstmal ein Klassendiagramm zu erstellen.
Ok, das könnte tatsächlich nen anfang sein. immerhin sollte es auch etwas einfaches sein, ich mein, im moment möchte keine Captcha, Login o.ä. einbauen.
Ne MySQL tabelle habe ich schon:
Code:
+----------+---------------+------+-----+-------------------+----------------+
| Field    | Type          | Null | Key | Default           | Extra          |
+----------+---------------+------+-----+-------------------+----------------+
| msgID    | int(4)        | NO   | PRI | NULL              | auto_increment |
| nickname | varchar(32)   | YES  | MUL | NULL              |                |
| email    | varchar(32)   | YES  |     | NULL              |                |
| web      | text          | YES  |     | NULL              |                |
| msg      | text          | YES  |     | NULL              |                |
| added    | timestamp     | YES  | MUL | CURRENT_TIMESTAMP |                |
| modified | timestamp     | YES  |     | NULL              |                |
| ip       | varchar(15)   | YES  |     | NULL              |                |
| allowed  | enum('Y','N') | YES  |     | N                 |                |
+----------+---------------+------+-----+-------------------+----------------+
__________________
Deutsch ist nicht meine Muttersprache
bugzz ist offline   Mit Zitat antworten
Alt 07.02.2010, 08:34  
Erfahrener Benutzer
 
Registriert seit: 27.06.2009
Beiträge: 498
PHP-Kenntnisse:
Anfänger
cetalian sorgt für eine eindrucksvolle Atmosphärecetalian sorgt für eine eindrucksvolle Atmosphäre
Standard

Hehe, ja ich erinnere mich auch an die Zeiten wo ich vor der Idee von Controllern und Views stand und mir gedacht hab "Geil, aber wie bekomm ich das in meine 1000 Zeilen PHP/HTML/Kommentardateien rein?" .

Codeigniter spricht über einen Front-Controller je nach URL immer einen anderen Controller an, erzeugt also ein Objekt davon und führt eine Funktion aus, alles nach dem Schema: http://www.deineseite.de/index.php/c...er1/parameter2

Du kannst also nun deine Geschäftslogik (alles was auf PHP Seite Dinge errechnet, Daten beschafft und sie aufbereitet) in einen Controller auslagern. Dafür musst du nur eine neue Controller Klasse erstellen und vom original Controller erben lassen, alle Controller liegen unter system/application/controller (wenn ich mich nicht täusche, ewig nix mehr gemacht).

Diese Controller können nun noch etwas anzeigen per "views", das sind Dateien die sich wiederrum um nichts kümmern als vorhandene Informationen anzuzeigen und graphisch (!) aufzubereiten. Das kannst du in einem Controller per $this->load->view('name', $daten); erreichen. $daten ist dabei ein assoziatives Array welches in key->value pairs deine aufbereiteten Daten aus dem Controller enthält. In der View datei (zu erstellen/finden unter system/application/views) kannst du die keys nun als normale Variablen nutzen und damit arbeiten.

Ich denke wenn du erstmal ein paar Controller anlegst, sinnvolle Methoden implementierst und ein paar Views schreibst kommst du ganz fix rein. Ich bin momentan im Unistress und hab auch nix gescheites hier, sonst würde ich dir mal ein Beispiel hochladen. Ich bin mir sicher sowas findet man auch in der Codeigniter Doku.

Im Allgemeinen ist also der Ablauf Request -> Frontcontroller -> Controllermethode (die du "füllst) -> View (die in der Controller Methode ausgegeben wird).

(Disclaimer: Ich bin mir bewusst, dass es Models geben sollte. Ich weiß Codeigniter ist kein wundervolles HMVC Framework etc aber man muss ja nicht zuviel auf einmal lernen )

Und als Klassendiagramm meinte ich eher ein Klassendiagramm, keine SQL-Tabelle . Vielleicht im Sinne von "Ein Gästebuch hat eine Liste von Einträgen". Oder "Ein Administrator ist ein User"
cetalian ist offline   Mit Zitat antworten
Alt 07.02.2010, 11:50  
Neuer Benutzer
 
Registriert seit: 16.10.2008
Beiträge: 13
Cubixx-Media befindet sich auf einem aufstrebenden Ast
Cubixx-Media eine Nachricht über ICQ schicken
Standard

Bevor Du mit Codeigniter arbeitest, schau Dir lieber Kohana V.3 HMVC-Framework an.
Komplett in PHP5, schöner und verständlicher Code und nicht zu überladen

Hier die aktuelle Version
Kohana v3.x - Files - Kohana Development

Hier die Dokumentation
What is Kohana? | Kodoc

Nochmal eine ausführlichere Doku.
Unofficial Kohana 3.0 Wiki >> start
Cubixx-Media ist offline   Mit Zitat antworten
Alt 07.02.2010, 23:13  
Erfahrener Benutzer
 
Registriert seit: 10.02.2009
Beiträge: 921
ragtek ist ein sehr geschätzer Menschragtek ist ein sehr geschätzer Menschragtek ist ein sehr geschätzer Menschragtek ist ein sehr geschätzer Mensch
Standard

Also mal abseits dem ganzen Framework gerede (kA wie sinnvoll das für einen Anfänger ist )

Wenn ich mir deine Funktion anschaue, fallen mir folgende Sachen ein:
1. Unflexibel
  • Was wenn du mal sehr viele Einträge hast? Da wäre eine Seitenanzeige (Stichwort Pagination) sinnvoll
  • Ausgabe vom PHP Code wie schon von Robo genannt umbedingt trennen
  • Datenbank eher ausserhalb der Funktion aufbauen
2.
PHP-Code:
 "\t<a href=\"http://" $row->web "\" title= 
was wenn der Benutzer keine Seite hat?
Momentan wird da ein http:// Link erzeugt
3. Wie sieht es mit deinem OOP Wissen aus?
Falls keines Vorhanden ist, würde ich mich da einlesen und mal ein paar Klassen dafür erstellen, bevor du kein OOP Wissen hast, bringen dich Frameworks nicht wirklich weiter.

Geändert von ragtek (07.02.2010 um 23:21 Uhr).
ragtek ist offline   Mit Zitat antworten
Alt 07.02.2010, 23:32  
Neuer Benutzer
 
Benutzerbild von bugzz
 
Registriert seit: 01.01.2010
Beiträge: 18
PHP-Kenntnisse:
Anfänger
bugzz befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von ragtek Beitrag anzeigen
...[list][*]Was wenn du mal sehr viele Einträge hast? Da wäre eine Seitenanzeige (Stichwort Pagination) sinnvoll
Ja das habe ich vergessen in meine "to Do" liste einzusetzen. 20 Einträge/seite wäre passend. Ich habe mir schon gedanken gemacht, das einzige was mit eingefalles ist per COUNT anzahl der datensätze in DB dann durch anzhal_der_eintraege_pro_seite (z,B 20.) und dann in Kombinatino mit LIMIT
Zitat:
Zitat von ragtek Beitrag anzeigen
Ausgabe vom PHP Code wie schon von Robo genannt umbedingt trennen
Das war ja auch der target-point mummer 1. Deswegen auch hier gepostet. Versuch grad irgendwelche anfänger tutorials für Template-Enigine zu finden...
Zitat:
Zitat von ragtek Beitrag anzeigen
PHP-Code:
 "\t<a href=\"http://" $row->web "\" title= 
was wenn der Benutzer keine Seite hat?
Die sache mit der Website war nicht von anfang an da. Die entsprechen Spalte war erst vor kurzen eingefügt und bei der Ausgabe habe ichs übersehen (wieder zum Punkto : PHP und HTML trennen). z.B. feature mit "Letzte Änderung..." gabs von anfang an, deswegen auch halbwegs gelöst
Zitat:
Zitat von ragtek Beitrag anzeigen
3. Wie sieht es mit deinem OOP Wissen aus?
Falls keines Vorhanden ist, würde ich mich da einlesen und mal ein paar Klassen dafür erstellen, bevor du kein OOP Wissen hast, bringen dich Frameworks nicht wirklich weiter.
Also OOP kentnisse gibs, aber wenig in PHP, deswegen auch "so eine Angst" vor Frameworks...hast schon richtig erkannt

@ all
Danke für den Feedback und Kritik.
__________________
Deutsch ist nicht meine Muttersprache
bugzz ist offline   Mit Zitat antworten
Alt 07.02.2010, 23:37  
Erfahrener Benutzer
 
Registriert seit: 10.02.2009
Beiträge: 921
ragtek ist ein sehr geschätzer Menschragtek ist ein sehr geschätzer Menschragtek ist ein sehr geschätzer Menschragtek ist ein sehr geschätzer Mensch
Standard

Weil ichs gerade lese
Zitat:
Zitat von bugzz Beitrag anzeigen
vielleicht soll ich auch eigene klassen dazu schreiben, damits weniger code wirdm, etc. Ich möchte ein paar vorschläge hören wie man so was am besten/optimalsten machen würde. Welche gängigste methoden gibt und welche Pro/Contas gibt bei der Realisierung.
Anfängerfehler Nr.1 => Klassen = weniger Code

Das stimmt so sicher nicht, mit Klassen ist es mehr Code
Aber will hier keine Diskussion OOP Pro / Contra starten^^
ragtek ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine 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
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Gästebuch in HTML Seite einbauen! bayway Trash 3 26.10.2009 19:41
Gästebuch & Spam francis-braun PHP Tipps 2009 3 23.03.2009 19:20
Gästebuch für jeden user chr1s Scriptbörse 2 02.03.2009 11:39
[Erledigt] Problem mit Gästebuch bodoalbstadt PHP Tipps 2009 40 22.01.2009 02:30
[Erledigt] Gästebuch skript ohne mysql do it yourself gandalf PHP Tipps 2008 15 11.07.2008 21:52
[Erledigt] Problem mit Gästebuch PHP Tipps 2006 5 14.02.2006 18:07
Gästebuch PHP Tipps 2005-2 2 22.07.2005 18:16
Dropdown-Menü und Gästebuch PHP Tipps 2005-2 5 20.06.2005 23:20
[Erledigt] Probleme mit dem Gästebuch PHP Tipps 2005-2 5 07.06.2005 15:22
[Erledigt] 4images Gästebuch PHP Tipps 2005 11 03.06.2005 08:05
Gästebuch / Datenbank PHP Tipps 2005 2 22.04.2005 16:27
Blättern in Gästebuch auf Dateibasis nsane PHP Tipps 2005 8 22.01.2005 21:02
Unbekanntes Problem mit Gästebuch PHP Tipps 2007 3 02.01.2005 22:04
Gästebuch und Blättern picco PHP Tipps 2004 23 01.09.2004 16:52
Problem mit meinem Gästebuch picco PHP Tipps 2004 10 25.08.2004 23:35

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
ajax gästebuch, gästebuch design, gästebuch ajax, php gästebuch klasse, http://www.php.de/software-design/64285-ajax-php-gaestebuch-konzept-design.html, codeigniter gästebuch, php mysql guestbook design, ajax gästebuch tutorial, php gästebuch tutorial, guestbook php ajax, ajax php gästebuch, gästebuch mit ajax, php gästebuch design, guestbook ajax php, guestbook ajax, ajax php tutorial, php guestbook einbauen, php gästebuch desing, php mysql ajax gästebuch, kohana 3

Alle Zeitangaben in WEZ +1. Es ist jetzt 15:13 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum