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: 80
» Neuestes Mitglied: anuragmishra
» Foren-Themen: 155
» Foren-Beiträge: 830

Komplettstatistiken

Aktive Themen
Fußball-Tippspiel
Forum: Off Topic
Letzter Beitrag: Arne Drews
13.06.2018, 09:09
» Antworten: 10
» Ansichten: 5.164
Container & DPI
Forum: PHP Frameworks
Letzter Beitrag: Till
04.06.2018, 09:46
» Antworten: 0
» Ansichten: 54
HTML Mail versenden mit P...
Forum: Webserver
Letzter Beitrag: Arne Drews
27.04.2018, 16:49
» Antworten: 8
» Ansichten: 325
create_function ersetzen
Forum: PHP Basics
Letzter Beitrag: Arne Drews
16.04.2018, 11:49
» Antworten: 4
» Ansichten: 478
Hilfe, mein JavaScript fr...
Forum: JavaScript / JavaScript Frameworks / Ajax
Letzter Beitrag: Arne Drews
26.03.2018, 10:42
» Antworten: 4
» Ansichten: 409
PHPMailer Version 6 erfol...
Forum: Tutorials
Letzter Beitrag: Arne Drews
31.01.2018, 01:38
» Antworten: 0
» Ansichten: 1.635
Tinymce Editor wird nur e...
Forum: JavaScript / JavaScript Frameworks / Ajax
Letzter Beitrag: Till
24.01.2018, 05:17
» Antworten: 7
» Ansichten: 850
autocomplete attribute ex...
Forum: HTML & CSS
Letzter Beitrag: Arne Drews
20.01.2018, 19:45
» Antworten: 7
» Ansichten: 958
session_write_close(), ca...
Forum: Off Topic
Letzter Beitrag: Till
24.11.2017, 22:22
» Antworten: 0
» Ansichten: 513
neu anmelden
Forum: Off Topic
Letzter Beitrag: Arne Drews
12.11.2017, 21:05
» Antworten: 3
» Ansichten: 1.155

 
  Container & DPI
Geschrieben von: Till - 04.06.2018, 09:46 - Forum: PHP Frameworks - Keine Antworten

Hallo,
seit kurzem habe ich mich etwas mit Container und Dependency Injection beschäftigt bzw. versucht es in mein System zu integrieren.
Hier ist nur Symfony2 auswählbar, ich beziehe mich auf symfony 3.4.x bzw. http://container.thephpleague.com

Konkret möchte ich das jeder Homepage Admin seinen Container erstellt bzw. deployed.
Ich weiß nicht wie ich das erklären soll, ich kann Services definieren und den Container compilen.
Soweit so gut, irgendwie habe ich das Gefühl, daß ich, nun nach einigen Tagen, jede Menge Zeit gesparrt hätte, hätte ich einiges statdessen einfach
hargecoded ohne diesen Umweg.
Daraus folgt, irgendwas habe ich hier nicht hundertprozentig verstanden.

Ich habe das Gefühl, als wenn meinem Script irgendwie nicht klar ist, wann die Instanz aus dem Container benutzt, oder ob die "originale Klassendefintion" initiiert wird.
Ich weiß nicht mehr, welchen Vorteil mir diese DPI over Container Sache bringt, gegenüber sagen wir normalem z.b. psr_-autoloading.
Den einzigen benefit sehe ich bisher in der Compilation über Configuration-Files, aber auch das ist irgendwie für meine Bedürfnisse overhead so eine Konfiguration/System bastel ich mir dann lieber selber wenns drauf ankommt?

Kurz gesagt, kann mir einer kurz erklären, welche Vorteile mich erwarten wenn ich die Container/DPI Systeme der oben genannten Frameworks nutze?

Viele Grüße
Till

Drucke diesen Beitrag

  HTML Mail versenden mit PHPMailer
Geschrieben von: Werner Z. - 23.04.2018, 12:01 - Forum: Webserver - Antworten (8)

Hallo,
anhand des o.g. Tutorials in php-rocks habe ich versucht, ein mail zu versenden.
Ich verwende den Apache auf meinem lokalen Rechner (Windows 10), ohne Verbindung zum Internet.
Es kommt leider die Fehlermeldung:
Connection: opening to http://www.test-lokal.de:587, timeout=300, options=array()
Connection failed. Error #2: stream_socket_client(): unable to connect to http://www.test-lokal.de:587 (Es konnte keine Verbindung hergestellt werden, da der Zielcomputer die Verbindung verweigerte.) [D:\Myinternet\homepages-test\test-lokal\PHPMailer\src\SMTP.php line 325]

Daraufhin habe ich den Windows Defender deaktiviert, ohne Erfolg.
Dann habe ich den Port 587 freigegeben, nach wie vor die selbe Meldung.

Was kann ich noch versuchen?

Drucke diesen Beitrag

  create_function ersetzen
Geschrieben von: zrx1100 - 07.04.2018, 04:04 - Forum: PHP Basics - Antworten (4)

Hallo zusammen,

Ich habe hier ein Script das

Code:
create_function
nutzt,diese wird als deprecated angezeigt.

Da ich nicht so viel Ahnung von PHP habe, wollte ich hier im Forum nachfragen, ob mir jemand einen Lösungsweg aufzeigen kann, habe zwar schon Stunden mit Google und Lösungsvorschlägen verbracht, aber leider führt keiner zum Erfolg, das liegt wohl auch daran, dass ich nicht alle Zusammenhänge verstehe.


PHP-Code:
function make_array_from_list($theList){
 if (
$theList != '') {
 
$aList explode(','$theList);
 if (
count($aList) > 0) {
 
array_walk($aListcreate_function('&$v,$k','$v = (trim( $v ) != "") ? strtolower( trim( $v ) ) : false;')); // Leerzeichen im auszuschließende-Ordner-Array entfernen
 
$aList array_unique$aList ); // doppelte Einträge entfernen
 
return array_filter($aList);
 }
 }
 return array();


Vielen Dank schon mal im voraus
zrx1100

Drucke diesen Beitrag

  Hilfe, mein JavaScript frißt CPU!
Geschrieben von: Till - 14.03.2018, 19:58 - Forum: JavaScript / JavaScript Frameworks / Ajax - Antworten (4)

Hallo @all,
wie soll ich sagen, eigentlich funktioniert alles und es gibt keine Fehlermeldungen, aber:
- Wenn ich die Seite längere Zeit geöffnet habe fängt mein Kühler an zu arbeiten
- Wenn ich die Seite wieder neu lade beruhigt sich der Kühler wieder

Wie kann ich der Sache auf den Grund gehen?

Viele Grüße
Till

Drucke diesen Beitrag

  PHPMailer Version 6 erfolgreich einbinden
Geschrieben von: Arne Drews - 31.01.2018, 01:38 - Forum: Tutorials - Keine Antworten

Wie binde ich den PHPMailer Version 6 in mein Projekt ein?
Ok, bevor ich euch zeige, wie der PHPMailer Version 6 auf einfache Weise eingebunden werden kann, lasst mich ein paar Worte zu einem Thema verlieren, das mir in vielen Foren ziemlich gegen den Strich geht: composer.

Nicht, dass ihr mich falsch versteht, composer ist ein klasse Tool... Da wo man es benötigt, allerdings nur.
Über Tutorials, wie dieses werden sicher keine Fortgeschrittenen versuchen eine Klasse, wie den PHPMailer in ihre Projekte einzubinden. Zumindest war meine gedachte Zielgruppe der Einsteiger/Anfänger mit wenig Erfahrungen. Und warum soll der bitte schön immer gleich composer als Allheilmittel verwenden? Ich behaupte nicht, dass ich ein besonders herausragender PHP-Entwickler bin, denn grundsätzlich ist das auch nur ein Hobby von mir. Aber ich kann dennoch behaupten, auch schon Projekte mittlerer Größe umgesetzt zu haben, ohne dass ich diese Tools vermisst hätte.

Da es aber scheinbar zeitgemäß ist, neue Versionen von PHP-Klassen mit composer zu installieren, wird dem Einsteiger/Anfänger damit wieder alles schwerer gemacht, denn sind wir mal ehrlich: Wer schon Probleme hat, Klassen wie den PHPMailer einzubinden, wird sicherlich weitaus mehr Probleme haben, composer erstmal an den Start zu bringen! Und das ist nicht abwertend gemeint, sondern einfach nur ehrlich...

Aber genug davon, lasst uns loslegen!


Was mach ich ohne composer?
In der Version 5 des PHPMailer war das Einbinden ein klein wenig einfacher, da es dort einen eigenen Autoloader gibt. In Version 6 verlässt man sich auf den Autoloader von... na wer weiß es... na klar: composer! Ok, war das letzte Mal, dass ich den hier erwähnt habe, versprochen!

Also grundsätzlich sagt die Doku aus, dass ein manuelles Einbinden auch auf folgende Weise geschehen kann:

Doku-Zitat: https://github.com/PHPMailer/PHPMailer

PHP-Code:
use PHPMailer\PHPMailer\PHPMailer;
use 
PHPMailer\PHPMailer\Exception;

require 
'path/to/PHPMailer/src/Exception.php';
require 
'path/to/PHPMailer/src/PHPMailer.php';
require 
'path/to/PHPMailer/src/SMTP.php'
Das setzt allerdings lt. Doku voraus, dass wir die Klasse in unseren include_path schieben. Den meisten Anfänger dürften hier bereits die ersten Fragezeichen erscheinen.

Also vergessen wir das und erklären das mal auf ähnliche Weise. Ich gehe davon aus, dass ihr einen Webspace habt, auf den ihr das heruntergeladene PHPMailer-Verzeichnis laden könnt.
Das Resultat sollte dann diesem Schema entsprechen:
Code:
Webroot
   + PHPMailer
       + src
       + language
Vom Webroot ausgehend, wäre eine einfache Möglichkeit, die Zeilen aus der Doku entsprechend anzupassen:
PHP-Code:
use PHPMailer\PHPMailer\PHPMailer;
use 
PHPMailer\PHPMailer\Exception;

require 
__DIR__ '/PHPMailer/src/Exception.php';
require 
__DIR__ '/PHPMailer/src/PHPMailer.php';
require 
__DIR__ '/PHPMailer/src/SMTP.php'
Grundsätzlich sollte das nach der Methode bereits funktionieren und ihr könnt beim eigentlichen Tutorial beim Abschnitt Wie verwende ich das jetzt weitermachen.


Alternative: Ein eigener Autoloader
Zugegeben, die Variante bringt jetzt keinen grundsätzlich entscheidenden Vorteil, aber ich finde die persönlich charmant genug, um sie trotzdem zu erwähnen.  Wink
Ich mag das Autoloading-Prinzip und habe für meine Projekte die eigenen Autoloader entsprechend für die Verwendung des PHPMailer angepasst. Da dies Tutorial natürlich nichts mit meinen Projekten zu tun hat, habe ich das Ganze mal entkoppelt und stelle eine mögliche Version für Interessierte gerne hier zur Verfügung:
Hinweis
Bitte bedenkt, dass für die Verwendung des folgenden Code eine PHP Version ab 7.0 notwendig ist!
PHP-Code:
class PHProcksAutoloader {


    private 
$PathTemplate __DIR__ '/src/{{CLASS_NAME}}.php';



    public function 
__construct() {

        
spl_autoload_register( [$this'Prepare'] );

    }


    private function 
Prepare$class_name ) : bool {

        
$this->NamespaceRoute explode'\\'$class_name );
        
$this->ClassName end$this->NamespaceRoute );

        return 
$this->Load();

    }


    private function 
Load() : bool {

        if ( !
$this->ClassExists() )
            return 
false;


        return include_once 
$this->GetClassPath();

    }


    private function 
GetClassPath() : string {

        return 
str_replace'{{CLASS_NAME}}'$this->ClassName$this->PathTemplate );

    }


    private function 
ClassExists() : bool {

        return 
file_exists$this->GetClassPath() );

    }


}


$oLoader = new PHProcksAutoloader
Diesen Autoloader legt ihr nun im Verzeichnis PHPMailer ab, bspw. als PHProcksAutoloader.php.
Dann sieht unsere Implementierung des PHPMailer nur noch wie folgt aus:
PHP-Code:
use PHPMailer\PHPMailer\PHPMailer;
use 
PHPMailer\PHPMailer\Exception;

include_once 
__DIR__ '/PHPMailer/PHProcksAutoloader.php'
Alles weitere ist dann wieder nahezu identisch mit dem Original-Tutorial, ab Abschnitt Wie verwende ich das jetzt?".

Ich hoffe, ich konnte dem Einen oder Anderen ein wenig Hilfe bieten, beim Einbinden des PHPMailer.
Feedback oder Fragen gerne hier im Forum.

Drucke diesen Beitrag

  Tinymce Editor wird nur einmal angezeigt
Geschrieben von: Till - 23.01.2018, 10:56 - Forum: JavaScript / JavaScript Frameworks / Ajax - Antworten (7)

Hallo,
ich verwende eine Tinymce-Implementation für AngularJS 1.4.
Das Problem ist das der Editor nur einmal angezeigt wird, wenn ich die Seite neu lade wird der Editor nicht mehr angezeigt, bzw. die textareas "verschwinden" einfach ohne das der Tinymce geladen wird.

Ich bin mir nicht ganz sicher ob ich das Problem beim Tinymce, dem Angular-Plugin, oder meinem eigenen Frameworrk suchen soll.
Hat vielleicht jemand eine Idee?
Hier gibt es einen Test-Case des Problems: http://test.webfan.de/?op=test-editor

mfg
Till

Drucke diesen Beitrag

  autocomplete attribute exploit?
Geschrieben von: Till - 13.01.2018, 23:41 - Forum: HTML & CSS - Antworten (7)

Hallo allerseits,
nicht grad viel los hier?

Irgendsoein Browser (Opera) "meckert", bzw. "empfiehlt" für input Felder das "autocomplete-Attribute" zu verwenden.
https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#autofilling-form-controls:-the-autocomplete-attribute

Soweit so gut, aber:
- (Zum einen habe ich evtl. eine "custom" autocomplete Funktion)
- Diese Empfehlung wird bei mir auch für passwort-Felder angezeigt.

Letzteres fände ich als Benutzer nicht so prickelnd, wenn die VERSCHIEDENEN Seiten mir ein autofill mit vorherigen Passwörtern anzeigen würde (diese könnten wahrscheinlich mit Javascript ausgelesen werden?), ich habe den Link kurz überflogen auf schnell aber nichts dazu gefunden ob passwort-autofills (wtf) irgendwie Origin-gekapselt gespeichert werden!?

Hat jemand dazu Infos/Meinungen?

Viele Grüße
Till

Drucke diesen Beitrag

  session_write_close(), cache-headers , php7, alles weitere und die miese Laune
Geschrieben von: Till - 24.11.2017, 22:22 - Forum: Off Topic - Keine Antworten

session_write_close(), cache-headers , php7, alles weitere und die miese Laune

Mein Login, alles klappt nun,...
aber über eine API mit SSO-Login loggt er sich zwar ein, aber beim nächsten Seiten laden ist die Session wieder weg.
Wäre ich nicht so ein lieber Typ hätte ich heut schlechte Laune!

Zitat:Oh... da ist jemand etwas misslich gestimmt?!

Wollte Dir eigentlich nur helfen, aber in dem Ton... öhm nö...
http://www.php-rocks.de/thema/149-re-neu-anmelden.html

Ich kann Eumel nicht antworten da der Thread geschlossen ist:
Zitat:In anderen Foren muss ich mich nicht immer wieder neu anmelden.
Doch, manchmal schon, oder Du gehen Facebook oder Deutche Post.

Ruhe bewahren, habt Euch lieb Smile

Drucke diesen Beitrag

  neu anmelden
Geschrieben von: Eumel - 09.11.2017, 01:04 - Forum: Off Topic - Antworten (3)

Keine Ahnung was das soll, aber ich musste mich eben neu anmelden -> Name und Passwort.
Angry

Drucke diesen Beitrag

  Prozedur ignoriert scheinbar Parameter?
Geschrieben von: Arne Drews - 19.10.2017, 15:05 - Forum: MySQL - Antworten (1)

Hallo,

Ich habe eine Prozedur, die ganz einfach nur Werte aus mehreren Tabellen entfernen soll:

Code:
CREATE PROCEDURE deleteBatch ( id INT )
BEGIN
   DELETE FROM `table1` where `id` = id;
   DELETE FROM `table2` where `id` = id;
   DELETE FROM `table3` where `id` = id;
   DELETE FROM `table4` where `id` = id;
END
Aufruf der Prozedur für id=5:
Code:
CALL deleteBatch( 5 )
Als Resultat dessen entfernt er mir aber grundsätzlich alle Datensätze in den Tabellen, ungeachtet der id, die ich explizit mitgebe.

Habe ich einen Denkfehler?
Danke

Drucke diesen Beitrag