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: 290
» Neuestes Mitglied: zacharymurphy
» 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.674
PHP 8.1: Endlich Enums in...
Forum: PHP Basics
Letzter Beitrag: Arne Drews
22.04.2021, 16:55
» Antworten: 1
» Ansichten: 2.601
Einfache Template Engine
Forum: PHP Template Engines
Letzter Beitrag: Arne Drews
22.04.2021, 16:49
» Antworten: 4
» Ansichten: 10.871
OAuth - Should I "scrambl...
Forum: Off Topic
Letzter Beitrag: Till
05.01.2020, 04:55
» Antworten: 0
» Ansichten: 7.679
"Invisible" Captcha
Forum: PHP Basics
Letzter Beitrag: Arne Drews
11.12.2019, 15:00
» Antworten: 5
» Ansichten: 10.257
Projektvorstellung - Test...
Forum: Off Topic
Letzter Beitrag: Till
22.11.2019, 20:03
» Antworten: 3
» Ansichten: 5.538
POST/GET routes deklarier...
Forum: PHP Basics
Letzter Beitrag: Till
14.11.2019, 19:44
» Antworten: 2
» Ansichten: 4.578
PHPMailer
Forum: PreComposed
Letzter Beitrag: Arne Drews
20.10.2019, 12:44
» Antworten: 6
» Ansichten: 8.405
Twig TemplateEngine
Forum: PreComposed
Letzter Beitrag: Arne Drews
29.08.2019, 14:21
» Antworten: 0
» Ansichten: 3.261
SwiftMailer
Forum: PreComposed
Letzter Beitrag: Arne Drews
28.08.2019, 10:19
» Antworten: 0
» Ansichten: 3.440

 
  PHPMailer Pfad wird nicht gefunden
Geschrieben von: Gebby - 08.08.2022, 22:15 - Forum: PHP Basics - Antworten (5)

Hallo,
ich habe bisher eine alte Version vom PHPMailer zu laufen gehabt. Diese und ein Script damit läuft aber unter PHP8.1 nicht mehr.
Nun habe ich mir die Erläuterung hier angesehen und den Autoloader versucht. Ich bekomme es nicht hin.

Die Initialisierung lautet:

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

include_once 
'PHPMailer/PHProcksAutoloader.php'

Den PHPMailer rufe ich aus mit einem Script in einem Ordner unter ROOT auf. Das sieht so aus:
Code:
htdocs
---jubileum/birthday.php

Der Fehler scheint durch die Zeile im Autoloader verursacht zu werden, die da lautet:
PHP-Code:
private $PathTemplate __DIR__ '/src/{{CLASS_NAME}}.php'

In __DIR__ ist auf dem Server nicht das enthalten, was man erwarten könnte, bei diesem Anbieter.

Die Fehlermeldung, die kommt lautet:


Zitat:Fatal error: Uncaught Error: Class "PHPMailer\PHPMailer\PHPMailer" not found in /var/www/vhosts/hosting173913.a2e70.netcup.net/wuhletalerff.de/httpdocs/jubileum/birthday.php:48 Stack trace: #0 {main} thrown in /var/www/vhosts/hosting173913.a2e70.netcup.net/wuhletalerff.de/httpdocs/jubileum/birthday.php on line 48

Wie kann ich $PathTemplate so definieren, dass die Klasse auch gefunden wird? Ich stehe total auf dem Schlauch. Ich bitte um Denkanstöße.
Vielen Dank

Drucke diesen Beitrag

  PHP 8.1: Endlich Enums in PHP
Geschrieben von: devroom404 - 22.04.2021, 14:08 - Forum: PHP Basics - Antworten (1)

Hab mir grad mal die Neuerungen für Version 8.1 angesehen (https://php.watch/versions/8.1) und bemerkt, dass nun endlich Enums in PHP verfügbar sein werden.
Finde ich super, den derzeit üblichen Workaround finde ich eher unpraktisch. Native Enums in der Programmiersprache werden Lesbarkeit und IDE-Unterstützung weiter verbessern. 

Es ist generell schön zu sehen, wie PHP sich immer mehr zu einer wirklich brauchbaren Sprache entwickelt. Hab es früher gehasst, mit PHP zu entwickeln, seit Version 7 ist es deutlich angenehmer, seit Version 8 macht es sogar richtig Spaß. Weiter so! Smile

Drucke diesen Beitrag

  OAuth - Should I "scramble" user id?
Geschrieben von: Till - 05.01.2020, 04:55 - Forum: Off Topic - Keine Antworten

Hallo,
ich habe einen OAuth2 Server (und bin so froh das er nun endlich läuft), meine Frage ist nun:

Ich habe 2 Möglichkeiten an den client(client app) die user ID auszuliefern (ich habe bisher beide implementiert):
- 1) Die "echte" User-ID wird ausgeliefert (so machen es google, facebook, und die meisten "großen")
- 2) Für jede Client-App wird für jeden User eine eigene, individuelle User-ID assoziiert (so macht es z.B. Xing)
- 3) Ich biete beide Scope-Modelle (dem Enduser? der App?) zur Auswahl an

Die Vor- und Nachteile liegen auf der Hand:
- 1) Vorteil: Ich kann (wenn ich z.B. mehrere Apps habe) den Benutzer eindeutig zuordnen, auch über verschiedene Anwendungen hinweg,
also die Daten können auch außerhalb der App Verwendung finden.
Nachteil: Datenschutz
- 2) Vorteil: Datenschutz für den Endbenutzer
Nachteil: Eine eindeutige Zuordnung über Anwendungen hinweg ist nicht möglich
Ich muß die User-ID/App- Zuordnungen über die Datenbank tracken (overhead?)
- 3) Vorteil: Das Privacy-Modell kann frei gewählt werden
Nachteil: Die Client App muß unter Umständen beide Anwendungsfälle implementieren (mehr Arbeit) oder kann halt nur eines benutzen
Einen Endbenutzer könnte so eine Auswahl zwischen 2 "Modellen" überfordern oder abschrecken.
Und: Macht das eine überhaupt noch Sinn, wenn ich gleichzeitig das andere anbiete?


Wie ist Eure Meinung dazu?

Bisher sieht meine Implementation (server) vor, daß bei Möglichkeit 2 auch Daten wie Realname und E-Mail Adresse verborgen werden (das macht Xing z.B. nicht),
bestimmte Anwendungsfälle werden so ausgeschlossen.

Viele Grüße
Till

Drucke diesen Beitrag

  "Invisible" Captcha
Geschrieben von: Till - 01.12.2019, 21:23 - Forum: PHP Basics - Antworten (5)

Hallo,
ich möchte mal nachfragen bezüglich meines captcha systems:
- Es wurde bisher von keinem Roboter überwunden
- These: Es wurde bisher nur mangels Popularität noch nicht überwunden

Besonderheit/Anforderungen:
- Das Captcha soll möglichst wenig oder keine Benutzerinteraktivität erfodern, e.g. blinde Benutzer

Ich freue mich über Ratschläge und Meinungen:
Einige Schwachstellen sind mir selbst schon klar, nur habe ich noch keine Lösung ohne das Captcha "unleserlich" zu machen?

  1. Captcha 1 Demo: https://frdl.webfan.de/kontakt.html
  2. Captcha 2 Demo: https://frdlweb.de/demo/contact/
                      Code: https://frdl.webfan.de/cdn/01/packages/frdl/invisible-captcha/

mfg

Drucke diesen Beitrag

  POST/GET routes deklarieren?
Geschrieben von: Till - 12.11.2019, 23:28 - Forum: PHP Basics - Antworten (2)

Hallo,
als Beispiel habe ich eine
- Route [1] um assets auszuliefern
- Route [2] -> RPC API Controller

Route [1] macht eigentlich nur Sinn für GET Requests,
und Route [2] eigentlich nur für POST Requests.

Meine Frage: Sollte man trotzdem (jeweils) beide Methoden in der route deklareiren GET+POST oder das nur jeweils nötige?

Route [2] würde beispielsweise in dem einen Fall bei einem irrtümlichen GET Request einen API-Parse-Error ausliefern, und im anderen Fall (nur die POST route)
einen 404 Not found Fehler.

Danke für Eure Anregungen!

Viele Grüße
Till

Drucke diesen Beitrag

  Projektvorstellung - Testen, Mitmachen... #composer
Geschrieben von: Till - 19.10.2019, 03:30 - Forum: Off Topic - Antworten (3)

Hallo,
ich möchte gerne mein Projekt vorstellen und suche Leute welche

  • testen
  • mitmachen
möchten.

Ich splitte das mal kurz auf...:
  1. ...eine Art CMS ist noch nicht fertig, in "pre-alpha" status
  2. Eine Art Composer UI, ist teilweise fertig und kann getestet werden... *

* D.h. Man kann bisher ein Projekt anlegen, oder vorhandene composer.json files finden,
  in einem visuellen Editor bearbeiten, die composer dependencies installieren,
  und, wenn nicht vorhanden, Composer selbst installieren...

Download des Installers:
https://webfan.de/install/php/


Screenshot:
[Bild: https://domainundhomepagespeicher.webfan.de/screenshot.installer01.png]


Anmerkung:
- Ich habe
Code:
composer update
noch nicht implementiert, da ich mir damit schon bestehende Projekte zerschossen habe? --> Rollback implementieren...

Danke fürs testen!  Smile

Drucke diesen Beitrag

  Twig TemplateEngine
Geschrieben von: Arne Drews - 29.08.2019, 14:21 - Forum: PreComposed - Keine Antworten

Twig PreComposed

Hier könnt ihr euch die per Composer erstellte Template-Engine Twig herunterladen und verwenden.
Die Version wird immer mal wieder aktualisiert.

Hinweis
Nach dem Entpacken der ZIP, hast Du ein Verzeichnis mit dem Namen twig_composed. Dies kannst Du dann in Deinen Webspace laden und Twig in Dein Projekt einbinden:
PHP-Code:
include_once __DIR__ '/twig_composed/autoloader.php'
Wie Du Twig verwendest, findest Du hier.

Anmerkung: Zum Entpacken bitte ein geeignetes Programm, wie WinRAR, WinZIP, 7Zip o.ä. verwenden, die Windows-Bordmittel scheinen nicht immer mit den Paketen umgehen zu können.

Drucke diesen Beitrag

  PHPMailer
Geschrieben von: Arne Drews - 28.08.2019, 17:59 - Forum: PreComposed - Antworten (6)

PHPMailer PreComposed

Hier könnt ihr euch den per Composer erstellten PHPMailer herunterladen und verwenden.
Die Version wird immer mal wieder aktualisiert.


Example Usage
Hinweis
Nach dem Entpacken der ZIP, hast Du ein Verzeichnis mit dem Namen phpmailer_composed. Dies kannst Du dann in Deinen Webspace laden. In folgender Beispielanwendung gehen wir davon aus, dass sich das Verzeichnis in der gleichen Hierarchie-Ebene befindet, wie das Script selber.

Anmerkung: Zum Entpacken bitte ein geeignetes Programm, wie WinRAR, WinZIP, 7Zip o.ä. verwenden, die Windows-Bordmittel scheinen nicht immer mit den Paketen umgehen zu können.
PHP-Code:
// Autoloader einbinden
include_once __DIR__ '/phpmailer-composed/autoload.php';

// namespaces einbinden
use PHPMailer\PHPMailer\PHPMailer;
use 
PHPMailer\PHPMailer\Exception;


// Mailerobjekt erstellen
$oMailer = new PHPMailertrue );
$oMailer->CharSet 'UTF-8';

// Verbindungsdaten setzen
$oMailer->isSMTP();
$oMailer->Host 'smtp.example.com';
$oMailer->SMTPAuth true;
$oMailer->Username 'f00bar';
$oMailer->Password 'xxx';
$oMailer->SMTPSecure 'tls';
$oMailer->Port 587;

$oMailer->setFrom'sender@example.com' );
$oMailer->addAddress'max.mustermann@example.com''Max Mustermann' );

$oMailer->isHTMLtrue );
$oMailer->Subject 'PHProcks! Tutorials - less time to learn more';
$oMailer->Body '<h1>PHProcks!</h1><h2>Tutorial: HTML E-Mail senden mit PHPMailer</h2>';
$oMailer->AltBody strip_tags$oMailer->Body );


if ( !
$oMailer->send() ) {

 
   echo 'Something\'s went wrong!';
 
   exit;

}

echo 
'Yes! First Mail with PHPMailer sent successfully!'
Hinweis
Eine detailliertere Beschreibung zu dem Code findest Du in diesem Tutorial

Drucke diesen Beitrag

  SwiftMailer
Geschrieben von: Arne Drews - 28.08.2019, 10:19 - Forum: PreComposed - Keine Antworten

SwiftMailer PreComposed
Hier könnt ihr euch den per Composer erstellten SwiftMailer herunterladen und verwenden.
Die Version wird immer mal wieder aktualisiert.


Example Usage
Hinweis
Nach dem Entpacken der ZIP, hast Du ein Verzeichnis mit dem Namen swiftmailer_composed. Dies kannst Du dann in Deinen Webspace laden. In folgender Beispielanwendung gehen wir davon aus, dass sich das Verzeichnis in der gleichen Hierarchie-Ebene befindet, wie das Script selber.

Anmerkung: Zum Entpacken bitte ein geeignetes Programm, wie WinRAR, WinZIP, 7Zip o.ä. verwenden, die Windows-Bordmittel scheinen nicht immer mit den Paketen umgehen zu können.
PHP-Code:
// Autoloader einbinden
include_once __DIR__ '/swiftmailer_composed/autoload.php';

// Das Transport-Objekt
$oTransport Swift_SmtpTransport::newInstance'mail.example.com'587 );
$oTransport->setUsername'auth@example.com' );
$oTransport->setPassword'yourpassword' );

// Das Message-Objekt
$oMessage Swift_Message::newInstance();
$oMessage->setFrom'phprocks@example.com' );
$oMessage->setTo'max.mustermann@example.com''Max Mustermann' );
$oMessage->setCc'maria.mustermann@example.com''Maria Mustermann' );
$oMessage->setSubject'PHProcks! Tutorials - less time to learn more' );
$oMessage->setBody'<h1>PHProcks!</h1><h2>Tutorial: HTML E-Mail senden mit SwiftMailer</h2>''text/html' );
$oMessage->addPartstrip_tags($oMessage->getBody()), 'text/plain' );

// Das Mailer-Objekt
$oMailer Swift_Mailer::newInstance$oTransport );

// Versenden der Mail und prüfen, auf Versendet
if ( !$oMailer->send($oMessage) ) {

 
   echo 'Something\'s went wrong!';
 
   exit;

}


echo 
'Yes! First Mail with SwiftMailer sent successfully!'
Hinweis
Eine detailliertere Beschreibung zu dem Code findest Du in diesem Tutorial

Drucke diesen Beitrag

  Does MyClass::class autoload MyClass?
Geschrieben von: Till - 03.08.2019, 00:10 - Forum: PHP Basics - Antworten (5)

Nabend,
sollte ich eigentlich selbst herausfinden können, schmeiße aber die Überlegung mal in den Raum:

Es geht um die vordefinierte ::class Klassenkonstante.
Wenn ich sie benutze, versucht php dann die Klasse zu laden, oder wird der Klassenname geparsed ohne die Klasse autozuloaden?
Hintergrund: Ich habe eine spl_autoload_register function welche php klassen code per remote lädt.
Es wäre ein ziemlicher overhead wenn die Klasse geladen wird wenn ich nur den Klassennamen als string (für lazy loading) brauche.

Beispiel:

PHP-Code:
        $this->getContainer()->set(\Webfan\App\Rpc\Procedure\install_requirements::class, function(\Psr\Container\ContainerInterface $c) { 
                    return new \
Webfan\App\Rpc\Procedure\install_requirements($c->get('webfan.app.rpc.auth-shield'), $c);                
        });                
        
$this->getContainer()->get('webfan.app.rpc.server')
               ->
set('install.requirements', \Webfan\App\Rpc\Procedure\install_requirements::class)
            ; 

vs.
PHP-Code:
        $this->getContainer()->set('\Webfan\App\Rpc\Procedure\install_requirements', function(\Psr\Container\ContainerInterface $c) { 
                    return new \
Webfan\App\Rpc\Procedure\install_requirements($c->get('webfan.app.rpc.auth-shield'), $c);                
        });                
        
$this->getContainer()->get('webfan.app.rpc.server')
               ->
set('install.requirements''\Webfan\App\Rpc\Procedure\install_requirements')
            ; 

Drucke diesen Beitrag