PHP rocks! wünscht allen Mitgliedern einen guten Rutsch ins neue Jahr 2017 !!!
Hinweis: Das Forum zieht um! Um keine Datenverluste zu haben, schalten wir zwecks Übernahme der Daten das Forum am Sonntag, den 24.04.2016 um ca. 21:00 Uhr offline und passen anschliessend die DNS-Einträge an.
www.php-rocks.de wird euch dann nach den Aktualisierungen der DNS-Server wieder wie gewohnt uneingeschränkt zur Verfügung stehen.
Danke für euer Verständnis!

Hallo, Gast
Du musst dich registrieren bevor du auf unserer Seite Beiträge schreiben kannst.

Benutzername/E-Mail:
  

Passwort
  





Durchsuche Foren

(Erweiterte Suche)

Foren-Statistiken
» Mitglieder: 291
» Neuestes Mitglied: awajonn11
» Foren-Themen: 171
» Foren-Beiträge: 901

Komplettstatistiken

Aktive Themen
Kaufen Sie ein TELC-GOETH...
Forum: Off Topic
Letzter Beitrag: awajonn11
12.04.2024, 13:37
» Antworten: 0
» Ansichten: 191
Kaufen Sie ein TELC-GOETH...
Forum: PHP Basics
Letzter Beitrag: awajonn11
12.04.2024, 13:35
» Antworten: 0
» Ansichten: 100
PHPMailer Pfad wird nicht...
Forum: PHP Basics
Letzter Beitrag: Arne Drews
23.08.2022, 21:07
» Antworten: 5
» Ansichten: 2.879
PHP 8.1: Endlich Enums in...
Forum: PHP Basics
Letzter Beitrag: Arne Drews
22.04.2021, 16:55
» Antworten: 1
» Ansichten: 2.699
Einfache Template Engine
Forum: PHP Template Engines
Letzter Beitrag: Arne Drews
22.04.2021, 16:49
» Antworten: 4
» Ansichten: 11.090
OAuth - Should I "scrambl...
Forum: Off Topic
Letzter Beitrag: Till
05.01.2020, 04:55
» Antworten: 0
» Ansichten: 7.884
"Invisible" Captcha
Forum: PHP Basics
Letzter Beitrag: Arne Drews
11.12.2019, 15:00
» Antworten: 5
» Ansichten: 10.417
Projektvorstellung - Test...
Forum: Off Topic
Letzter Beitrag: Till
22.11.2019, 20:03
» Antworten: 3
» Ansichten: 5.669
POST/GET routes deklarier...
Forum: PHP Basics
Letzter Beitrag: Till
14.11.2019, 19:44
» Antworten: 2
» Ansichten: 4.704
PHPMailer
Forum: PreComposed
Letzter Beitrag: Arne Drews
20.10.2019, 12:44
» Antworten: 6
» Ansichten: 8.678

 
  Beitrags-Editor: Quellcode- / WYSIWYG-Ansicht deutlicher hervorheben
Geschrieben von: Arne Drews - 26.03.2015, 20:57 - Forum: Off Topic - Antworten (7)

Hallo,

Als Anreiz aus diesem Post, möchte ich mal gerne eure Meinung zu dem Thema der Ansicht des Beitrag-Editors erfahren.

Meine Idee geht dahin, daß ich den Button für die WYSIWYG-Ansicht farblich hervorhebe, als bspw. die angedeuteten Textzeilen farblich, damit erkennbar ist, in welchem Modus man sich befindet.

Eine weitere Möglichkeit wäre, das über einen Border oder eine Background-Color zu unterscheiden.

Die Umfrage wird drei Tage laufen.
Bin gespannt, wie sich die Meinungen verteilen.

Danke und Gruß
Arne

Drucke diesen Beitrag

  PDOStatement::execute() mit Array-Übergabe
Geschrieben von: Arne Drews - 26.03.2015, 13:01 - Forum: PHP Basics - Antworten (4)

So, nun würde mich mal was interessieren.

Ich nutze das Parameter-Binding für Prepared Statements i.d.R. immer mit bindParam():

PHP-Code:
$pdoStatement $pdoInstance->prepare"SELECT `column` FROM `table` WHERE `sometext`=? and `id`=?" );
$pdoStatement->bindParam1$sometextPDO::PARAM_STR );
$dpoStatement->bindParam2$myIdPDO::PARAM_INT );

$pdoStatement->execute();
// usw... 

Für mein Verständnis reagiert PDOStatement jetzt auf die übergebenen Datentypen, denn würde er bspw. auch $myId als String übergeben bekommen, müsste er den gefilterten Wert ja z.B. noch in Quotes setzen, was aber für MySQL nicht korrekt wäre. Abgesehen davon, daß die Filterung ja auch Datentyp bedingt sein sollte.

Nun gibt es die execute()-Methode, mit der man die Values auch per Array übergeben kann. Die aber übergibt ja erstmal alle Values zunächst als PARAM_STR, also auch die ID als String.
Jetzt frage ich mich, wie zuverlässig das dann ist? Erkennt er trotzdem, daß es sich bei $myId um einen Ganzzahlenwert handelt und behandelt den dann intern doch wieder als Integer?
Wenn ja, woher will er wissen, daß nicht auch ein Integer-Wert in eine VARCHAR-Spalte geschriebenen werden könnte/sollte?!

Vielleicht kann mir dazu jemand mal den Horizont erweitern?
Danke!

Drucke diesen Beitrag

  php.de wird jetzt aktualisiert
Geschrieben von: hausl - 23.03.2015, 11:52 - Forum: Off Topic - Antworten (48)

php.de wird nun aktualisiert:

http://www.php.de/php-einsteiger/announcements.html

LG

Drucke diesen Beitrag

  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

Drucke diesen Beitrag

Information 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

Drucke diesen Beitrag

  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:
        • 960 Grid System
          960 Grid System ist ein weiteres beliebtes CSS Framework.
  • javascript:
  • 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:
  • 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 &amp;ndash; Kochbuch &amp;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.

Drucke diesen Beitrag

  Softwarefehler melden
Geschrieben von: DasEm - 20.03.2015, 15:19 - Forum: Tutorials - Keine Antworten

http://www.chiark.greenend.org.uk/~sgtatham/bugs-de.html

Find ich gut Big Grin

Drucke diesen Beitrag

  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

Drucke diesen Beitrag

  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?
  1. XY ist vermutlich ein fertiges Codeteil und fällt damit unter die Devise „Keine Supportanfragen“: Bitte wende Dich an den Autor!
  2. „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.
  1. 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.
  2. 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

Drucke diesen Beitrag

  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>';

?>

Drucke diesen Beitrag