php.de

Zurück   php.de > Lösungen durch Skripte > Scriptbörse

Scriptbörse PHP Lösungen für nen schmalen Taler

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 01.06.2010, 00:17  
Benutzer
 
Benutzerbild von Luigi
 
Registriert seit: 22.03.2008
Beiträge: 49
PHP-Kenntnisse:
Fortgeschritten
Luigi befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] myMates - Soziales Netzwerk

Moin hab heute ein script von mir bei sourceforge reingestellt an dem ich schon etwas länger gearbeitet habe:
und zwar ist es ein internes social network auf php und mysql basis das dazu dienen soll das sich freunde auf ihrer eigenen plattform austauschen können das ganze ist stark inspiriert von facebook

ich würde mich freuen wenn ihr euch das script mal anschauen würdet
feedback ist auch immer gerne gesehen

myMates | Get myMates at SourceForge.net

danke
Luigi ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 01.06.2010, 15:50  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

Hab nur mal grob drübergeschaut über den code, installieren verging mir als ich gesehen hab dass das teil dann ne mail verschickt.

Vor allem solltest du dir wegen der Lizenz gedanken machen.

Laut sourceforge ist es GPL, laut der mitgelieferten Lizenz ist es ... was anderes ? Und teile (Smarty, JQuery, etc) sind lgpl/bsd/MIT, etc, das sollte irgendwo vielleicht erwähnt sein oder eine license-verzeichnis wie man das bei vielen projekten findet wo die lizenesen des codes den du verwendet hast reinschreibst.

Dazu kommt dass "deine Lizenz" wohl nicht OSI-konform ist und du deinen Code daher so wohl nicht bei sourceforge hosten darfst.

Terms_of_Use – sitelegal
Zitat:
Code Licenses Granted to Geeknet and Other Users

When you submit, post, upload or otherwise provide Code to SourceForge.net, you must designate promptly the software license pursuant to which licensees (including Geeknet) obtain rights with respect to such Code. Except as otherwise expressly permitted by these Terms, any Code submitted to SourceForge.net must be licensed to Geeknet and other licensees under a license that is:

1. compliant with the Open Source Initiative ("OSI")'s Open Source Definition (The Open Source Definition | Open Source Initiative) or
2. certified as an "OSI-Approved License" (Open Source Licenses | Open Source Initiative).
Der code allgemein sieht sehr chaotisch aus, php4, globale variablen, ne menge konstanten, gemischt mit unterschiedlichen einrückunge (tabs + spaces vermischt), etc.
Die "klassen-dateien" enthalten nicht nur klassen sondern auch code.

Die phpdoc-verwendung lässt darauf schließen dass du wohl keine IDE nutzt oder auch noch nie ne api-doku deines systems erstellt hast. Etliche return haben kein @ davor, teilweise heißt es @returns, bei @param ist die reihenfolge:
@param &typ& &varname& &description&
... etc

Eine mysql-resource sollte man vielleicht in der db-klasse speichern und nicht in einer konstanten, siehe auch manual:

PHP: define - Manual
Zitat:
It is possible to define resource constants, however it is not recommended and may cause unpredictable behavior.
Einfach mal #_ in allen querys ersetzen kann unter umständen auch deskturiv sein, weil sowas könnte ja auchmal in input-daten drinstehen und damit verfälscht du dann user-input. suchen/ersetzen in einem db-query ist ohne einen parser eigentlich ein no-go.

Ein haufen debug-code ist da noch drin und sowas:

PHP-Code:
debugLog("rss Klasse init""Die rss Klasse zur erstellung von Newsfeeds konnte erfolgreich initialisiert werden"__FILE__,__LINE__); 
hinter einer klassen-deklaration ist etwas ... komisch

Dein regex für emailadresse-validierung erlaubt keine Umlaute, bzw. allgemein keinerlei nicht-lateinischen zeichen (seit mai sind die erlaubt).
-> Internationalizing Domain Names in Applications – Wikipedia

Die ?> am ende kannst du dir sparen, führt nur schnell dazu dass man unnötige leerstellen/umbrüche im code hat und damit Probleme mit sessions und cookies bekommt (du hast in ein paar dateien welche aber glücklicherweise keine klassendatei sondern nur frontend-dateien, wo es kaum auffällt, ausser du gibst irgendwann mal binärdaten aus wo sowas den inhalt wirklich verfälschen könnte.)

Dann dein ./tmp/sessions hat wohl keinen verzeichnis-schutz, es kann also jeder die session-daten anhand einer SID auslesen.
Sinn von Session-Daten ist es ja imho dass sie eben serverseitig sind und nicht jeder user da reinschauen kann, macht auch das highjacking leichter, vielleicht noch ein directory-listing standardmäßig aktiv und man kann sich vielleicht noch die letzte Session des admins suchen

Überall fliegen .DS_Store-Dateien rum und ein __MACOSX ist auch noch auf oberster Ebene in dem Archiv drin.

Allgemein hat der Code bei mir eine hohe WTF-Rate hervorgerufen
-> http://www.bellingnet.de/blog/2009/09/23/wtfm.jpg

z.b. sowas:

PHP-Code:
if(CACHE_OPTION == CACHE_MEMCACHE) {
    class 
cache extends cache_memcache { }
    
debugLog("Memcache Initiert","Memcache als cache_option gewaehlt",__FILE__,__LINE__);
} elseif(
CACHE_OPTION == CACHE_MYMATES) {
    class 
cache extends cache_myMates { }
    
debugLog("cache wurde initiert","standard cache wurde initiert",__FILE__,__LINE__);

was für einen sinn macht eine klasse die NUR von einer klasse erbt und sonst keine eigenen attribute/methoden hat ? sieht irgendwie eher danach aus dass deine "instanzierung-methode" für den cache etwas suspekt ist und tada:

PHP-Code:
 function _new() {
    global 
$__classes;

    
$args func_get_args();
    
$class=$args[0];
    if(
$__classes[$class] != "" && $class != "db") {
        
$res $__classes[$class];
    } else {
        if(!
class_exists($class)) {
            
//init class
            
if (file_exists(BACKEND.$class.".class.php"))
                include(
BACKEND.$class.".class.php");
            else
                return 
false;

            
$key md5(serialize($args));
        }

        for(
$i 1$icount($args);$i++) $_args[] .= "\$args['".$i."']";

        
$__args "";
        if(@
count($_args) > '0') {
            
$__args "(".implode(",",$_args).")";
        }

        
$res "";
        eval(
"\$res = new ".$class.$__args.";");
    
debuglog("neue Klasse","Neue Klasse initiert:".$class);
        
$__classes[$class] = $res;
    }
    return 
$res;

Das war dann der punkt wo ich ausgestiegen bin, weil es mir kalt den Rücken runterlief. Globale Registry + Klassen-instanzierung in einem und dann noch eval().

Ich denke etwas mit dem Thema OOP beschäftigen wäre sinnvoll und z.b. Exceptions und soweiter.
robo47 ist offline   Mit Zitat antworten
Alt 01.06.2010, 21:42  
Benutzer
 
Benutzerbild von Luigi
 
Registriert seit: 22.03.2008
Beiträge: 49
PHP-Kenntnisse:
Fortgeschritten
Luigi befindet sich auf einem aufstrebenden Ast
Standard

Danke dafür!

das sind jetz schon zieeemlich viele dinge hab auch schon vermutet das es noch sehr weit von professionalität entfernt ist aber ich konnte zumindst was neues draus lernen
Luigi ist offline   Mit Zitat antworten
Alt 03.06.2010, 12:12  
Benutzer
 
Registriert seit: 19.05.2005
Beiträge: 33
PHP-Kenntnisse:
Fortgeschritten
Komandar
Standard

"PHP-Kenntnisse: Fortgeschritten"

Sorry aber habe mir gerade auch den Code angeschaut. Mmn sind die gezeigten Kentnisse nicht über den eines Anfängers hinaus.

Ich arbeite nun bereits über 10 Jahre u.a. mit PHP und das täglich, verdiene damit auch mein Geld und kenne mich mit den gängigsten Frameworks aus (Zend, Symfony,...) und selbst ich würde mich nicht höher als Fortgeschritten bezeichnen, da man bei/mit PHP jeden Tag etwas neues lernen kann.

Geändert von Komandar (03.06.2010 um 12:18 Uhr).
Komandar 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
Suche Mitarbeiter für soziales Projekt Costaaar Sonstige 0 11.04.2010 19:13
Webspace auf hamachi netzwerk connecten lassen .quad PHP Tipps 2010 6 17.02.2010 23:55
Suche Programmierer für ein Soziales Netzwerk Headhuner Beitragsarchiv 0 28.12.2009 13:20
Zerzögerte Verbindung zu MySQL DB über lokales Netzwerk j.foe Datenbanken 4 17.09.2009 12:27
dns-server für lokales Netzwerk Crypi Off-Topic Diskussionen 18 28.04.2007 08:11
[HARDWARE] Problem mit netzwerk einballimwasser Off-Topic Diskussionen 3 13.12.2006 19:05
Netzwerk und PHP Rio99 PHP Tipps 2006 24 25.07.2006 14:39
netzwerk ip notyyy PHP Tipps 2007 8 24.11.2005 17:44
Kleien lustige spiele für 2 Spieler im Netzwerk robo47 Off-Topic Diskussionen 2 03.11.2005 16:19
Übers Netzwerk ins Telefonnetz Server, Hosting und Workstations 5 10.09.2005 02:18
netzwerk darstellen hekto Server, Hosting und Workstations 11 03.04.2005 00:38
fsockopen, verbindung ins netzwerk? PHP-Fortgeschrittene 5 30.10.2004 12:42
[Erledigt] Computer im Netzwerk herunterfahren Off-Topic Diskussionen 24 22.07.2004 17:33
opendir auch für Netzwerk ? PHP Tipps 2004 4 21.07.2004 20:24
W-LAN Sitecom WL-110(b) - Netzwerk mit Router Server, Hosting und Workstations 1 01.07.2004 14:46

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
soziales netzwerk script, mymates, soziales netzwerk php, php soziales netzwerk, php script soziales netzwerk, soziales netzwerk php script, script soziales netzwerk, soziales netzwerk skript, script für soziales netzwerk, php soziales netzwerk script, mymates installieren, soziales netzwerk in php, soziales netzwerk php mysql, soziales netzwerk script php, private soziales netzwerk script, eigenes soziales netzwerk script, soziales netzwerk, eigenes soziales netzwerk php, mymates installation, php soziales netzwerk tutorial

Alle Zeitangaben in WEZ +2. Es ist jetzt 01:07 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