Tutorials >
PHP >
Websites maken met Zend Framework: deel 5/5
|
Gepost op: 13 augustus 2007 - 13:55 |
|
|
|
PHP expert
|
En een heel mooie einde . Maar ik vind, blijf maar komen met die tutorials want daar leer ik (persoonlijk) meer van dan een 200 pagina's tellende handleiding door te bladeren (printen is beetje veel werk ) |
|
|
|
Gepost op: 13 augustus 2007 - 16:46 |
|
|
|
PHP expert
|
Ik heb de handleiding van versie 0.7 afgedrukt grotendeels Er staan nog een paar dingen op het programma hoor. Een login maken oa met Zend_ACL en Zend_Auh. |
|
|
|
Gepost op: 16 augustus 2007 - 15:17 |
|
|
|
Nieuw lid
|
In de IndexController zit een klein foutje. Er wordt ook een mail verstuurd als deze niet valid is!
Dit moet worden:
//setFrom only when email is valid!
$email = $this->_request->getPost('email');
if( $validEmail->isValid( $email ) ) {
$mail->setFrom( $email , $this->_request->getPost('naam') );
//mail conifgureren
$mail->addTo( 'stijnleenknegt@gmail.com' , 'Stijn Leenknegt' );
$mail->setSubject('Contactpagina portfolio');
if( $mail->send() ) {
$this->view->succes = true;
}
} else {
$this->view->validError = $validEmail->getMessages();
}
//setFrom only when email is valid! $email = $this->_request->getPost('email'); if( $validEmail->isValid( $email ) ) { $mail->setFrom( $email , $this->_request->getPost('naam') ); //mail conifgureren $mail->addTo( 'stijnleenknegt@gmail.com' , 'Stijn Leenknegt' ); $mail->setSubject('Contactpagina portfolio'); if( $mail->send() ) { $this->view->succes = true; } } else { $this->view->validError = $validEmail->getMessages(); }
|
|
|
|
Gepost op: 16 augustus 2007 - 16:48 |
|
|
|
PHP expert
|
Inderdaad, maar een from header is niet required om een mail te sturen. Dus daarom laat ik hem versturen zonder from header als de email niet valid is. Maar jou versie is ook goed natuurlijk |
|
|
|
Gepost op: 16 augustus 2007 - 23:09 |
|
|
|
Nieuw lid
|
Wanneer mogen we de tutorial over Zend_Auth ism Zend_Acl verwachten? |
|
|
|
Gepost op: 31 augustus 2007 - 11:01 |
|
|
|
HTML beginner
|
Goeie tutorials !
Ondertussen ben ik overtuigd geraakt van de ZF.
Vraag: je script is toch nog altijd onveilig voor SqlInjections ? Je voegt nergens slashes toe. Bestaat er dan geen 'real_escape'-filter ofzo ? |
|
|
|
Gepost op: 31 augustus 2007 - 18:27 |
|
|
|
PHP expert
|
Dit staat standaard niet aan. Maar als je quotes wilt escapen moet je volgende code gebruiken in je controllers:
$projects = new Projects();
$db = $projects->getAdapter(); //de adapter terug vragen van de model.
//data
$data = array(
'titel' => $db->quote( $this->_request->getPost('titel') ),
'omschrijving' => $db->quote( $this->_request->getPost('omschrijving') ),
'status' => $this->_request->getPost('status')
);
//updaten
$projects->update( $data , 'id = ' . (int) $this->_request->getParam('id') );
$projects = new Projects(); $db = $projects->getAdapter(); //de adapter terug vragen van de model. //data 'titel' => $db->quote( $this->_request->getPost('titel') ), 'omschrijving' => $db->quote( $this->_request->getPost('omschrijving') ), 'status' => $this->_request->getPost('status') ); //updaten $projects->update( $data , 'id = ' . (int) $this->_request->getParam('id') );
De functie quote zal de quotes escapen. |
|
|
|
Gepost op: 01 september 2007 - 09:54 |
|
|
|
HTML beginner
|
Bedankt. Je kan natuurlijk ook je filter wat uitbreiden:
$filter->addFilter( new Zend_Filter_HtmlEntities(ENT_QUOTES) );
$filter->addFilter( new Zend_Filter_HtmlEntities(ENT_QUOTES) );
Heel eenvoudig, je voegt de ENT_QUOTES mee als quotestyle. Nu worden alle " en ' geconverteerd. Stripslashes zijn dan in principe overbodig. |
|
|
|
Gepost op: 01 september 2007 - 13:03 |
|
|
|
PHP expert
|
Inderdaad, je kan ook htmlentities gebruiken zoals zamna hierboven aantoont maar je moet ENT_QUOTES niet meegeven als parameter want als je htmlentities gebruikt worden de quotes automatisch geconverteerd naar entities. |
|
|
|
Gepost op: 01 september 2007 - 13:44 |
|
|
|
HTML beginner
|
Ik denk dat je ENT_QUOTES wél moet meegeven. Standaard gebruikt htmlentities namelijk ENT_COMPAT, hiermee worden enkele dubbele quotes geconverteeerd. Enkele quotes blijven dus gevaarlijk. |
|
|
|
Gepost op: 25 september 2007 - 22:16 |
|
|
|
Nieuw lid
|
Prima tutorial die me goed op weg heeft geholpen.
Wat ik zoek is een elegante manier om vaste items weer te geven zoals menu's etc.
De dynamische dingen gaan via een controller maar het integreren van menus en zo is in mijn ogen een beetje rommelen.
Heeft iemand een goed voorbeeld van hoe ik dit het beste kan doen?
Groetjes,
Peter |
|
|
|
Gepost op: 25 september 2007 - 23:21 |
|
|
|
PHP expert
|
Je kan een menu.phtml maken waarin je jou menu maakt in HTML. Je kan die dan naast header.phtml zetten en in je views dan renderen . |
|
|
|
Gepost op: 26 september 2007 - 10:40 |
|
|
|
Nieuw lid
|
Dat heb ik ook zo gedaan maar vind dit geen elegante methode.
Je moet dan voor elke controller/action de menu.phtml includen om te renderen.
|
|
|
|
Gepost op: 26 september 2007 - 14:13 |
|
|
|
PHP expert
|
Het is gewoon $this->render('menu.phtml'); plaatsen in je view pagina... Je kan het ook in je header.phtml zetten zodat wanneer header.phtml gerendert wordt, wordt ook menu.pthml gerendert en moet je het geen X aantal keer schrijven. |
|
|
|
Gepost op: 01 november 2007 - 09:14 |
|
|
|
Moderator
|
Ik weet weinig nog van frameworks, maar ben dus begonnen met zend om mvc te leren snappen. Ik moet eerlijk toegeven dat ik nog wel lastig vind, omdat het toch totaal anders werkt en ik de handleiding van hen ook niet echt gemakkelijk vind.
Maar deze 5 (eigenlijk 6 met sessions erbij) vind ik goed te begrijpen. Dat heb je heel goed gedaan Stijn.
Ik ga ook maar eens spelen hiermee, lijkt mij leuk. |
|
|
|
Gepost op: 12 november 2007 - 20:28 |
|
|
|
PHP beginner
|
Ik heb al verschillende tutorials gelezen i.v.m. het Zend Framework maar deze steekt er echt bovenuit qua kwaliteit! Proficiat en bedankt!
Oja, die tutorial over Zend_Auth mag er ook gerust komen |
|
|
|
Gepost op: 12 november 2008 - 23:23 |
|
|
|
Nieuw lid
|
Zeer nuttige tutorials.. Aanrader voor iedereen die Zend wil leren.. |
|
|
|
Gepost op: 16 december 2013 - 20:13 |
|
|
|
Moderator
|
Als je via WAMP/XAMPP (je eigen testserver) mail wilt versturen, zou je kunnen proberen dit via je ISP te doen. Je maakt hierbij dus gebruik van de SMTP-server van je provider. Dit werkt waarschijnlijk alleen als je via je eigen ISP verbonden bent met het internet, houd hier rekening mee!
In ZF is dit vrij simpel (geteste versie: 1.12.3) met behulp van de toevoeging van een SMTP transport verzendwijze:
<?php
// stel je mail samen zoals in het contact formulier
$mail = new Zend_Mail();
// ...
// definieer extra informatie over hoe deze verstuurd zou moeten worden
Zend_Loader::loadClass('Zend_Mail_Transport_Smtp');
$transport = new Zend_Mail_Transport_Smtp('<smtp server van je provider>', array(
// GEEN SSL-key meegeven als je provider hier geen gebruik van maakt!
'port' => <poort van SMTP server>,
'auth' => '<het type authorisatie, meestal "login">',
'username' => '<jouw username voor de SMTP server>',
'password' => '<jouw wachtwoord voor de SMTP server>',
));
// en verstuur vervolgens je mail via deze verzendwijze:
$success = $mail->send($transport);
?>
<?php // stel je mail samen zoals in het contact formulier $mail = new Zend_Mail(); // ... // definieer extra informatie over hoe deze verstuurd zou moeten worden Zend_Loader::loadClass('Zend_Mail_Transport_Smtp'); $transport = new Zend_Mail_Transport_Smtp ('<smtp server van je provider>', array( // GEEN SSL-key meegeven als je provider hier geen gebruik van maakt! 'port' => <poort van SMTP server>, 'auth' => '<het type authorisatie, meestal "login">', 'username' => '<jouw username voor de SMTP server>', 'password' => '<jouw wachtwoord voor de SMTP server>', )); // en verstuur vervolgens je mail via deze verzendwijze: $success = $mail->send($transport); ?>
Ik was eerst op zoek naar een methode om WAMP zodanig aan te passen zodat je standaard vanuit WAMP kunt mailen via je ISP, en heb dit geprobeerd via een of andere executable (fake SMTP o.i.d.) maar dit kreeg ik niet aan de praat. Als je dan toch van ZF gebruik maakt (je zou er ook voor kunnen kiezen enkel deze classes te gebruiken voor je mail, je hebt hier niet heel het framework/heel de library voor nodig) bied(en) deze klasse(s) uitkomst, ik was eerlijk gezegd verbaasd over hoe makkelijk dit was, zonder te zitten prutten in allerlei WAMP configuratie. |
|
|
Enkel aanvullende informatie is welkom. Geen prijzende of afkeurende reacties. |
|
|
|