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.718
PHP 8.1: Endlich Enums in...
Forum: PHP Basics
Letzter Beitrag: Arne Drews
22.04.2021, 16:55
» Antworten: 1
» Ansichten: 2.619
Einfache Template Engine
Forum: PHP Template Engines
Letzter Beitrag: Arne Drews
22.04.2021, 16:49
» Antworten: 4
» Ansichten: 10.913
OAuth - Should I "scrambl...
Forum: Off Topic
Letzter Beitrag: Till
05.01.2020, 04:55
» Antworten: 0
» Ansichten: 7.746
"Invisible" Captcha
Forum: PHP Basics
Letzter Beitrag: Arne Drews
11.12.2019, 15:00
» Antworten: 5
» Ansichten: 10.288
Projektvorstellung - Test...
Forum: Off Topic
Letzter Beitrag: Till
22.11.2019, 20:03
» Antworten: 3
» Ansichten: 5.570
POST/GET routes deklarier...
Forum: PHP Basics
Letzter Beitrag: Till
14.11.2019, 19:44
» Antworten: 2
» Ansichten: 4.604
PHPMailer
Forum: PreComposed
Letzter Beitrag: Arne Drews
20.10.2019, 12:44
» Antworten: 6
» Ansichten: 8.447
Twig TemplateEngine
Forum: PreComposed
Letzter Beitrag: Arne Drews
29.08.2019, 14:21
» Antworten: 0
» Ansichten: 3.279
SwiftMailer
Forum: PreComposed
Letzter Beitrag: Arne Drews
28.08.2019, 10:19
» Antworten: 0
» Ansichten: 3.454

 
  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

  Header-Fehlermeldung, ist keine Funktion
Geschrieben von: Eumel - 15.08.2017, 21:41 - Forum: PHP Basics - Antworten (1)

Hallo,
ich experimentiere gerad etwas mit einem Erinnerungsscript für Geburtstage. Nur um etwas zu lernen und die grauen Zellen anzuregen. Also Rechnerei mit dem Datum und Stringzerlegung und Vergleiche.
Meine Entwicklungsumgebung ist ein RaspberryPi2 mit Raspian, dem Apache2 und PHP (Version?). Von meinem Windows10-Rechner aus greife ich auf den Homepageordner auf dem Pi  zu, editiere mit Notepad++ und teste vom W10-Rechner aus mittels Firefox.

Das zur kurzen Vorrede.

Ich habe eine Textdatei, die die ganzen Geburtstage enthält. Jede Zeile folgt dem Schema:
Vorname;Name;01.01.1900
Vorname2;Name2;07.02.1967 usw.

Mein Script öffnet diese Datei, liest eine Zeile ein, zerpflückt die Daten und legt sie in Einzelstrings ab. Dann wird gerechnet und bei Übereinstimmung zum aktuellen Datum wird eine Email mittels PHPMailer versandt. Das funktioniert vom Raspi aus auch anstandslos. Lade ich das Script auf meinen Webspace, bekomme ich folgende Fehlermeldung:

Zitat:Fatal error: Call to undefined function phpheader() in /WWWROOT/61910/htdocs/jubileum/birthday.php on line 1


Diese Zeile der PHP-Datei lautet:

Zitat:header ('Content-Type: text/html; charset=utf-8');

Direkt nach dem einführenden PHP-Tag.

Frage Warum kommt diese Meldung?

Fragen zu fragen? Bitte stellt sie.

Danke

Drucke diesen Beitrag

  Migrate async+syncronous require to only async
Geschrieben von: Till - 16.07.2017, 19:36 - Forum: JavaScript / JavaScript Frameworks / Ajax - Antworten (6)

Hallo,
ich habe mir die require Funktion und mein library so schön node.js like nachgebaut und die shims runtergeladen, so daß node.js scripts in der Regel im Browser funktionieren ( sogar require('fs') = FilesystemAPI/indexedDB ).
Und alles funktioniet eigentlich wunderbar, eigentlich bin ich ehrlich gesagt einwenig stolz auf mich.

Aber:
Synchrone XMLHttpRequest ist zukunft nur noch im worker erlaubt wie jeder weiß.
Meine nachgebaute require Funktion mit Cache und module context(zumteil in arbeit) unterstützt sync und oder async, je nachdem ob eine callback Funktion übergeben wird.

Ich habe auch eine vm/shim require('vm') und habe vor demnächst die module in den vm context zu schicken (ich errinere an meine frdl language Cool )

Nun gib es die eine Möglichkeit, die synchronen require calls solange in den Promise zu schicken bis er resolved wird, was aber den Prozess anhalten würde und einfrieren könnte.
Die andere Möglichkeit wäre mehr "sexy": Einen Worker zu starten, die files vorher von der VM nach dem "initial require" zu parsen/etc und die requires in den cache zu laden und das modul erst auszuführen wenn die required module im cache sind, dann nämlich funktioniert im folgenden auch das synchrone require.

Any more suggestions? Kann jemand was dazu sagen? Wißt Ihr was ich meine?

Heart Ich liebe Euch Alle, fast alle Big Grin

mfg
Till

Drucke diesen Beitrag