php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack (3) Themen-Optionen Thema bewerten
Alt 05.11.2008, 09:57  
Erfahrener Benutzer
 
Registriert seit: 24.10.2008
Beiträge: 291
PHP-Kenntnisse:
Fortgeschritten
KarlEgon befindet sich auf einem aufstrebenden Ast
Standard

Code:
Blank: 14
Tab: 29
Da liegt das Problem, durch den neuen Pagecontroller kann man nirgends mehr einen Tab verwenden, da du, sobald ein Tab vorhanden ist, in den if-zweig springst, hier aber nochmal prüfst ob Blank größer Tab ist und nur dann wird $tagAttributeDel gesetzt, ansonsten bleibt es undefiniert.

Habe das ganze nun so erweiter, dass funktioniert im Moment:
PHP-Code:
// search for taglib to attributes string delimiter
         
$tagAttributeDel_Blank strpos($TagString,' ');

         
// BUGFIX: fixes the issue, that a TAB character is no valid delimiter
         
$tagAttributeDel_Tab strpos($TagString,"\t");

         if(
$tagAttributeDel_Tab !== false){
            if(
$tagAttributeDel_Blank $tagAttributeDel_Tab){
               
$tagAttributeDel $tagAttributeDel_Tab;
             
// end if
            
} else {
                
$tagAttributeDel $tagAttributeDel_Blank;
            }

          
// end if
         
}
         else{
            
$tagAttributeDel $tagAttributeDel_Blank;
          
// end else
         

Edit:
Die Einbindung des Captchas nach Mitgelieferte-Module geht bei mir so nicht, nachdem ich erstmal herausfinden musste, dass er beim holen der Captcha Konfiguration auf einmal sites::main::pres::templates als Context verwendet, auch wenn ich $fC->set('Context','main') mache oder so, danach war das Problem, dass immernoch kein Bild angezeigt wurde. Habe ich allerdings den Pfad aus dem dem <img src=...> herauskopiert und eingefügt, funktionierte das ganze wunderbar, dann wurde mir auch ein Bild angezeigt, nur wenn ich es in einem Formular eingebunden habe funktioniert es nicht.

Geändert von KarlEgon (05.11.2008 um 10:38 Uhr).
KarlEgon ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 05.11.2008, 16:06  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.633
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Hallo KarlEgon,

ich hatte in der Mittagspause nochmal Gelegenheit darüber nachzudenken und bin auch genau auf diesen Fall gekommen. Da wir hier ohnehin schlechtere Performance erreichen, schlage ich vor, den Code wieder zu entfernen. Einverstanden?

Zitat:
Habe ich allerdings den Pfad aus dem dem <img src=...> herauskopiert und eingefügt, funktionierte das ganze wunderbar, dann wurde mir auch ein Bild angezeigt, nur wenn ich es in einem Formular eingebunden habe funktioniert es nicht.
Wichtig ist an dieser Stelle, dass der Context vor dem Starten des FrontControllers gesetzt wird. Sonst verwendet wer FrontController den Namespace-Paramater der start()-Methode als Context. Das Thema Konfiguration wird unter Adventure PHP Framework - Konfiguration nochmal genauer erläutert. Sollte das immer noch nicht funktionieren, poste mir einfach mal das Formular und deine index.php. Ich bin mir sicher, das kriegen wir auch noch hin.
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline   Mit Zitat antworten
Alt 05.11.2008, 17:02  
Erfahrener Benutzer
 
Registriert seit: 24.10.2008
Beiträge: 291
PHP-Kenntnisse:
Fortgeschritten
KarlEgon befindet sich auf einem aufstrebenden Ast
Standard

Kann ruhig wieder rausgenommen werden, habe ich kein Problem mit im Moment.

Zum Captcha:
register.html
Code:
<@controller namespace="modules::game::register::pres::documentcontroller" file="register_controller" class="RegisterController" @>
<core:addtaglib namespace="tools::form::taglib" prefix="html" class="form" />
<div id="register">
	<p>Die Registrierungsdaten werden auch f&uuml;r das Portal verwendet</p>
	<html:form name="RegisterForm" method="post" action="">
		<div class="1column">Nick:</div><div class="2column"><form:text name="username" class="eingabe_feld" validate="true" validator="Text" button="register" /></div>
		<div class="1column">Passwort:</div><div class="2column"><form:password name="userpass" class="eingabe_feld" validate="true" validator="Text" button="register" /></div>
		<div class="1column">Passwort Wiederholung:</div><div class="2column"><form:password name="userpass2" class="eingabe_feld" validate="true" validator="Text" button="register" /></div>
		<div class="1column">Email:</div><div class="2column"><form:text name="useremail" class="eingabe_feld" validate="true" validator="EMail" button="register" /></div>
		<div class="1column">Email Wiederholung:</div><div class="2column"><form:text name="useremail2" class="eingabe_feld" validate="true" validator="EMail" button="register" /></div>
		<form:addtaglib namespace="modules::captcha::pres::taglib" prefix="form" class="captcha" />
	    <form:captcha
		      text_class="eingabe_feld"
		      text_style="width: 318px;"
		      validate="true"
		      button="register"
	    />
		<div class="3column"><form:button name="register" value="Registrieren" class="eingabe_feld" /></div>
	</html:form>
</div>
index.php
PHP-Code:
<?php
   
include_once('./core/pagecontroller/pagecontroller.php');

   
import('core::frontcontroller','Frontcontroller');
   
import('sites::main::biz','global_Model');
   
import('sites::main::biz','north_TemplateModel');
   
import('sites::main::biz','west_TemplateModel');

   
$fC = &Singleton::getInstance('Frontcontroller');
   
$GlobalModel = &Singleton::getInstance('GlobalModel');
   
$NorthModel = &Singleton::getInstance('NorthTemplateModel');
   
$WestModel = &Singleton::getInstance('WestTemplateModel');

   
$GlobalModel->setAttribute('titel','KarlWars');
   
$NorthModel->addTemplate('modules::game::right_top_box::pres::templates','right_top_box',1);
   
$WestModel->addTemplate('modules::game::navigation::pres::templates','subnavigation',1);

   
$fC->set('Context','APF');
   
$fC->registerAction('sites::main','changeView');
   
$fC->start('sites::main::pres::templates','main');

   
$T = &Singleton::getInstance('benchmarkTimer');
   
$T->setCriticalTime(0.99);
   echo 
$T->createReport();
?>
Die Konfiguration des Captchas liegt unter:
./config/modules/captcha/biz/actions/APF/DEFAULT_actionconfig.ini

Und der Inhalt ist:
Code:
[showCaptcha]
FC.ActionNamespace = "modules::captcha::biz::actions"
FC.ActionFile = "ShowCaptchaImageAction"
FC.ActionClass = "ShowCaptchaImageAction"
FC.InputFile = "ShowCaptchaImageInput"
FC.InputClass = "ShowCaptchaImageInput"
FC.InputParams = ""
Nun ist es so, dass innerhalb des Formulars der alternative Text angezeigt wird (also kein Bild angezeigt wird) nehme ich allerdings die Adresse, die im src steht und rufe sie auf, wird mir ein Captcha angezeigt.
KarlEgon ist offline   Mit Zitat antworten
Alt 05.11.2008, 17:34  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.633
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Hallo KarlEgon,

dein Code sollte auf den ersten Blick stimmen. Kannst du mir noch den Link zur Verfügung stellen, der generiert wird, ich vermute nämlichg, dass da noch ein Fehler in der danamischen Link-Generierung steckt. Wie ist die lokale URL zur gezeigten indx.php?
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline   Mit Zitat antworten
Alt 05.11.2008, 17:47  
Erfahrener Benutzer
 
Registriert seit: 24.10.2008
Beiträge: 291
PHP-Kenntnisse:
Fortgeschritten
KarlEgon befindet sich auf einem aufstrebenden Ast
Standard

Folgende URL wird generiert
PHP-Code:
/?modules_captcha_biz-action:showCaptcha=name:a6c77c25f8d9a4b4f504c5d2d22eb9d9 
Ahh wenn ich die ActionBaseURL im catcha Tag setze funktioniert das ganze, aber es muss doch auch noch anders gehen oder?

Geändert von KarlEgon (05.11.2008 um 17:51 Uhr).
KarlEgon ist offline   Mit Zitat antworten
Alt 05.11.2008, 21:54  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.633
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Hallo KarlEgon,

ich hab mir den Code nochmal angesehen und der Fehler / das Problem ist, dass die URL nicht generisch genug generiert wird - sie ist direkt abhängig von der Basis-URL, die die Registry-Direktive "URLBasePath" zur Verfügung stellt.

Da die aktuelle Request-URL an mehreren Stellen benötigt wird (TagLibs, eigener Code), habe ich mich entschlossen den PageController so zu erweitern, dass die komplette aktuelle Request-URL in der Registry als schreibgeschützter Wert (Namespace: "apf::core", Direktive: "CurrentRequestURL") zur Verfügung wird. Mit Hilfe dieses Wertes wird nun in den Tags <*:mediastream /> und <form:captcha /> die Action-URL generiert. Das sollte - soweit meine bisherigen Tests - auch für deinen Anwendungsfall und für beide URL-Layouts funktionieren.

Damit du weiterarbeiten kannst, habe ich dir die aktuellen Änderungen (Rücknahme der TAB-Erweiterung, Änderung der Generierung der Action-URL, ...) in einem 1.8-BETA-Package unter http://media.adventure-php-framework...-2219-php5.zip zur Verfügung gestellt. Der Code befindet sich wie immer im trunk des SVN.

Die neue Dokumentation der <*:mediastream />-Tags findest du unter Spezielle TagLibs :: Adventure PHP Framework (APF), die Dokumentation des CAPTCHA-Tags unter Mitgelieferte Module :: Adventure PHP Framework (APF). Der neue Registry-Wert wird unter Klassen-Referenz - Registry :: Adventure PHP Framework (APF) vorgestellt.

Ich hoffe, das hilft dir weiter!

//EDIT: Hierzu habe ich unter http://forum.adventure-php-framework...c.php?f=8&t=63 einen BugReport eröffnet. Wenn du weitere Bugs finden solltest, bitte wenn möglich dort reporten.
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Geändert von dr.e. (05.11.2008 um 22:22 Uhr). Grund: Bug-Report-Link hinzugefügt
dr.e. ist offline   Mit Zitat antworten
Alt 06.11.2008, 10:57  
Erfahrener Benutzer
 
Registriert seit: 24.10.2008
Beiträge: 291
PHP-Kenntnisse:
Fortgeschritten
KarlEgon befindet sich auf einem aufstrebenden Ast
Standard

Die Generierung der Seite geht nun schon um einiges schneller, bestimmt so 0.3 Sekunden(was so ca. 1/3 ausmacht) gespart, allerdings kann man es nicht wirklich vergleichen, an dem Computer an dem ich sitze ist alles langsam, da dauert der aufruf einer lokalen Seite auch schonmal 5 Sekunden, aber was solls.

Habe nun auch schon eine Verbindung zur Datenbank hergestellt und dort Informationen rausgesucht, klappt alles ohne Probleme. Denke werde mich heute mal mit dem Registrieren eines Users beschäftigen und diesen dann in die Datenbank eintragen.
Hat das Framework auch etwas eingebaut um Emails versenden zu können? *such such* Ahh das gute alte Kontaktformular, werde ich mir mal anschauen ^^

Geändert von KarlEgon (06.11.2008 um 12:07 Uhr).
KarlEgon ist offline   Mit Zitat antworten
Alt 06.11.2008, 16:07  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.633
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Hi,

Zitat:
Hat das Framework auch etwas eingebaut um Emails versenden zu können? *such such* Ahh das gute alte Kontaktformular, werde ich mir mal anschauen ^^
Ja, der mailSender unter tools::mail. Schau mal, ob dir das genügt. Ansonsten nehme ich gerne für das 1.8-er release Wünsche auf.

Zitat:
Habe nun auch schon eine Verbindung zur Datenbank hergestellt und dort Informationen rausgesucht, klappt alles ohne Probleme. Denke werde mich heute mal mit dem Registrieren eines Users beschäftigen und diesen dann in die Datenbank eintragen.
Vielleicht ist für dich hier auch der GenericORMapper interessant. Dieser spart dir einiges an Aufwand bei der Implementierung einer Datenschicht. Eine ausführliche Diskussion dazu findest du auch unter forum.adventure-php-framework.org [de] &bull; Thema anzeigen - GenericORMapper
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline   Mit Zitat antworten
Alt 06.11.2008, 16:43  
Erfahrener Benutzer
 
Registriert seit: 24.10.2008
Beiträge: 291
PHP-Kenntnisse:
Fortgeschritten
KarlEgon befindet sich auf einem aufstrebenden Ast
Standard

Den GenericORMapper habe ich mir schon angeschaut und werde ihn wahrscheinlich auch einarbeiten. Mail Funktionen habe ich mir noch nicht angeschaut, werde ich aber noch machen, vielleicht habe ich ja noch ein paar Verbesserungsvorschläge, aber viel will ich damit eigentlich nicht machen, nur einen Aktivierungslink verschicken.

Werde mich am Wochenende auch hinsetzen und meine Webseite mal unterteilen, schauen welche Views ich für mein Projekt brauche usw. Bis jetzt war es ja nur Spielerei um das APF auszuprobieren in hinblick auf mein Projekt und was ich alles brauchen werde. Ich denke der BenchmarkTimer wird mir auch gute Dienste erweisen und mir zeigen, wo ich noch Sachen anpassen muss.
KarlEgon ist offline   Mit Zitat antworten
Alt 06.11.2008, 17:43  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.633
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Hallo KarlEgon,

freut mich, dass du nun alles hast um loszulegen. Viel Spass am Wochenende!
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

LinkBacks (?)
LinkBack to this Thread: http://www.php.de/php-fortgeschrittene/48424-erledigt-variablen-einem-template-ersetzen.html
Erstellt von For Type Datum
Adventure PHP Framework - Downloads This thread Refback 05.12.2008 21:54
Adventure PHP Framework - Literatur This thread Refback 21.11.2008 12:58
forum.adventure-php-framework.org [de] • Thema anzeigen - Einführung <core:appendnode />-Tag This thread Refback 20.11.2008 19:41

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] ob_start verwirft gesetzte Variablen?! tohms PHP Tipps 2008 3 19.10.2008 16:50
Lieber Template oder Normal für ein community? mysteryxxx PHP Tipps 2008 8 17.09.2008 23:04
Klasse statt globaler Variablen ecomeback PHP-Fortgeschrittene 6 15.07.2008 16:30
Übergeben von Variablen an in PHP eingebundenes Perl-Script shredder01 PHP Tipps 2008 3 04.04.2008 09:25
Teil einer Variablen mit einer Variablen ersetzen ? simsalabim PHP Tipps 2007 11 20.03.2007 20:36
variablen aus db ersetzen snatch-ic PHP Tipps 2006 7 21.05.2006 01:51
template in template einfuegen tonne PHP Tipps 2005-2 8 10.11.2005 22:24
In Fuktionen alle Variablen Global stellen ? atom-dragon PHP Tipps 2005-2 5 22.07.2005 04:30
Template System oder Lösung gesucht PHP Tipps 2005 14 21.05.2005 22:07
Variablen übergeben bzw. auslesen? PHP Tipps 2005 4 30.01.2005 03:56
suche ein bestimmtes template system PHP Tipps 2004-2 2 07.11.2004 19:49
Template Parser PHP-Fortgeschrittene 9 06.10.2004 23:04
mit print Variablen in String ersetzen PHP Tipps 2004 3 27.09.2004 21:29
Variablen per adresse übergeben rocco PHP Tipps 2004 7 24.07.2004 12:03
[Erledigt] Template Scripting PHP-Fortgeschrittene 2 04.06.2004 18:34

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php nur das erste blank durch tab ersetzen

Alle Zeitangaben in WEZ +1. Es ist jetzt 19:19 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum