Hallo, Gast |
Du musst dich registrieren bevor du auf unserer Seite Beiträge schreiben kannst.
|
Foren-Statistiken |
» Mitglieder: 288
» Neuestes Mitglied: ebavap
» Foren-Themen: 169
» Foren-Beiträge: 899
Komplettstatistiken
|
Aktive Themen |
PHPMailer Pfad wird nicht...
Forum: PHP Basics
Letzter Beitrag: Arne Drews
23.08.2022, 21:07
» Antworten: 5
» Ansichten: 2.264
|
PHP 8.1: Endlich Enums in...
Forum: PHP Basics
Letzter Beitrag: Arne Drews
22.04.2021, 16:55
» Antworten: 1
» Ansichten: 2.430
|
Einfache Template Engine
Forum: PHP Template Engines
Letzter Beitrag: Arne Drews
22.04.2021, 16:49
» Antworten: 4
» Ansichten: 10.409
|
OAuth - Should I "scrambl...
Forum: Off Topic
Letzter Beitrag: Till
05.01.2020, 04:55
» Antworten: 0
» Ansichten: 7.102
|
"Invisible" Captcha
Forum: PHP Basics
Letzter Beitrag: Arne Drews
11.12.2019, 15:00
» Antworten: 5
» Ansichten: 10.010
|
Projektvorstellung - Test...
Forum: Off Topic
Letzter Beitrag: Till
22.11.2019, 20:03
» Antworten: 3
» Ansichten: 5.276
|
POST/GET routes deklarier...
Forum: PHP Basics
Letzter Beitrag: Till
14.11.2019, 19:44
» Antworten: 2
» Ansichten: 4.382
|
PHPMailer
Forum: PreComposed
Letzter Beitrag: Arne Drews
20.10.2019, 12:44
» Antworten: 6
» Ansichten: 8.059
|
Twig TemplateEngine
Forum: PreComposed
Letzter Beitrag: Arne Drews
29.08.2019, 14:21
» Antworten: 0
» Ansichten: 3.131
|
SwiftMailer
Forum: PreComposed
Letzter Beitrag: Arne Drews
28.08.2019, 10:19
» Antworten: 0
» Ansichten: 3.331
|
|
|
Freischaltung |
Geschrieben von: Arne Drews - 23.03.2015, 00:20 - Forum: Off Topic
- Keine Antworten
|
 |
Hallo,
Das Forum habe ich eben freigeschaltet.
Danke für eure Hinweise und Vorschläge, die ich weiterhin noch anpassen werde.
Bestimmte Foren musste ich der Freischaltung entsprechend auf Moderatoren und Administratoren begrenzen.
Solltet ihr darauf nun keinen Zugriff mehr haben, schreibt hier ruhig auch eure Anregungen.
Ich werde sicher Zeit finden, das eine oder andere noch umzusetzen.
Danke und schöne Grüße
Arne
|
|
|
Ranglisten per MySQL |
Geschrieben von: VPh - 22.03.2015, 23:55 - Forum: Code Goodies
- Keine Antworten
|
 |
Hallo,
es kommt ja ab und zu mal die Frage auf, wie man per MySQL und PHP eine Rangliste erstellen kann.
Code und Queries sind hier zu finden: https://github.com/P-Voss/Ranglisten
Code:
-- Table structure for `persons`
DROP TABLE IF EXISTS `persons`;
CREATE TABLE `persons` (
`person_id` int(11) NOT NULL AUTO_INCREMENT,
`vorname` varchar(30) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`nachname` varchar(30) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`team_id` int(11) NOT NULL,
PRIMARY KEY (`person_id`)
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8;
-- Table structure for `result_simple`
DROP TABLE IF EXISTS `result_simple`;
CREATE TABLE `result_simple` (
`result_id` int(11) NOT NULL AUTO_INCREMENT,
`person_id` int(11) NOT NULL,
`points` int(11) NOT NULL,
PRIMARY KEY (`result_id`)
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8;
Verschiedene Möglichkeiten das Problem anzugehen, die ich kenne:
Den Rang berechnen, indem andere Datensätze mit dem gleichen oder besseren Ergebnis gezählt werden
Code:
SELECT
main.person_id AS Person_ID,
persons.vorname AS Vorname,
persons.nachname AS Nachname,
main.points AS Punkte,
(SELECT
COUNT(*)+1
FROM
result_simple sub
WHERE
sub.points > main.points
) AS Rang
FROM
result_simple main
LEFT JOIN persons
ON main.person_id = persons.person_id
ORDER BY rang, persons.person_id
Vorteile
- Die Datenbank greift auf den Query-Cache zu (!)
- Die Liste muss nicht sortiert werden
Nachteile
- Die Abfrage kann schnell unübersichtlich werden
Die Liste nach dem Ergebnis sortieren und den Rang anhand der jeweiligen Zeilenzahl festlegen
src: http://fellowtuts.com/mysql/query-to-obtain-rank-function-in-mysql/
Code:
SELECT
rangliste.person_id AS Person_ID,
persons.vorname AS Vorname,
persons.nachname AS Nachname,
rangliste.points AS Punkte,
rangliste.rang AS Rang
FROM
(SELECT
points,
person_id,
@curRank := IF(@prevRank = points, @curRank, @incRank) AS rang,
@incRank := @incRank + 1,
@prevRank := points
FROM
result_simple,
(SELECT
@curRank :=0,
@prevRank := NULL,
@incRank := 1) AS count
ORDER BY
points DESC, person_id
) AS rangliste
LEFT JOIN persons
ON rangliste.person_id = persons.person_id
Vorteile
- Die Abfrage bleibt relativ übersichtlich, da der Rang-Abzählung die restliche Query ziemlich egal ist
Nachteile
- Der Query-Cache wird nicht verwendet
- Sortierung nach einem anderen Kriterium als den Rang erfordert weiteren Subselect
Ich habe die Abfragen noch nicht für größere Datenmengen getestet, weiß also nicht welche Version am Ende performanter sein könnte, bei meinen Testdaten hat die erste Version die Nase klar vorn. Beim deaktivierten Query-Cache verhalten sie sich in etwa gleich. *1
Im Git-Repository ist noch eine Query bei der die Punktzahl über mehrere 'Runden' pro Spieler summiert werden, sowie eine bei der diese Summierten Werte auch nochmal zum Team gruppiert werden.
Ergänzungen, Korrekturen und Ideen wie immer erwünscht.
Nachtrag:
*1)
Bei einer Datenmenge von ~300k Zeilen in der results-Tabelle ist die "berechnende" Variante immer noch schneller, sobald der Cache angelegt ist.
Dauer der ersten Abfrage - ungecached
Berechnende Query: ~1500 ms
Zählende Query: ~250 ms
Nächste Abfragen - gecached
Berechnende Query: 0.15 bis 0.3 ms
Zählende Query: ~250 ms
|
|
|
Lerne Grundlagen | Quellensammlung |
Geschrieben von: tkausl - 21.03.2015, 12:00 - Forum: PHP Basics
- Keine Antworten
|
 |
Dieser Thread enthält Links auf wertvolle Webquellen rund um das Thema Webentwicklung.
Du hast „Lerne Grundlagen“ als Antwort bekommen? Das ist keineswegs böse gemeint, vielmehr spiegelt das unser Verständnis für ein sinnvolles Forenprinzip dar. Unsere Comunity besteht aus vielen fleißigen Helfern, die freiwillig Dir und anderen bei der Lösung Ihrer Probleme helfen. Was wir dabei voraussetzen ist
- das Einhalten unserer Regeln (was ein Mindestmaß an die Form des Postings miteinschließt)
- Dein persönliches Engagement bei der Diskussion und Lösung der Probleme
Wir erwarten vernünftige Fragestellungen, aktive Mitarbeit an der Problemlösung (Debugging, Posten von Fortschritten), Geduld und Respekt vor unserer Person. Wir sind hilfsbereit, aber keine Dienstleister.
- Dein Grundverständnis für die verwendeten Programmiersprachen
Dem letzten Punkt soll dieser Thread Rechnung tragen. Du bist aufgerufen, Dich im Vorfeld eigenständig ausreichend mit der Materie Webentwicklung auseinanderzusetzen. Ob Du das in einem Buch oder Tutorial besser kannst, ist Deine Sache, jeder lernt anders.
Zu wissen, worüber man redet, ist unabdingbar für jegliche fachliche Diskussion. Du wirst hier keine Privatlektionen erhalten, niemand wird Dir Syntaxnachhilfe geben oder aus dem Manual vorlesen. Hilfe zur Selbsthilfe, das soll der Ansatz für unser Forum sein.
So, und nun ein erfolgreiches Selbststudium!
Dokumentationen (Manuals) und Nachschlagewerke:
- HTML:
- SELFHTML: HTML/XHTML
Sehr gutes Nachschlagewerk zu allen HTML Tags. Viele Beispiele und Erklärungen zu HTML. Ein Muss für jeden der HTML verwendet.
Die Referenz enthält auch einige Grundlagen zu Client-Server-Prinzipien, regulären Ausdrücken und Webdesignprinzipien.
Vorteile: Referenzliste zu HTML Elementen, Attributen, Zeichen und Varianten
- CSS:
- CSS 4 You - The Finest in Stylesheets
Sehr gutes Nachschlagewerk zu CSS. Viele Beispiele und Erklärungen zu CSS Eigenschaften. Enthält Workshops zur Nutzung von Selektoren. Zwar nicht ganz aktuell, bietet aber eine Übersicht welche Eigenschaften von welchen Browsern unterstützt werden (leider nur bis IE7, Opera 7)
Vorteile: Stichwortverzeichnis zu CSS-Eigenschaften, Erklärung zu vielen CSS Eigenschaften, Attribut-Referenz, einige Tipps und Tricks
Nachteile: Nicht mehr aktuell, wird nicht weiter gepflegt.
- CSS Compatibility and Internet Explorer
Übersicht über alle vom Internet Explorer unterstützten CSS Selektoren, Attributen und Werten. Dabei wird genau angegeben in welchern Browserversionen welche Eigenschaft unterstützt wird.
- Frameworks:
- YAML:
- Home: Yet Another Multicolumn Layout | An (X)HTML/CSS Framework
Die Webseite zum CSS Framework YAML. Das Framework stammt vom deutschen Entwickler Dirk Jesse. Auf der Webseite gibt es einen YAML Builder mit dem man sehr einfach CSS Layouts gestallten kann. Für jeden der YAML noch nicht kennt auf jeden Fall einen Blick wert.
- YUI 3:
- 960 Grid System:
- javascript:
- SELFHTML: JavaScript/DOM
Sehr gutes Nachschlagewerk zu JavaScript. Viele Beispiele und Erklärungen zu JavaScript Befehlen.
Vorteile: Erklärung zu vielen JavaScript-Sprachelementen, Objektreferenzliste
- Frameworks:
- prototype:
- ExtJS:
- jQuery:
- PHP:
- PHP: PHP-Handbuch - Manual
Offizielle PHP Dokumentation. Als Funktionsreferenz zum Nachschlagen oder suchen von Funktionen zu empfehlen, auch für das Nachlesen von Themen, aber eher nicht als Tutorial für Anfänger zu empfehlen.
Vorteile: ausführlichste Installation und Konfiguration (viele Systeme und Software), großes Kapitel über Sicherheit, einige von Nutzern geschriebene Beispiele, Lösungen und Notizen, volle Funktionsreferenz
Nachteile: teilweise nicht Übersetzt ( englische Fragmente bzw. ganze Kapitel)
- Willkommen im PHP Wiki von php::bar! - php bar
Eine ausführliche Referenz in Form eines Wikis. Die häufigsten Themen werden ähnlich wie in der Wikipedia in der Art eines Lexikons <acronym title="Page Ranking">pr</acronym>äsentiert.
Vorteile: Große Themenvielfalt
Nachteile: Die Erklärungen fallen manchmal etwas spärlich aus und die Inhalte sind auch nicht immer ganz aktuell
- Frameworks:
- Adventure-PHP-Framework:
- Startseite :: Adventure PHP Framework (APF)
Dieses Framework wurde von unserem Moderator dr.e. entwickelt. Fragen zum Framework werden gerne hier von dr.e. beantwortet. Ihr habt somit einen direkten Draht zum Entwickler.
- Zend Framework:
- Zend Framework
Das Zend Framework ist ein Komponenten-orientiertes Framework für PHP 5, das heißt die Klassen und Pakete können unabhängig voneinander und auch in Kombination mit denen anderer Hersteller genutzt werden. Die Funktionen sind komplett objektorientiert realisiert und erfordern PHP ab Version 5. Das Framework wird von der Zend Technologies entwickelt, den Entwicklern von PHP.
- CakePHP:
- CodeIgniter:
- Symfony:
- symfony | Web PHP Framework
Symfony ist ein weiteres PHP Framework das auf dem MVC Entwurfsmuster aufbaut. Symfony gilt als schnell zu erlernendes Framework.
- Flow:
- TYPO3 Flow Enterprise PHP Framework
Das MVC-Framework Flow ist die Basis für TYPO3 Neos, wird aber eigenständig entwickelt und steht somit auch für andere Projekte zur Verfügung.
-
- MySQL:
- MySQL :: MySQL 5.1 Referenzhandbuch
Deutsches Handbuch zu MySQL 5.1. Handbücher zu anderen MySQL Versionen ebenfalls vorhanden. Sollte bei Problemen mit MySQL Funktionen weiter helfen. Enthält viele Tipps zum Arbeiten mit MySQL.
Vorteile: beschreibt alle Features aus MySQL, sehr detailiert
Nachteile: teilweise etwas unübersichtlich
- Webentwicklung, divers:
- Unzulänglichkeiten:
Tutorials:
- HTML:
- Peter Kropff - HTML - Überblick
Umfangreiches Tutorial zu HTML, CSS, JavaScript, PHP und MySQL. Deckt somit alle wichtigen Bereiche ab. Für Anfänger sehr zu empfehlen!
Vorteile: Grundlagen vom absoluten Anfang, kein Fachchinesisch, Umfang
- CSS:
- Peter Kropff - CSS - Überblick
Umfangreiches Tutorial zu HTML, CSS, JavaScript, PHP und MySQL. Deckt somit alle wichtigen Bereiche ab. Für Anfänger sehr zu empfehlen!
Vorteile: Grundlagen vom absoluten Anfang, kein Fachchinesisch, Umfang
- javascript:
- Peter Kropff - JavaScript - Einleitung
Umfangreiches Tutorial zu HTML, CSS, JavaScript, PHP und MySQL. Deckt somit alle wichtigen Bereiche ab. Für Anfänger sehr zu empfehlen!
Vorteile: Grundlagen vom absoluten Anfang, kein Fachchinesisch, Umfang
- Ajax Tutorial
Einfaches Tutorial das erklärt wie man AJAX umsetzt.
Vorteile: sehr einfach gehalten, bietet ein paar Beispiele
Nachteile: Verwendung von Frameworks wird nicht gezeigt
- Frameworks:
- prototype:
- ExtJS:
- jQuery:
- PHP Anfänger:
- Quakenet/#php Tutorial - de - Einleitung
Sehr gutes Tutorial für den Anfang, aber nur für Leser die fertige Serverinstallationen nutzen oder ihren selbst konfigurieren können.
Vorteile: gute Erklärung der Funktionsweise PHP's, ausführliche Erklärung der Grundlagen, Kapitel zum Thema Fehler, ERklärung des Templatesystems
Nachteile: Konfiguration und Installation fehlen
- Peter Kropff - PHP - Einleitung
Umfangreiches Tutorial zu HTML, CSS, JavaScript, PHP und MySQL. Deckt somit alle wichtigen Bereiche ab. Für Anfänger sehr zu empfehlen!
Vorteile: Grundlagen vom absoluten Anfang, kein Fachchinesisch, Umfang
- PHP-Kurs.com - PHP lernen und MySQL Tutorial mit vielen Beispielen
Eine sehr gute und ausführliche Beschreibung der PHP-Grundlagen. Anhand der Tutorials kann man sich gut Schritt für Schritt die Grundlagen von PHP aneignen. Dabei bauen die einzelnen Lektionen aufeinander auf.
Vorteile: Sehr gut erklärt, sehr ausführlich. Auch das Thema Sicherheit hat ein eigenes Kapitel spendiert bekommen, das man sich auf jeden Fall zu Gemüte führen sollte. Der Autor hat mich sogar ob dieses Posts angeschrieben, um mich über Aktualisierungen zu informieren. Das Tutorial wird also noch rege gepflegt und sollte somit auch in Zukunft aktuell bleiben.
- PHP Essentials - Techotopia
Gutes Tutorial zu den Grundlagen. Geht bis zur Objektorientierung und dem Zugriff auf MySQL Dtaenbanken.
Nachteile: Englisch, wichtige Punkte wie SQL Injection werden nicht behandelt.
- PHP - SELFPHP: Version 5.2.8 Befehlsreferenz - Tutorial &ndash; Kochbuch &ndash; Forum zum Thema PHP
Persönlich als empfehlenswertes Tutorial einzustufen, jedoch mit einigen Lücken. Aber auch mit speziellen Features.
Vorteile: ausführliche Funktionsreferenz, ausführliche Anleitung für Installation und Konfiguration (nötiger Software), Anschneiden von Entwicklungumgebungen, großes Syntaxkapitel, eigenes Datenbankkapitel, Abteilung mit "Problem-Lösung", Codeschnipsel für kleine Probleme
Nachteile: Referenz manchmal unübersichtlich, kurzes Anschneiden von Sicherheit(könnte mehr sein, keine Techniken zur Sicherung), "Problem-Lösung" mit z. T. umständlicher Darstellung für Anfänger
- PHP Grundlagen
Ein sehr ausführliches Tutorial, das aber eher einer Referenz ähnelt, aber dennoch Schritt für Schritt das Wissen aufbaut und gute Erklärungen liefert.
Vorteile: Sehr ausführlich, es werden die meisten Grundlagen abgedeckt, auch einige fortgeschrittene Themen werden angerissen
Nachteile: Das Thema Sicherheit kommt zu kurz, vor allem SQL Injections werden nicht behandelt
- PHP für dich - PHP und mySQL einfach und kurz erklärt
Ein schon recht altes Tutorial zum Thema PHP und MySQL.
Vorteile: Recht nett geschrieben, für die ersten Versuche mit PHP geeignet
Nachteile: Alt und somit teilweise nicht mehr up-to-date, nur absolute Grundlagen, Teilweise fehlen wichtige Themen (Fehlerbehandlung, Sicherheit, Testen von GET/POST Parametern)
- Websiteentwicklung: PHP – Wikibooks, Sammlung freier Lehr-, Sach- und Fachbücher
Zur Zeit nicht als Tutorial zu empfehlen für tiefergehendes Erlernen von PHP
Vorteile: Syntax grundlegend erklärt, Sicherheitsinformationen zum Thema Benutzereingaben, Übungsaufgaben am Ende (mit Verweis zum Manual von php.net)
Nachteile: ist teilweise noch in Arbeit (oder sollte überarbeitet werden), Referenz zu kurz, MySQL bzw. andere Datenbanken zu kurz oder garnicht behandelt, Dateisystem viel zu kurz behandelt
- Weiterführendes:
- PHP Fortgeschrittene:
- Professionelle Softwareentwicklung mit PHP 5
Dieses Tutorial stellt neben der objektorientierten Programmierung auch Entwurfsmuster (Design Patterns) und Entwicklungswerkzeuge vor. Außerdem umfasst es Themen zur Verarbeitung von XML-Dokumenten, der Programmierung mit Webdiensten (SOAP) und der MySQLi-Erweiterung sowie der Datenbankabstraktion mit Creole und der Speicherung von PHP-Objekten in einer relationalen Datenbank mit Hilfe von Propel.
Vorteile: tiefgehende Themen, von der wissenschaftlichen Perspektive beleuchtet
Nachteile: hoher Anspruch, nur für Fortgeschrittene
- MySQL:
- Peter Kropff - MySQL - Einleitung
Umfangreiches Tutorial zu HTML, CSS, JavaScript, PHP und MySQL. Deckt somit alle wichtigen Bereiche ab. Für Anfänger sehr zu empfehlen!
Vorteile: Grundlagen vom absoluten Anfang, kein Fachchinesisch, Umfang
- javascript:
- Sicherheit:
- http://www.cms-sicherheit.de/
Eine sehr gute Tutorial-Seite zum Thema Sicherheit. Dort werden die häufigsten Fallen und Sicherheitslücken erklärt und Lösungen vorgeschlagen. Ein absolutes Muss, bevor man seine erste Anwendung online stellt.
Vorteile: Gute Erklärungen, es werden die meisten Sicherheitslücken genannt, nach der Lektüre kann man sich relativ sicher sein, dass die Anwendung sicher ist (natürlich ist dies keine Garantie, hier also bitte Vorsicht walten lassen)
Nachteile: Die Ausführungen sind trotz der guten Erklärungen manchmal etwas kurz geraten
Bücher
- Galileo Computing : Buch : Besser PHP programmieren
Dieses Buch führt sehr gut in PHP ein und beleuchtet viele Aspekte der Webprogrammierung mit PHP. Zuerst werden die Grundlagen erklärt, dann kommt man aber auch schnell zu komplexeren Themen.
Ich kann allerdings nur für die 2. Auflage sprechen, die 3. Auflage sollte allerdings noch viele Verbesserungen liefern.
Vorteile: Umfangreich, gut erklärt, teils auch etwas humorvoll
Nachteile: Die Themen werden nicht immer erschöpfend behandelt
- Galileo Computing : Buch : PHP 5.3 und MySQL 5.1
Ein Buch, dass zunächst auf die Grundlagen von PHP eingeht, dann aber schnell zu fortgeschrittenen Themen übergeht. Vor allem die Datenbankanbindung spielt eine große Rolle.
Vorteile: Sehr umfangreich und PHP-Einsteiger können viel mitnehmen
Nachteile: Das Konzept des Buches ist nicht immer ganz schlüssig und ein paar Anwendungsimplementierungen sind auch leicht fragwürdig (bieten aber dennoch einen guten Anreiz und fördern das Verständnis dessen, was man tut)
- PHP Security Consortium: Projects
Kostenloses Ebook zu den wichtigsten Sicherheitsproblemen in PHP Anwendungen.
Vorteile: kostenlos, umfasst die wichtigsten Themen, verschiedene Formate (PDF/HTML/DocBook Lite)
Nachteile: englische Version besser formatiert als die Deutsche
- PHP Design Patterns - 2.Auflage
Um auch ein Buch zu nennen, das nicht von Galileo Computing ist: wer mit den Grundlagen von PHP vertraut ist, der wird sicherlich schnell zu Themen wie Objektorientierung und Software-Design gelangen. Hier bietet dieses Buch Hilfestellung, indem es zunächst einen Einblick in die objektorientierte Programmierung mit PHP 5 bietet und dann dem Leser Schritt für Schritt anhand eines Beispielprojektes die allermeisten Design Patterns näher bringt und dabei auch auf die Grundregeln eines sauberen Codes eingeht.
Vorteile: Meisterhaft geschrieben, leicht verständlich, gut strukturiert
Nachteile: Wie leider viele O'Reilly-Bücher enthält auch dieses relativ viele Rechtschreibfehler
- dpunkt.verlag | Bücher
Wer sich mit dem Thema Sicherheit intensiv beschäftigen will, dem sei dieses Buch dringend empfohlen, es bietet ein umfassendes Wissen über mögliche Sicherheitslücken in PHP-Anwendungen. Ein nicht zu kleiner Teil des Buches ist auch Serveradministratoren gewidmet, die ihren Apache-Server sowie ihre PHP-Installation sicherer und resistenter gegen Angriffe machen wollen. Sehr zu empfehlen. Auch nach der Lektüre von http://www.cms-sicherheit.de/ stellt dieses Buch eine lohnende Investition dar.
Vorteile: Gut ausgeführt, sehr umfangreich, es wird ein gutes Verständnis von möglichen Sicherheitsrisiken vermittelt
- Galileo Computing : Buch : Reguläre Ausdrücke
PHP bietet noch weitaus mehr als nur simple print- und echo-Anweisungen. Ein großes Thema sind beispielsweise reguläre Ausdrücke. Ein weites Themengebiet, das auch nicht immer ganz leicht zu verstehen ist. Dieses Buch bringt anhand der Sprachen PHP und Perl Licht in das Dunkel der regulären Ausdrücke. Auch reguläre Ausdrücke in JavaScript und Apache-Konfigurationsdateien (z.B. ModRewrite) kommen zum Zuge.
Vorteile: Sehr erschöpfend behandelt, es bleiben wenige Fragen offen
Nachteile: Die Erklärungen sind nicht immer ganz leicht zu verstehen und erfordern manchmal einiges an Konzentration
- Galileo Computing : Buch : PHP PEAR
Eine Einführung in die Arbeit mit dem PHP-Repository PEAR. Dabei werden sowohl die Installation wie auch ausgewählte PEAR-Pakete erklärt.
Es ist auch als kostenloses Openbook verfügbar.
Vorteile: Das Buch eignet sich gut als Nachschlagewerk für bestimmte PEAR-Klassen, auch wenn es natürlich keinen Wert auf Vollständigkeit legen kann
- Produktion von Open-Source-Software
Kostenloses Ebook über die Produktion von Open-Source-Software. Das Buch deckt dabei die Themen von der Planung über die Kommunikation, der Technischen Infrastruktur bis hin zum Marketing und der Verwaltung ab.
Vorteile: kostenlos, interessante Themen die jeder der Open-Source-Software entwickelt beachten sollte
- Franzis: JavaScript - Objektorientierung und Entwurfsmuster
Sehr gut Beschreibung von Objektorientierung und Design patterns im Bereich Javascript. Die eigenwilligen Prinzipien von Javascript im Bereich Vererbung und die Auswirkungen auf die Pattern im Vergleich zur Umsetzung in anderen Sprachen werden sehr gut dargelegt.
Vorteile: Sehr gut geschriebenes Angebot an fortgeschrittene Nutzer. Schneller Einstieg in den Themenbereich, die Ausführung von Javascript-Basics beschränkt sich auf wenige Seiten. Nötige Grundlagen wie Prototypenvererbung u.ä. werden aber beleuchtet. Didaktisch gut aufgebaut stützen sich die Kapitel auf im Buch früher erarbeitete Konzepte.
Nachteile: Sicher nichts für blutige Javascript-Newbies. Das Buch beschreibt bspw. keine Javascript-Basis-Syntax o.ä. Auch von OOP und Entwurfsmustern sollte man (bspw. in anderen Sprachen) schon mal gehört haben.
- Diverse
Sicherheit
Lesenswerte Artikel zum Thema Sicherheit bei Webapplikationen:
weitere Links
Weitere Links zu verschiedenen Themen gibt es unter:
Vielen Dank cycap für die Bereitstellung dieses Beitrags!
[22.03.2015] Angepasst von Arne Drews.
|
|
|
Bitte aussagekräfige Threadtitel verwenden |
Geschrieben von: tkausl - 20.03.2015, 10:09 - Forum: PHP Basics
- Keine Antworten
|
 |
Bitte den gesamten Thread lesen!
Zur Zeit sind viele Threadtitel wie "PHP Problem", "Session Problem", "XY Problem", "Problem Problem" im Umlauf. Dass man ein irgendwie geartetes Problem hat liegt im Wesen dieses Forums. Das Wort "Problem" gehört nicht in den Threadtitel, sondern eine kurze Beschreibung des Threadinhalts.
Die Moderatoren behalten sich vor, nichtssagende Threadtitel ohne Ankündigung zu ändern oder entsprechende Threads zu löschen. Das gilt vor allem für "Wer kann mir helfen?" und "Biiiiiiiitte SOS!!!!!11" Threads.
Wo liegt das Problem?
Ein wichtiger Wesenszug des Forums ist die Wiederverwendbarkeit. 90% aller Probleme tauchen immer wieder auf und sind damit eigentlich schon beantwortet. Durch die Menge an Postings verschwinden sie jedoch im Nirvana der Threadsuppe. Unser Ziel ist aber, nicht immer wieder die gleichen Fragen mit den immer gleichen Informationen zu beantworten. Denn eine gute Antwort ist auch in 5 Jahren noch eine gute!
Durch die Forensuche oder Google ("Deine konkreten Suchbegriffe" site:php-rocks.de) kann man alte Threads leicht finden. Die Suche stellt im Ergebnis aber den Threadtitel dar. Wenn dort jetzt "Habe ein Problem" statt einer Problembeschreibung steht, sucht der User nach Euch bis zum Sankt Nimmerleinstag.
Bitte helft denjenigen, die nach Euch scheitern, durch einen sinnvollen Threadtitel!
Wo ändere ich den Titel?
Klicke in Deinem ersten Posting auf den "Bearbeiten"-Button und dann auf "zum Editor". Dort kannst Du neben dem Text auch den Titel ändern.
Dinge die definitiv nicht in den Titel gehören
- Wichtig!!! und Konsorten
- Dringend oder Eilt
- Hilfe!!, Brauche Hilfe - natürlich, wie jeder hier
- Bin verzweifelt und andere Gemütslagen (bin euphorisch, bin müde, bin doof)
- Ascii-Art - Pfeile, Smileys...
- funktioniert nicht oder (wie oben) Problem
- wirft/macht Fehler - egal ob PHP, MySQL oder sonstiges
- Fragen wie Was soll ich tun? oder Wer kann mir helfen?
- Auch PHP-Funktionsbezeichner sind alleinstehend kein sinnvoller Threadtitel.
- Für gewöhnlich sind Threadtitel, die nur aus ein, zwei Wörtern bestehen nichtssagend und zu vermeiden.
Vielen Dank nikosch für die Bereitstellung dieses Beitrags!
[21.03.2015 09:44] Angepasst, Arne Drews
|
|
|
Inserate, Konzepte und Meinungsumfragen |
Geschrieben von: tkausl - 20.03.2015, 09:50 - Forum: PHP Basics
- Keine Antworten
|
 |
Wir sind ein Programmier-Forum und bieten Hilfe zur Selbsthilfe.
Jeder, der auf Basis der folgenden Ausführungen hier fragt, bekommt auch eine Antwort.
Inserate und fadenscheinige Hinweis- sowie „Wer-macht-mir“-Fragen wie bspw.
- „Ich suche eine Software wie diese…“
- „Wie setzt man am besten XY um…“
- „Suche Tipps, Hilfe oder am besten Codebeispiele zu XY…“
- „Hat jemand eine Idee, wie ich…“
- „Wer kann mir erklären…“
- „Ich verstehe das Tutorial nicht. Kann mir mal jemand vormachen… ich lerne so am besten…“
…gehören nicht in die Programmiererforen!
Wir sind kein Googleservice, keine Kaufberatung, nicht der Erklärbär! Wir sind auch kein Bestellservice für individuelle Tutorials. Wenn Du nicht weißt, wo anzufangen, dann befasse Dich bitte zunächst mit Tutorials zu dem Thema und den Grundlagen, um mit uns diskutieren zu können. Eine Hilfe ist dabei immer die offizielle Dokumentation unter http://www.php.net/docs.php. Wenn Du nur unsere Meinung haben willst, welche Software besser ist, dann poste bitte unter Off Topic oder (besser!) lies gängige Meinungen zu den jeweiligen Produkten im www. Wenn Du gar nicht programmieren lernen willst, dann poste Deine Frage bitte in die Jobangebote.
Wir liefern hier auch keine Konzepte, wie Du Sachen umsetzen kannst. Du willst programmieren? Dann fang an, Sachen logisch zu durchdenken und zu analysieren. Lösungsstrategien sind die Hauptaufgabe eines Programmierers. Ein Problem ins Forum zu werfen, zeugt nicht von Entwicklerkompetenz.
„Zuwiderhandlungen“ landen vornehmlich im Mülleimer, bzw. werden unangekündigt geschlossen.
Im Detail:
Folgende Themen sind hier unerwünscht und landen vornehmlich im Mülleimer oder werden unangekündigt geschlossen:
Zitat:Ich habe hier XY und komme nicht weiter. Kann mir wer helfen?
- XY ist vermutlich ein fertiges Codeteil und fällt damit unter die Devise „Keine Supportanfragen“: Bitte wende Dich an den Autor!
- „Kann mir wer helfen“ - „Ja, wo liegt denn das Problem“ - „Also …“
Wir sind hier nicht im Forum, weil wir gesteigertes Schreibbedürfnis haben. Ein Thread startet mit einer konkreten Frage oder gar nicht. Ewig lange Threads, die erstmal auf den Punkt kommen müssen braucht hier niemand. Zumindest das Problem herauszuarbeiten und darzustellen ist die Aufgabe des Threadstarters.
Zitat:Das hier ist mein Code. Ich habe schon gegooglet, aber XY funktioniert nicht.
- Wenn du gegooglet hast, sag uns wonach und was Du vieleicht zum Thema gefunden hast (und evtl. nicht verstehst). Ansonsten kann man davon ausgehen, dass Du nicht wirklich eine Websuche gestartet hast.
- „Funktioniert nicht“ ist keine sinnvolle Fehlermeldung (siehe auch oben, unnötiger Threadverlauf). Was für ein Verhalten des Scriptverlaufs hast du erwartet und was passiert? Hast Du schin im Browser-Quelltext nachgesehen?
Zitat:Ich will XY erreichen, komme aber nicht weiter.
Wir bauen Dir hier nicht Dein Script. Es steht Dir frei, die Scriptbörse oder bei komplexeren Themen das Jobangebot-Forum zu benutzen. Oder nenne uns das Problem (Du merkst schon, immer das selbe), wo Du gedanklich oder praktisch hängst. Teile uns Deine Überlegungen mit. Inserate, Konzepte und Meinungsumfragen
Zitat:Ich verstehe die Funktion XY nicht.
Was bedeutet dieses foreach?
Geht gar nicht. Sorry, aber das Handbuch liest Dir hier niemand vor. Starte notfalls noch mal im Einsteigerkapitel des Manuals. Dort ist auch ausgeführt, wie das Handbuch zu lesen ist. Zum Programmieren gehört eigenständige Beschäftigung mit dem Thema.
Weitere Anmerkungen
Zitat:Ich dachte dafür ist ein Forum da
Fällt Deine Frage unter einen der Punkte oben? Dann hast Du zumindest im Hinblick auf unser Forum falsch gedacht.
Zitat:Ich bin noch Einsteiger.
Jeder, auch Du, hat doch mal angefangen.
Einsteigerboni gibts hier nicht. Jeder, der eine ordentliche Frage stellt, bekommt auch eine Antwort. Und mit Verlaub, Du kennst unsere Historie nicht. Jeder hat anders gelernt und einige von uns hatten in ihrer Anfangszeit noch nicht mal ein Internet.
Zusammenfassung
- Keinen Support für Fremdprodukte
- Keine allgemeinen und unspezifischen Fragen, kein Hellseherforum
- "Geht nicht" und "Schon gegooglet aber" wandern in die Rundablage
- Keine implizierten Jobangebote in den Fachforen
- Kein Handbuchvorleseservice zum Einschlafen
- Keine Crosspostings
Ausnahmen bestätigen die Regel.
Vielen Dank nikosch für die Bereitstellung dieses Beitrags!
Angepasst durch Arne Drews
|
|
|
optisch ähnliche Zeichen bei der mysqli-Abfrage berücksichtigen |
Geschrieben von: kremser - 19.03.2015, 13:25 - Forum: Code Goodies
- Antworten (1)
|
 |
Diese Funktion hab ich vor einiger Zeit geschrieben, als ich nach einer Möglichkeit suchte, optisch ähnliche Zeichen bei der Datenbankabfrage zu berücksichtigen. Sie ist insbesondere bei der Abfrage von händisch erfassten Seriennummern von Geräten oÄ hilfreich. Die Funktion generiert einen Regex der mittels RLIKE bei der mysqli-Abfrage eingebaut wird. Sie kann auch leicht ausgebaut werden durch Änderung des Arrays in conf_chars().
PHP-Code:
<?php
function mkreg_confusing_chars($search){ if(!function_exists('conf_chars')){ function conf_chars(){ // similar-looking characters return array('0QOo', '1Il', '2Z', '5S', '6G'); } } if(preg_match('/['.implode(conf_chars()).']/', $search)){ if(!function_exists('replace_conf_chars')){ function replace_conf_chars($matches){ return '['.implode(preg_grep('/'.$matches[0].'/', conf_chars())).']'; } } return preg_replace_callback('/['.implode(conf_chars()).']/', 'replace_conf_chars', $search); }else{ return $search; } }
// vvv only for testing purposes vvv
echo '$search<br>'; echo '<b>'.$search.'</b><br>'; echo 'mkreg_confusing_chars($search)<br>'; echo '<b>'.mkreg_confusing_chars($search).'</b>';
?>
|
|
|
|