Sie befinden sich hier im Forenarchiv von phpforum.de wenn Sie direkt ins Forum möchten, klicken Sie bitte hier. Zur Startseite kommen Sie hier.

Alternative zu ID-Nummer

Hi zusammen,

ich hab mal irgendwo gelesen, dass ID-Nummmern als Primary-Key nicht so sicher seien. Vielleicht aus dem Grund, weil Crawler ganz einfach mit einer zähleneden Schleife alle Datensätze durchgehen können.

Was gibts denn für Alternativen und mit welcher Technik wird das dann durchgeführt um immer unique Primary-Keys zu erhalten?

Hier gehts zum Orginal Eintrag "Alternative zu ID-Nummer" im Forum

Antworten

Häää???
Welche Sorgen hast du denn..?
Ein fehlendes Rechtemanagment durch "verbergen" zu ersetzen, ist gnadenlos kurzsichtig....


2.

Ich glaube ich weiss was du meinst. Das hängt nur von der URL einer Website ab und hat nichts mit Sicherheit an sich zu tun. Das heisst es gibt die Alternative seine URL besser zu gestalten, in der keine PK's vokommen. Abgesehen davon, was stört dich daran wenn Crawler (wie Google auch) deine Website indizieren?


3.

Zitat:
combie postete
Häää???
Welche Sorgen hast du denn..?
Ein fehlendes Rechtemanagment durch "verbergen" zu ersetzen, ist gnadenlos kurzsichtig....
Kann es ja sein, dass man Profilseiten z.b. über showProfil.php?id=123 auf rufen kann.
So wie es z.B. bei Studivz der Fall war und ein Crawler dann über eine Schleife alle profile abgerufen und gespeichert hat. klar man kann zeitl. Begrenzungen oder captcha abfragen einbauen.

Aber im Großen und Ganze wollte ich nur wissen, ob Profi-Webentwickler twas anders als incrementierte ID's benutzten. Vielleicht auch aus anderen Gründen.

Zitat:
Das heisst es gibt die Alternative seine URL besser zu gestalten, in der keine PK's vokommen.
Wie?


4.

Die PK's fast immer notwendig und nicht mehr wegzudenken. Wie gesagt baut man einfach die URL besser: Bsp:

http://www.domain.de/profile/puritania/

Bei Profilen ist der Benutzername ja eindeutig (unique) und demzufolge auch so identifizierbar.


5.

Zitat:
Profi-Webentwickler twas anders als incrementierte ID's benutzten
Ich weiß nicht, ob ich ein Profi bin...
Aber ich benutze nichts anderes!!

Zitat:
Kann es ja sein, dass man Profilseiten z.b. über showProfil.php?id=123 auf rufen kann.
So wie es z.B. bei Studivz der Fall war und ein Crawler dann über eine Schleife alle profile abgerufen und gespeichert hat.
fehlendes Rechtemanagment
Das war wohl ein Dumbeutelfehler des Programmierers..


6.

Zitat:
fehlendes Rechtemanagment
Wie würdest du dann solche Massenzugriffe einschränken? Max. 10 Aufrufe pro minute? Alle 10 Aufrufe eine Captchaeingabe verlangen? Ist das dann schon die schönste Möglichkeit?


7.

Ich verstehe deine Sorgen noch nicht!!

OK, ich versuchs mal:

Profil 1: vergleichbar mit: http://www.phpforum.de/forum/v_profile.php?userid=24650
Dieses Profil ist sowieso schon öffendlich!!
Wenn du da deine Email publizierst, bist du selber Schuld!
Was stehen da sonst noch für Daten, die du "beschützen" willst?

Schutzmaßnahmen:
1. nur eingeloggte User dürfen das Profil von anderen sehen
2. kein Link zum Profil anbieten sondern ein 1-Knopf-Formular mit SUFU: "formwaechter"
3. robots.txt anlegen! Die guten SUMAs halten sich daran
(gegen böse Bots ist sowieso kein ultimatives Kraut gewachsen)

Profil 2: vergleichbar mit: http://www.phpforum.de/forum/editprofile.php
Da kommt man sowieso nur als eingeloggter User an sein eigenes Profil
Ausser einem funktionierendem Loginkonzept ist da kein weiterer Schutz notwendig!!


8.

Zitat:
combie postete
Ich verstehe deine Sorgen noch nicht!!

OK, ich versuchs mal:

Profil 1: vergleichbar mit: http://www.phpforum.de/forum/v_profile.php?userid=24650
Dieses Profil ist sowieso schon öffendlich!!
Wenn du da deine Email publizierst, bist du selber Schuld!
Was stehen da sonst noch für Daten, die du "beschützen" willst?
Mir geht es ja nicht speziell um meine persönlichen Daten. Ich hätte einfach nur keine Lust, dass jemand alle Profildaten von meinem Portal abgreift, ob die Daten nun offentlich sind oder nicht, damit ich den Usern versichern kann, dass die Daten sicher an andere Leute als z.B. die Freundesliste.
Und es gibt einfach Leute, die echt sehr viel mehr als den nickname da eintragen. OK, dann sind sie auch selber schuld, aber ne kleine Verantwortung habe ich als Betreiber doch auch, oder?

Zitat:
Schutzmaßnahmen:
1. nur eingeloggte User dürfen das Profil von anderen sehen
Kann sich ein Bot nicht auch mit einem Fake-Profil einloggen?

Zitat:
2. kein Link zum Profil anbieten sondern ein 1-Knopf-Formular mit SUFU: "formwaechter"
jo, so einen Tipp hab ich gesucht ;-)

Zitat:
Profil 2: vergleichbar mit: http://www.phpforum.de/forum/editprofile.php
Da kommt man sowieso nur als eingeloggter User an sein eigenes Profil
Ausser einem funktionierendem Loginkonzept ist da kein weiterer Schutz notwendig!!
Ja, das is schon klar.


9.

Zitat:
aber ne kleine Verantwortung habe ich als Betreiber doch auch, oder?
Sicherlich!!
Aber ein Warnhinweis sollte deinen DAUs da schon reichen...
Wenn irgend jemand mit einem von dir gebauten Auto mit 200 Sachen gegen einen Baum donnert...
Wer ist dann Schuld?
Bei technischen Mängeln, wohl du!
Bei Absicht oder 4 Promille wohl der Anwender..

Zitat:
Kann sich ein Bot nicht auch mit einem Fake-Profil einloggen?
Das hat eigendlich schon nix mehr mit dem Profil zu tun....!


10.

Noch ein kleiner Gedanke am Rande:

Wenn ein "Angreifer" deine Profildaten automatisiert klauen will, funktioniert auch ein 1-Knopf-Formular, das ein hidden-Field mit der id enthält, nicht. Der Schlaue liest deinen Quelltext genau durch und schon findet er dein hidden-Field. Dann schreibt er kurz ein Script, das alle deine Seiten durchläuft und mit POST abfrägt. Fertig.

Also, wenn du das verhindern willst, musst du auf Profilnamen in der URL oder im hidden-Field zurückgreifen, denn diese sind nicht bzw. schwer automatisierbar, da es keine Zahlen sind. Die Erstellung unendlich langer Buchstabenkombination ist wesentlich aufwändiger und viel zu langsam, daher uninteressant für "Angreifer".


11.

Zitat:
Zitat:
Kann sich ein Bot nicht auch mit einem Fake-Profil einloggen?
Das hat eigendlich schon nix mehr mit dem Profil zu tun....!
Ne ich meinte, weil du gemeint hast, dass das schon eine Schutzmaßnahme ist, wenn man nur im eingeloggten zustand die Profile durchklicken kann.

Aber ok lassen wir das. Es scheint wirklich nicht als sooo schlimm aufgefasst zu werden, wenn man unbewusst Teil einer Marktanalyse ist. Oder ich drück mich echt so blöd aus ;-)
(Hier ist ein Beispiel: http://studivz.irgendwo.org)

Code:                   In Zwischenablage kopieren (nur IE)
1">

Das wird wohl echt die beste Lösung sein. Ich hab auch mal angedacht die id per md5 zu verschlüsseln, aber das is quatsch. Der Nickname is da glaub echt ausreichend.


12.

Dazu kommt auch, dass eine "eigene" URL für die Benutzer attraktiver aussieht und einfacher zu merken ist, als irgendeine id. Ausserdem gehen ihn id's sowieso nichts an. Ich machs immer so. Auch bei Rubriken, Navigationen, überall.


13.

Zitat:
Es scheint wirklich nicht als sooo schlimm aufgefasst zu werden, wenn man unbewusst Teil einer Marktanalyse ist.
Irgendwie habe ich das Gefühl, als hättest du den Formwächter noch nicht gefunden...

Hier mal ein Beispiel: (mit login wäre es noch wesendlich stabiler)
Code:                   In Zwischenablage kopieren (nur IE)
2">




14.

Wie war das mit XSS? :P
action="<?php echo $_SERVER['PHP_SELF']?>"
BTW: action einfach leerlassen, pointed auch auf die gleiche Seite...

abgesehen davon ist deine formatierung...arghZ....augenkrebs ...wo hastn das gelernt? *nur mal so frag* :)


15.

Zitat:
Wie war das mit XSS?
Da hast du völlig recht!!!

Zitat:
augenkrebs
:D Jetzt auch noch pingelig werden....:D
Ist doch schön bunt :)

Wie würdest du das denn formatieren, ohne daß die Forensoftware da die Zeilenumbrüche irgendwohin knallt?

Zitat:
BTW: action einfach leerlassen, pointed auch auf die gleiche Seite...
Und das ist spezifikationsmäßig OK?


16.

Zitat:
Jetzt auch noch pingelig werden....
Ist doch schön bunt
Naja, also innerhalb von Klammern () schonmal unter garkeinen Umständen newlines, nur im allerhärtesten Fall (eine sehr lange Bedingung) aber dann sicherlich nicht 2 Zeilen nur für die Klammern an sich raushaun. Ausserdem 1 Tab = 4 Leerzeichen....alles in allem eigentlich DIE Formatierung, die die Hochburg der PHP IDE's auch mit sich bringt (vll lernt bzw gewöhnt man sich daher auch dran?) Also alles in allem Guru-Style :P

Zitat:
Wie würdest du das denn formatieren, ohne daß die Forensoftware da die Zeilenumbrüche irgendwohin knallt?
Gut das Problem kennt man wohl aus viele Foren, ich will einfach mal versuchen ein if als Beispiel hier reinzuhaun...vll wirds ja nicht zerissen :P

Code:                   In Zwischenablage kopieren (nur IE)
3">

Wenn du jetzt noch sagst, das das nicht für jeden angenehm und effizient zu lesen ist hastn klatsch weg und dein geschmack ist versalzen! ...ansonsten...naja..behaupten wir einfach mal es hätte mit geschmack zu tun und geschmäcker sind verschieden ;)

Zitat:
Und das ist spezifikationsmäßig OK?
Klar ist es das, du kannst das action Attribut sogar ganz weglassen. Ob das nun W3 valide ist kann ich nicht garantiert sagen...aber mal ehrlich -> wayne? ;)


17.

Zitat:
Ob das nun W3 valide ist kann ich nicht garantiert
Und wer gibt die Spezifikation raus?


Code:                   In Zwischenablage kopieren (nur IE)
4">

:D Ansonsten, scheinst du unter irgendeiner neurotischen Fehlanpassung zu leiden... :D


18.

Herrjeh, bevor ihr euch in technischem Schnickschnack vergeht:

1. Alle Daten, die irgendwie öffentlich zugänglich sind, können auch automatisiert abgerufen werden.
2. Es hilft nichts, die URLs möglichst kompliziert zu machen, denn die User klicken ja auch auf einen Link, und diese Links lassen sich genauso einfach auslesen.
3. Wer seine Daten gerne "geheim" halten möchte, darf sie eben nicht öffentlich zugänglich machen.
4. Es gibt KEINE technische Lösung, die die beschriebenen Angriffe sinnvoll abwehren könnte.


19.

einmal muss ich noch :((

Code:                   In Zwischenablage kopieren (nur IE)
5">

.................................ich bezweifle das du sowas an der spitze der elite sehen wirst wie zB

Vancouver PHP Conference
PHP Conference Brazil
php|tek
php uk con
PHP Québec
& überhaupt die großen Veranstaltungen wie Pressesprecher & Profis....aber wie gesagt, lassen wir es einfach mal geschmackssache sein (schön?! Oo) statt effizient und leserlich...


20.

Außerdem hört sich da ja wohl alles auf, ich wüsste nicht, weshalb ich einem { eine eigene Zeile geben sollte. Viel eher geb ich dem if ein Leerzeichen hintendrein und dem { vorneweg. Und mir hats in 10 Jahren Programmierung nicht geschadet. Und wehe, da sagt nochmal einer was dagegen *bösguck* >:(


21.

Nö oimel, mach ich genauso. :)


22.

naja kommt leute, lassen wirs einfach jeden machen wie ers will solang ichs nicht lesen muss,
zum schluss ist alles das selbe opcode und register wirrwarr *hihihi*

EDIT: Ausserdem könnt ihr ja toll reden, wer auch immer diese Forum geschrieben hat und auch wenn es hier jetzt garnicht hingehört:

Wenn ich mir die Rank Seite anschaue frag ich mich wieso 8 User 0% sind und überhaupt wieso 1+3+9 nicht 100(%) sind :PPP

http://www.phpforum.de/forum/rank.php

*schonmal in deckung geh*


23.

Zitat:
oimel postete
2. Es hilft nichts, die URLs möglichst kompliziert zu machen, denn die User klicken ja auch auf einen Link, und diese Links lassen sich genauso einfach auslesen.
3. Wer seine Daten gerne "geheim" halten möchte, darf sie eben nicht öffentlich zugänglich machen.
4. Es gibt KEINE technische Lösung, die die beschriebenen Angriffe sinnvoll abwehren könnte.
Es ist auf jeden Fall von Vorteil, einen Nickname statt eine ID in den URLs zu verwenden. Denn das erschwert einen automatisierten Vorgang ungemein, und der zeitliche aufwand wird so hoch, dass es sich fast nicht mehr lohnt. Wenn man hingegen eine ID in der url hat, reicht nur ein Blick auf eine entspr. URL um alle Datensätze von 1-1000000 abzugrasen.... Ich werds jetzt auf jeden Fall so machen wie es puritania vorgeschlagen hat, per Nick.

Wegen dem programmierstil, ich finds auch übersichtlicher wenn gescheifte Klammern in extra Zeilen sind (Anfang wie Ende), so hat man einen viel besseren überblick bei tiefen Verschachtelungen.


24.

Naja, dass der Aufwand so hoch wird, dass es sich nicht mehr lohnt, würde glaube ich nicht, aber bitte schön...


25.

[quoteWegen dem programmierstil, ich finds auch übersichtlicher wenn gescheifte Klammern in extra Zeilen sind (Anfang wie Ende), so hat man einen viel besseren überblick bei tiefen Verschachtelungen.[/quote] Lüg nicht! Du willst nur dein Script so schön lang machen weil du dann so fleissig warst :P (obwohl kürzer ja von skill zeugen sollte... )
Für die Übersichtlichkeit ist der Einschub da....ach Mann ...ich fang schonwieder an! Hau mich endlich mal einer!

Ich sag jetzt mal was positives und stimme ansonsten der Nickname Sache zu. Schliesslich sollte dieser
genauso unique sein. *ganz doll zusammenreiss und hier nix mehr abweichendes reinschreib* versprochen...


26.

Es gibt durchaus Gründe, mit einer ID zu arbeiten und nicht mit dem Namen: Die ID bleibt auch eindeutig, wenn Einträge gelöscht werden. Namen werden aber normalerweise neu vergeben, wenn ein früherer Eintrag mit demselben Namen gelöscht wurde.


27.

Zusammen mit einem Formwächter (da es ja auch um "sichere Links" ging) kann das für die Links okay sein. Ansonsten wieder eher kacke. Es geht ja nicht um die unique ID's so wie ich das verstehe sondern im Verlauf der Diskussion zu sehen auch um die Sicherheit der daraus entstehenden Links.


28.

Zitat:
oimel postete
Es gibt durchaus Gründe, mit einer ID zu arbeiten und nicht mit dem Namen: Die ID bleibt auch eindeutig, wenn Einträge gelöscht werden. Namen werden aber normalerweise neu vergeben, wenn ein früherer Eintrag mit demselben Namen gelöscht wurde.
Bei mir ists so, dass wenn ein User gelöscht wird, dann werden alle Darensätze gelöscht, die mit der ID verknüpft sind. Blöd ists also nur wenn einer seinen Freund bookmarkt, und jetzt aber mittlerweile sich ein anderer hinter dem Namen verbrigt.

Name statt ID wäre ja auch nur in dem für den User sichtbaren Bereich. Intern werde ich dann weiterhin mit ID arbeiten.


29.

Zitat:
Bei mir ists so, dass wenn ein User gelöscht wird, dann werden alle Darensätze gelöscht, die mit der ID verknüpft sind. Blöd ists also nur wenn einer seinen Freund bookmarkt, und jetzt aber mittlerweile sich ein anderer hinter dem Namen verbrigt.
:D Damit hast du dich Disqualifiziert :D


30.

Es aaarrrtet mal wieder gewaltig hier :D Aber das ist ja das Tolle in diesem Forum... Apropos Programmierstil, zum Glück hab ich mal die Coding Guidelines (vom Zend-FW abgeleitet) mehr oder weniger auf Deutsch übersetzt ;)


31.

abgesehen von den ""one true brace" teilen und den leerschritten zwischen logisch zusammenhängenden sprachkontrukt-teilhabern (nenn ich sie mal :P) entspricht das auch meinem stil. und selbst wenn ich mir das "angewöhnen" will was zend so erzählt und selbst nicht tut, wirds schwer es der autovervollständigung von ZENDS!!! ZDE abzugewöhnen es eben nicht so zu tun wie du es beschreibst (ich kann ja auch das englische....) ...klar ich kann jedes mal wenn ein if vervollständigt wird alles umschreiben...muhahah, und ja klar ich kann auch alle einträge für die av umschreiben ...muhahahah... ich bleib einfach dabei :P

ich mein mal ehrlich....wenn man schon solche "regeln" veröffentlicht is es doch schon komisch wenns der eigene editor ganz anders macht oder?


32.

Ja, gut das hängt dann wieder vom Editor ab, aber man kann schliesslich in jedem Editor seinen Code formatieren wie man will. Wenigstens sinds mal anständige Regeln! Ist doch mal ein Anfang ;)


33.

Naja...ich rede ja wie gesagt von Zend's eigenen Editor...das ist ja grad das "seltsame" ...aber eigentlich wenn ich drüber nachdenke...is doch ganz okay wenn jeder seine Eigenheiten hat stell dir vor wir hätten alle den gleichen Pullover an :P
Solange das möglichst sinnvoll lesbar bleibt is doch alles in Butter!

Ich bins halt gewöhnt if zu schreiben und enter zu drücken und schon hab ich mein if statement ^^


34.

Zitat:
puritania postete
Es aaarrrtet mal wieder gewaltig hier :D Aber das ist ja das Tolle in diesem Forum... Apropos Programmierstil, zum Glück hab ich mal die Coding Guidelines (vom Zend-FW abgeleitet) mehr oder weniger auf Deutsch übersetzt ;)
Die Richlinien hab ich vorgestern schon über deine Sig. entdeckt. Endlich hat das mal jemand aufgeschrieben, find ich echt super!

Wenn wir schon mal dabei sind. Der Aperto-Blog veröffentlichte seine HTML und CSS Richtlinien, welche ich auch ziemlich gut finde.

Irgendwie sind wir hier jetzt ganz schön vom Thema abgeschweift, kann man das Coding-Thema nicht in einen anderen thread verschieben, damit man es auch wiederfindet. Is nämlich ziemlich interessant ;-)


35.

Ich habe mir jetzt mal den übersetzten Artikel von puritania durchgelesen.. und (leichte) Sorgen damit...

1. Zum Beispiel der Datei mit dem Pfad "Buxa/Db/Table.php" muss die Klasse "Buxa_Db_Table" enthalten.
Nunja.. Ein Bezeichner sollte das Bezeichnen, was das Ding tut, ist, kann!
Der "Ort" hat da erstmal herzlich wenig mit zu tun....
Ansonsten dürfte sich dieser dirty Hack mit dem neuen Modul-Namensräumen von PHP6 sowieso erledigen...:)

2. . Die geschweifte Klammer wird immer unterhalb des Klassennamens geschrieben ("one true brace" form)
Bei Funktionen wird es ebenso gemacht!
OK! Einverstanden!
Aber warum wird bei IF Konstrukten davon abgewichen???
Das verstößt meines Erachtens nach gegen das "Prinzip der geringsten Verwunderung"
Und, wie ist es mit Schleifen? Da kann man sich das aussuchen, oder? :D

Code:                   In Zwischenablage kopieren (nur IE)
6">

Mein Editor zeigt mir die zusammengehörigen Klammern an, wenn ich mit der Maus drauf klicke.
Wenn sie in einer Spalte aufleuchten, ist das Konstrukt OK..
:D Ich schreib Scripte und keine Such-die-Klammer Bildchen :D

Die Notation stammt aus den Anfängen der C Zeit, den 70ern... (alte Zöpfe)
Heutzutage kommt es wirklich nicht mehr auf ein Enter mehr oder weniger an!
Ich finds einfach voll doof die öffnende Klammer rechts zu suchen....am besten noch per Scrollbar

(und jetzt erwarte ich noch einmal richtig Haue)


36.

Code:                   In Zwischenablage kopieren (nur IE)
7">

hab ich wie oben anfangs auch immer so gemacht, inzwischen nicht mehr,
weil ich dacht, die andere Schreibweise sei "richtiger" und weil es einfach Platz spart.

Aus 2000 Zeilen Source werden so schnell mal 1800 und das tut meinem Scrollfinger gut.


37.

Zitat:
Ich finds einfach voll doof die öffnende Klammer rechts zu suchen....am besten noch per Scrollbar
Du brauchst die nicht suchen weil es vollkommen logisch ist das sie dort ist ;)

Code:                   In Zwischenablage kopieren (nur IE)
8">

noch ein bisschen besser und ohne bug oder? :P ok getestet nicht aber ich bin mir doch ziemlich sicher :P
bernds find ich persönlich noch schlimmer, hab ich aber auch nur gaaaaanz selten mal gesehen...naja aber ich sags
wieder - lassen wirs einfach: ich kanns euch net abgewöhnen und ihr mir nicht :)


38.

Zitat:
// combies funzt net, da wir ja nicht in dem ordner sind...
Du hast einen WackelSchatten...

@ im Quelltext und das hier im Forum

Code:                   In Zwischenablage kopieren (nur IE)
9">

Alles dieses funktioniert mit meiner Funktion, wenn denn die Verzeichnisse und Laufwerke existieren!!

Und Bernds Methode finde ich auch nicht so toll...
Keine Datei hat bei mir mehr als 200 Zeilen,
nagut, einige wenige sehr komplexe Klassen kommen an die 500 ran, da habe dann ich aber schon fast das Gefühl was falsch gemacht zu haben


39.

hmmm soweit ich mich entsinne geht glob vom cwd aus...und wenn ich nicht wechsle und nur einen ordner namen gebe ...naja weisst schon isser nicht da! ganz sicher das ich mich irre???

und duuuu hast...öööhm...fusspilz! :P


40.

Zitat:
combie postete
Aber warum wird bei IF Konstrukten davon abgewichen???
Das verstößt meines Erachtens nach gegen das "Prinzip der geringsten Verwunderung"
Und, wie ist es mit Schleifen? Da kann man sich das aussuchen, oder? :D
Nein, alle Kontroll-Strukturen werden alle mit { auf der gleichen Zeile geschrieben. Ich denke, schlussendlich ist sowas Gewohnheitssache und beides ist übersichtlich wenn man mit 4 Spaces als Zeileneinzug arbeitet. Ich habe von Anfang an die { auf die gleiche Zeile genommen und mir dies nicht mehr abgewöhnt... Das ist wirklich Gewohnheit. Dazu ist das auch der Vorschlag der Zend-Fritzen und deshalb habe ich beschlossen, dies auch nicht zu ändern ;)

By the way: Poste mal den Link zu "Modul-Namensräumen von PHP6".


41.

habs grad getestet combie - hast recht :) ich könnte aber schwören das war mal so....hmmm vll in 4 und ich habs bei 5 nicht mitbekommen....

meine "freestyle-funktion" allerdinds will nicht richtig rekursiv :(

die runde geht an dich!

dafür war deine aber bestümmt auch aus irgendwelchen von deinen libs und meine wie gesagt
im textfeld hier gefreestyled *g


42.

Zitat:
das war mal so....hmmm vll in 4
Nixda!! Das war schon immer so!
Du meinst bestimmt scandir() und seine Brüder..


Zitat:
Das ist wirklich Gewohnheit.
Volle Zustimmung...
Nunja.. ich komme aus der Pascal-Ecke und da ist es Standard, Begin und End auf eine Spalte zu setzen
Aber das ist ja auch sowieso eine Romanautoren-laber-sprache...

Ich habe auch noch eine PHP "Diashow" in meiner Wühlkiste.
:D Die ist eine ganz gutes Beispiel dafür, wie man es gar nicht machen sollte :D
Das Dingen habe ich irgendwo gefunden, also bitte nicht dafür abstrafen :)

Code:                   In Zwischenablage kopieren (nur IE)
10">




43.

Zitat:
By the way: Poste mal den Link zu "Modul-Namensräumen von PHP6".
http://www.php.net/~derick/meeting-notes.html#name-spaces
Nunja, KA wie weit sich das jetzt schon entwickelt hat......


44.

danke für den link combie - leider ist die php6 entwicklung bisher noch komplett an mir vorbeigegangen! :)


45.

Ich hab das gerade auch mal gelesen und das hier:
Zitat:
Auch wenn Funktionsnamen keine Underscores enthalten dürfen, müssen als "private" oder "protected" deklarierte Methoden mit einem einfachen Underscore beginnen.
ist natürlich absoluter Unsinn. Damit kann man die Sichtbarkeit einer Methode nicht mehr ändern ohne alle ihre Aufrufe mitzuändern -> unnötig kompliziert. Gleiches gilt natürlich für Attribute.

Auch
Zitat:
Ausgaben wie "<?=$var?>" sind auch nicht erlaubt.
geht völlig an dem vorbei, wofür diese Art von Sprachen (allen voran ASP und JSP) mal gedacht waren und führt den PHP-Html-Mix völlig ad absurdum.

Weiterhin ist das hier
Zitat:
function objectMethod(Buxa_Bar $sampleObject)
{
// ...
}
, also das in PHP 5 neu eingeführte "type hinting" völlig fürn Ar...h, weil es den "null"-Typ nicht als Parameter zulässt. Somit ist es in vielen Fällen nicht zu gebrauchen.

Ums mal kurz zu fassen: So gut wie alle Aussagen in dem Dokument, die wirklich semantische Dinge betreffen, sind eigentlich nicht zu gebrauchen. Ob ich dagegen ein Leerzeichen mehr oder weniger mache ist trivial und sowieso automatisiert durch Beautifier änderbar.

Und das ist von der Firma, die sich für PHP zuständig fühlt? :D


46.

@oimel: zu dem _privateMethode und so: Naja, die Umbenennung nimmt einem der Editor ja ab. Ich finde es manchmal hilfreich wenn ich in einer Klasse beim Aufruf einer Methode sehe ob sie private/protected oder public ist, ohne mich extra zur methode zu bewegen. <?=$var?> könnte man wirklich durchgehen lassen... geb ich dir Recht. Das type hinting bei den Methoden benutze ich ehrlich gesagt ziemlich selten, daher wirst du das besse beurteilen können. Also hoffen wir auf ein regenbogenfarbenes PHP6 ;)


47.

@prui: Hm, wie willst Du das sehen? Entweder Du guckst rein in den Code - dort siehst Du private oder _, das ist dann einerlei - oder du guckst nicht rein und weißt dann weder das eine noch das andere. Wieso werden für PHP immer so komische Konventionen aufgestellt, die sonst auf der ganzen Welt aus gutem Grund für keine Programmiersprache verwendet werden?


48.

Zitat:
aus gutem Grund für keine Programmiersprache verwendet werden?
In der Pascal Welt ist es üblich.
Eine freiwillige Konvention, nicht von der Sprache gefordert.



DatenTypen werden mit groß T begonnen
Code:                   In Zwischenablage kopieren (nur IE)
11">

Interfaces beginnen mit groß i
Code:                   In Zwischenablage kopieren (nur IE)
12">

Ich denke mal, das ist vertretbar, allerdings auch nicht das Maß aller Dinge


49.

Zitat:
burnZ postete
Wenn ich mir die Rank Seite anschaue frag ich mich wieso 8 User 0% sind und überhaupt wieso 1+3+9 nicht 100(%) sind :PPP

http://www.phpforum.de/forum/rank.php

*schonmal in deckung geh*
Weil Du die Basisgröße nicht verstanden bzw. falsch verstanden hast. 8 User sind 0% der registrierten User. Die meisten schaffens nicht einmal zu einem Stern, deswegen ergibt das keine 100% gesamt.


50.

@combie: Ja aber wenns doch ausschließlich später Ärger macht und grad gar nix bringt? Was soll so eine Konvention?


51.

Zitat:
Ums mal kurz zu fassen: So gut wie alle Aussagen in dem Dokument, die wirklich semantische Dinge betreffen, sind eigentlich nicht zu gebrauchen. Ob ich dagegen ein Leerzeichen mehr oder weniger mache ist trivial und sowieso automatisiert durch Beautifier änderbar.
In dem Fall schreibst du bald mal Deine konventionen auf, und postest hier den Link ;-)

Ne, mal im ernst, ich mache zwar schon ziemlich viel mit PHP aber leider noch nicht OO, deswegen ist mir vieles fremd über das Ihr hier gerade diskutiert. Ich hab aber schon mal OO programmiert mit Java hat auch Spass gemacht, aber is schon lange her. Wie kann ich mir am besten einen Überblick darüber verschaffen, damit ich weiß wovon ihr hier redet?


52.

zur OOP: http://tut.php-q.net/klassen.html


53.

Zitat:
oimel postete
@combie: Ja aber wenns doch ausschließlich später Ärger macht und grad gar nix bringt? Was soll so eine Konvention?
Die Pascal Leute halten sich weltweit daran, dann macht es wenigstens halbwegs Sinn.
In der PHP Welt kocht jeder sein eigenes Süppchen, und aus die Maus, damit ist es Sinnfrei.

Zitat:
PHP 5 neu eingeführte "type hinting"
Da schlagen 2 Herzen in meiner Brust.
Einerseits ist es schön , daß die Sprache etwas "typefester" wird, aber das geht mir nicht weit genug.
Das sollte, wenn schon, auf alle Datentypen ausgeweitet werden,

Angenommen "Frosch" wäre KEINE Konstante, dann:
Code:                   In Zwischenablage kopieren (nur IE)
13">

Damit würde uns der Interpreter vor vielen Fehlern beschützen.
Naja, warten wir mal auf PHP12 ...........


54.

@oimel: wenn du in irgendeiner Methode z.B. $this->_var siehst, erkennst du nur schon daran, dass hier auf eine private oder protected Variable zugegriffen wird. Wenn da nur $this->var steht ist sie public. Ohne das _ erkennst du sowas natürlich weder noch... Das gilt auch für die Methoden. Andererseits macht es für mich bei den Klassenvariablen nicht mehr wirklich Sinn, weil ich sozusagen keine einzigen public Variablen mehr habe... :D


55.

Zitat:
Weil Du die Basisgröße nicht verstanden bzw. falsch verstanden hast. 8 User sind 0% der registrierten User. Die meisten schaffens nicht einmal zu einem Stern, deswegen ergibt das keine 100% gesamt.
Jetzt wo du es sagst sehe ich es auch das keine Ranglosen User gezeigt werden. Ist auf den ersten Blick halt etwas naja - ich sag mal verwirrend :P


56.

Zitat:
puritania postete
@oimel: wenn du in irgendeiner Methode z.B. $this->_var siehst, erkennst du nur schon daran, dass hier auf eine private oder protected Variable zugegriffen wird. Wenn da nur $this->var steht ist sie public. Ohne das _ erkennst du sowas natürlich weder noch... Das gilt auch für die Methoden. Andererseits macht es für mich bei den Klassenvariablen nicht mehr wirklich Sinn, weil ich sozusagen keine einzigen public Variablen mehr habe... :D
Na aber wozu? Wenn eine Methode private ist, dann wird sie sowieso nur innerhalb der Klasse benutzt, in der sie auch selbst definiert ist, wozu dann das Anhängsel an den Methodennamen? Das war bei PHP4 vielleicht sinnvoll, aber bei PHP5 ist das doch echt alter, unnützer Quark!


57.

tjo es könnte ja auch editoren mit autovervollständigung geben die keinen unterschied zwischen public und private machen. da ist es dann wohl übersichtlicher dann man eine klasse verwendet. ansonsten ist es wohl das "opas & SPD war immer jut!" prinzip :P


58.

@oimel: Du hast dabei ja nicht ganz unrecht, nötig ist es natürlich nicht. Frag doch mal die Zend-Fritzen, was der Hauptgrund dafür ist, falls du zu einem von denen Kontakt pflegen solltest ;) Das mit den Underscores sehen wir ja nicht zum ersten mal und wird auch bei anderen Sprachen so verwendet.


59.

und wenn nu alle __12345_private_ok_ok_varname_ vor die variablen schreiben würden würdest du's auch tun gell? ^^


60.

Naja, die PHP-Entwickler fallen ja an sich nicht unbedingt durch besondere Geistesgegenwart auf. Ich gehe davon aus, dass sich diese Aussage auf Zend im Allgemeinen ausdehnen lässt ;)


61.

Zitat:
burnZ postete
und wenn nu alle __12345_private_ok_ok_varname_ vor die variablen schreiben würden würdest du's auch tun gell? ^^
was soll der Quatsch ? Das Forum ist nicht dazu da, daß die Leute sich gegenseitig blöd anmachen,
also bitte ...


62.

es lag auch nicht im meinem interesse jemanden dumm anzumachen - umgekehrt scheinar schon öfter seit ich hier bin...schwamm drüber!


63.

@burnZ: Aus dem festen Thread Fragen richtig stellen von b33blebr0x "Wie man Antworten interpretiert"


64.

Zitat:
Du solltest stattdessen für solche großmütterliche Güte dankbar sein.
soll das heissen ich soll dafür dankbar sein das du mich oder meine "style" oder was auch immer lächerlich machst? deine aussage deutet zumindest darauf hin wenn du mich fragst...naja bevor die klugscheisserei in streit ausatet will ich doch mal behaupten das wir ins ein wenig gegenseitig hochschaukeln...ich beende das thema für mich einfach - nicht weil der klügere nachgibt - sondern einfach um schlimmeres zu vermeiden ;)

viel spass noch hier!


Hier gehts zum Orginal Eintrag "Alternative zu ID-Nummer" im Forum
 
phpforum.de | Impressum