Heim Backend-Entwicklung PHP-Tutorial PEAR::HTML_QuickForm与Smarty 的结合应用_PHP

PEAR::HTML_QuickForm与Smarty 的结合应用_PHP

Jun 01, 2016 pm 12:31 PM
i 密码 应用 uns 结合 表单

SMARTY

  Haohappy在《PHP & More》第三期的《PEAR::HTML_QuickForm入门》一文中说过要写QuickForm和Smarty的结合应用,一直没写,今天看到PHPE论坛上有朋友在询问,为自己的懒惰而惭愧。现在补上,希望对大家有点帮助。 在我看来,PEAR::HTML_QuickForm是个非常优秀的表单类库,大大加快了开发速度,我现在的大多数项目都会用到。如果对PEAR::HTML_QuickForm不了解的朋友,建议先看这篇文章。

  本文针对的读者为有较丰富开发经验的PHP程序员,要求读者

1. 熟悉PEAR及其安装和使用;

2. 熟悉HTML_QuickForm;

3. 理解模板的概念,熟悉Smarty模板引擎的使用。

  在《PEAR::HTML_QuickForm入门》的表单的美化输出一节中,提到了用QuickForm自带的Form修饰方法来美化输出。很明显,这种方法显得有点麻烦,而且让程序员来美化网页,有点难为我们了。 现在程序员和设计师的合作最常见的就是通过模板,所以如何把QuickForm和模板引擎相结合,这就是我们需要解决的问题。其实QuickForm可以和多种模板引擎相结合,如ITX, Sigma, Flexy, Smarty等,每种模板都有其优点和缺点,目前Smarty是最通用的模板引擎,所以我们把QuickForm和Smarty的结合作为重点来研究。

  首先,给大家看看我们的最后效果:

PEAR::HTML_QuickForm与Smarty 的结合应用_PHP

  这个例子非常简单,只有一个Form,4个Input,只是用来讲解QuickForm的使用。在实际开发中,我们经常遇到几十个Input的情况。实际上,表单越复杂,就越显出我们传统的处理方式的低效,就越显出QuickForm的强大。这一点,也许大家以后会体会到。

好,开始我们的QuickForm Smarty之旅。

changPwd.php


require_once("includes/config.inc.php");
//构建Smarty对象
$smarty = new Smarty_App;
$smarty->assign('CSSDIR','./templates/admin');
$smarty->assign('title',':: Haohappy Test网站管理系统 ::');

//构建登录表单
$form = new HTML_QuickForm('frmChgPwd', 'post');

//增加表单元素
$form->addElement('password', 'adminPwd', '','class = NameAndPwd');
$form->addElement('password', 'newPwd', '','class = NameAndPwd');
$form->addElement('password', 'newPwd2', '','class = NameAndPwd');
$form->addElement('submit', 'btnSubmit', '修改密码','class = btnSubmit');

//增加验证规则 会自动生成javascript变量,存入javascript验证函数
$form->addRule('adminPwd','密码不能为空!', 'required','','client');
$form->addRule('newPwd','新密码不能为空!', 'required','','client');
$form->addRule('newPwd2','新密码不能为空!', 'required','','client');
$form->addRule(array('newPwd','newPwd2'),"两次输入的密码不同!!",'compare','','client');

if ($form->validate()) {
//如果表单数据正确,修改密码
$form->process('changePwd');
}
else{

//否则显示表单

// 建立renderer对象
$renderer =& new HTML_QuickForm_Renderer_ArraySmarty($smarty );

// build the HTML for the form 生成表单的HTML代码
$form->accept($renderer);

//assign array with form data 分配表单数据到数组中
$smarty->assign('form_data', $renderer->toArray());
$smarty->catching = false;

// 调试
//echo "

";var_dump($renderer->toArray());echo "
Nach dem Login kopieren
Nach dem Login kopieren
";
$smarty->display("changePwd.tpl");

}

//修改密码
function changePwd(){}
?>

  在代码中,我们用$form->addElement()增添了4个表单元素,用$form->addRule()增加了4条验证规则。怎么样,是不是很快捷方便? 以验证两个密码是否相同的验证规则为例,如果我们自己写验证规则,虽然快,但是代码就会显得臃肿和凌乱,由QuickForm来负责数据验证,开发速度大大提高,而且代码显得很简洁漂亮。仅用了一行代码:

$form->addRule(array('newPwd','newPwd2'),"两次输入的密码不同!!",'compare','','client');

  关于QuickForm的好处,请参看《PEAR::HTML_QuickForm入门》,在此不再重复。

  下面这行代码就是我们将HTML_QuickForm与Smarty连接的桥梁:

$renderer =& new HTML_QuickForm_Renderer_ArraySmarty($smarty );

  所谓renderer,就是用来负责显示的,这里我们把QuickForm的renderer指定为Smarty,我们就可以使用强大的Smarty模板引擎来格式化QuickForm的输出了。

  其它:

changePwd()是这个文件的核心操作函数,用来修改密码。

$form->process('changePwd'); //这行代码用来调用changePwd()


//echo "

";var_dump($renderer->toArray());echo "
Nach dem Login kopieren
Nach dem Login kopieren
";

  这一行用来调试,我们随时可以把$renderer中的所有变量打印出来,看看程序是否执行正确。

  再看我们的模板,也很简单:

changePwd.tpl

{if $form_data.javascript}

{$form_data.javascript}

{/if}

 

 

 

修改管理员密码
现有管理员密码

{$form_data.adminPwd.html}
新密码

{$form_data.newPwd.html}
再次输入新密码

{$form_data.newPwd2.html}

{$form_data.btnSubmit.html}

  这两个简单的文件,总共不到100行代码,就完成了我们在文章开头的效果。包含完整的表单数据验证,处理过程。

  另:使用QuickForm,可以很方便地实现显示层和逻辑层的分离,因为处理的函数是完全独立出来的。

  例如说可以把

if ($form->validate()) {
//如果表单数据正确,修改密码
$form->process('changePwd');
}

改装成

if ($form->validate()) {

switch ($post_vars['action']) {

default:

case "changPwd":

$form->process('changePwd');

break;

case "Add":

$form->process('add');

break;

case "Update":

$form->process('update');

break;

case "Delete":

$form->process('delete');

break;

}

  然后把changePwd,add,update,delete四个函数独立到某个文件当中。这样就可以根据页面提交的action来调用不同的操作。

  这个想法相对比较简陋一些,如果你要用更强大的功能,还可以试试

  PEAR::HTML_QuickForm_Controller。HTML_QuickForm_Controller基于PageController设计模式,也就是用单个页面来处理通过GET和POST传递而来的request和 action。这是个非常有意思的想法,但是这种开发模式不适合于新手,因为相对比较复杂。其作者也说:

HTML_QuickForm_Controller is not intended for PHP newbies. If you don't understand what classes are, if you have no prior experience with QuickForm, if you are a fan of copy-paste programming then this package is not for you.

The package is indeed complex, but so are the problems it is trying to solve. Try to rewrite any of the enclosed multipage form examples without using such a package and you'll see what we mean.

  这部份暂不讨论,这需要大家对MVC有一定了解,下次有机会再另写文章。我自己目前的开发框架就是个MVC框架,觉得很顺手,显示部份就是交给Smarty QuickForm来完成。希望有更多人关注和使用QuickForm,相信使用之后大家一定不会失望的

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie lässt sich das Problem lösen, dass Windows 11 Sie auffordert, den Administrator-Benutzernamen und das Passwort einzugeben, um fortzufahren? Wie lässt sich das Problem lösen, dass Windows 11 Sie auffordert, den Administrator-Benutzernamen und das Passwort einzugeben, um fortzufahren? Apr 11, 2024 am 09:10 AM

Wenn Sie ein Win11-System verwenden, werden Sie manchmal aufgefordert, den Benutzernamen und das Passwort des Administrators einzugeben. In diesem Artikel wird erläutert, wie Sie mit dieser Situation umgehen. Methode 1: 1. Klicken Sie auf [Windows-Logo] und drücken Sie dann [Umschalt+Neustart], um in den abgesicherten Modus zu wechseln, oder gehen Sie folgendermaßen in den abgesicherten Modus: Klicken Sie auf das Startmenü und wählen Sie „Einstellungen“. Wählen Sie „Update und Sicherheit“; wählen Sie „Jetzt neu starten“ unter „Wiederherstellung“ und geben Sie die Optionen ein. Wählen Sie „Fehlerbehebung“ – „Erweiterte Optionen“ – „Starteinstellungen“.

So legen Sie das WLAN-Passwort des Routers mit dem Mobiltelefon fest (mit dem Mobiltelefon als Werkzeug) So legen Sie das WLAN-Passwort des Routers mit dem Mobiltelefon fest (mit dem Mobiltelefon als Werkzeug) Apr 24, 2024 pm 06:04 PM

Drahtlose Netzwerke sind in der heutigen digitalen Welt zu einem unverzichtbaren Bestandteil des Lebens der Menschen geworden. Besonders wichtig ist jedoch der Schutz der Sicherheit persönlicher drahtloser Netzwerke. Das Festlegen eines sicheren Passworts ist der Schlüssel, um sicherzustellen, dass Ihr WLAN-Netzwerk nicht von anderen gehackt werden kann. Um die Sicherheit Ihres Netzwerks zu gewährleisten, erfahren Sie in diesem Artikel ausführlich, wie Sie mit Ihrem Mobiltelefon das WLAN-Passwort des Routers ändern. 1. Öffnen Sie die Router-Verwaltungsseite – Öffnen Sie die Router-Verwaltungsseite im mobilen Browser und geben Sie die Standard-IP-Adresse des Routers ein. 2. Geben Sie den Administrator-Benutzernamen und das Passwort ein. Um Zugriff zu erhalten, geben Sie auf der Anmeldeseite den korrekten Administrator-Benutzernamen und das richtige Passwort ein. 3. Navigieren Sie zur Seite mit den WLAN-Einstellungen – suchen Sie auf der Router-Verwaltungsseite nach der Seite mit den WLAN-Einstellungen und klicken Sie darauf, um sie aufzurufen. 4. Finden Sie das aktuelle WLAN

So machen Sie das Löschen vom Startbildschirm im iPhone rückgängig So machen Sie das Löschen vom Startbildschirm im iPhone rückgängig Apr 17, 2024 pm 07:37 PM

Sie haben etwas Wichtiges von Ihrem Startbildschirm gelöscht und versuchen, es wiederherzustellen? Es gibt verschiedene Möglichkeiten, App-Symbole wieder auf dem Bildschirm anzuzeigen. Wir haben alle Methoden besprochen, die Sie anwenden können, um das App-Symbol wieder auf dem Startbildschirm anzuzeigen. So machen Sie das Entfernen vom Startbildschirm auf dem iPhone rückgängig. Wie bereits erwähnt, gibt es mehrere Möglichkeiten, diese Änderung auf dem iPhone wiederherzustellen. Methode 1 – App-Symbol in der App-Bibliothek ersetzen Sie können ein App-Symbol direkt aus der App-Bibliothek auf Ihrem Startbildschirm platzieren. Schritt 1 – Wischen Sie seitwärts, um alle Apps in der App-Bibliothek zu finden. Schritt 2 – Suchen Sie das App-Symbol, das Sie zuvor gelöscht haben. Schritt 3 – Ziehen Sie einfach das App-Symbol aus der Hauptbibliothek an die richtige Stelle auf dem Startbildschirm. Dies ist das Anwendungsdiagramm

Die Rolle und praktische Anwendung von Pfeilsymbolen in PHP Die Rolle und praktische Anwendung von Pfeilsymbolen in PHP Mar 22, 2024 am 11:30 AM

Die Rolle und praktische Anwendung von Pfeilsymbolen in PHP In PHP wird das Pfeilsymbol (->) normalerweise verwendet, um auf die Eigenschaften und Methoden von Objekten zuzugreifen. Objekte sind eines der Grundkonzepte der objektorientierten Programmierung (OOP) in PHP. In der tatsächlichen Entwicklung spielen Pfeilsymbole eine wichtige Rolle bei der Bedienung von Objekten. In diesem Artikel werden die Rolle und die praktische Anwendung von Pfeilsymbolen vorgestellt und spezifische Codebeispiele bereitgestellt, um den Lesern ein besseres Verständnis zu erleichtern. 1. Die Rolle des Pfeilsymbols für den Zugriff auf die Eigenschaften eines Objekts. Das Pfeilsymbol kann für den Zugriff auf die Eigenschaften eines Objekts verwendet werden. Wenn wir ein Paar instanziieren

Anleitung zum Ändern des WLAN-Passworts auf einem Mobiltelefon (einfache Bedienung) Anleitung zum Ändern des WLAN-Passworts auf einem Mobiltelefon (einfache Bedienung) Apr 26, 2024 pm 06:25 PM

Drahtlose Netzwerke sind mit der rasanten Entwicklung des Internets zu einem unverzichtbaren Bestandteil unseres Lebens geworden. Zum Schutz persönlicher Daten und der Netzwerksicherheit ist es jedoch sehr wichtig, Ihr WLAN-Passwort regelmäßig zu ändern. Um Ihnen dabei zu helfen, die Sicherheit Ihres Heimnetzwerks besser zu schützen, stellt Ihnen dieser Artikel eine detaillierte Anleitung vor, wie Sie Ihr WLAN-Passwort mit Ihrem Mobiltelefon ändern können. 1. Verstehen Sie die Bedeutung von WLAN-Passwörtern. WLAN-Passwörter sind die erste Verteidigungslinie zum Schutz persönlicher Daten und der Netzwerksicherheit. Wenn Sie ihre Bedeutung verstehen, können Sie besser verstehen, warum Sie Ihr Passwort regelmäßig ändern müssen. 2. Stellen Sie sicher, dass das Telefon mit dem WLAN verbunden ist, bevor Sie das WLAN-Passwort ändern. 3. Öffnen Sie das Einstellungsmenü des Telefons und rufen Sie das Einstellungsmenü des Telefons auf.

Falsches Passwort, Vorsicht BitLocker-Warnung Falsches Passwort, Vorsicht BitLocker-Warnung Mar 26, 2024 am 09:41 AM

In diesem Artikel erfahren Sie, wie Sie das Problem eines falschen Passworts lösen können, insbesondere wie Sie beim Umgang mit BitLocker-Warnungen vorsichtig sein müssen. Diese Warnung wird ausgelöst, wenn in BitLocker mehrmals ein falsches Passwort eingegeben wird, um das Laufwerk zu entsperren. Normalerweise tritt diese Warnung auf, weil das System über eine Richtlinie verfügt, die fehlerhafte Anmeldeversuche begrenzt (normalerweise sind drei Anmeldeversuche zulässig). In diesem Fall erhält der Nutzer eine entsprechende Warnmeldung. Die vollständige Warnmeldung lautet wie folgt: Das eingegebene Passwort ist falsch. Bitte beachten Sie, dass die fortlaufende Eingabe falscher Passwörter zur Sperrung des Kontos führt. Dies dient dem Schutz Ihrer Daten. Wenn Sie Ihr Konto entsperren müssen, müssen Sie einen BitLocker-Wiederherstellungsschlüssel verwenden. Das Passwort ist falsch. Achten Sie auf die BitLocker-Warnung, die Sie erhalten, wenn Sie sich an Ihrem Computer anmelden

Was soll ich tun, wenn mein Win10-Passwort nicht den Passwortrichtlinienanforderungen entspricht? Was kann ich tun, wenn mein Computerpasswort nicht den Richtlinienanforderungen entspricht? Was soll ich tun, wenn mein Win10-Passwort nicht den Passwortrichtlinienanforderungen entspricht? Was kann ich tun, wenn mein Computerpasswort nicht den Richtlinienanforderungen entspricht? Jun 25, 2024 pm 04:59 PM

Im Windows 10-System handelt es sich bei der Kennwortrichtlinie um eine Reihe von Sicherheitsregeln, um sicherzustellen, dass die von Benutzern festgelegten Kennwörter bestimmte Stärke- und Komplexitätsanforderungen erfüllen Das Kennwort entspricht nicht den von Microsoft festgelegten Anforderungen an Komplexität, Länge oder Zeichentypen. Wie kann dies vermieden werden? Benutzer können die Passwortrichtlinie direkt unter der lokalen Computerrichtlinie finden, um Vorgänge auszuführen. Lösungen, die nicht den Spezifikationen der Passwortrichtlinie entsprechen: Ändern Sie die Passwortlänge: Gemäß den Anforderungen der Passwortrichtlinie können wir versuchen, die Länge des Passworts zu erhöhen, indem wir beispielsweise das ursprüngliche 6-stellige Passwort in ein 8-stelliges oder längeres Passwort ändern. Sonderzeichen hinzufügen: Passwortrichtlinien erfordern häufig die Einbeziehung von Sonderzeichen wie @, #, $ usw. ICH

So betreten Sie das System, wenn Sie Ihr Win10-Computer-Einschaltkennwort vergessen haben_Was tun, wenn Sie Ihr Win10-Computer-Einschaltkennwort vergessen haben? So betreten Sie das System, wenn Sie Ihr Win10-Computer-Einschaltkennwort vergessen haben_Was tun, wenn Sie Ihr Win10-Computer-Einschaltkennwort vergessen haben? Mar 28, 2024 pm 02:35 PM

1. Laden Sie das Ein-Klick-Systemneuinstallationstool von Xiaobai herunter und installieren Sie es auf einem anderen Computer. Legen Sie eine leere USB-Festplatte ein, um eine USB-Startdiskette zu erstellen. Spezifische Anleitungen finden Sie unter: 2. Stecken Sie die USB-Startdiskette in den Computer, der geändert werden muss Geben Sie das Passwort für den Neustart ein und drücken Sie den Start-Hotkey. Im Allgemeinen ist der Start-Hotkey einer von F12, F8, F9, F10 und ESC. Dann erscheint die Startoberfläche. Wählen Sie die Option „U-Disk“ und drücken Sie zur Eingabe die Eingabetaste. 3. Wählen Sie [1], um win10x64PE zu starten, und drücken Sie zur Bestätigung die Eingabetaste. 4. Wählen Sie das Passwort-Änderungstool auf dem Desktop aus und doppelklicken Sie, um es zu öffnen. 5. Dann erscheint eine Liste mit Kontonamen. Wählen Sie das Konto aus, dessen Passwort geändert werden muss, und öffnen Sie es. 6. Klicken Sie unten auf den Befehl „Passwort ändern“, geben Sie das neue Passwort zweimal ein und klicken Sie dann auf „OK“, um die Änderungen zu speichern. 7. Ziehen Sie abschließend den USB-Stick ab und starten Sie den Computer neu. Dann ist alles normal.

See all articles