PHP (algemeen)

Uit De Vliegende Brigade
Naar navigatie springen Naar zoeken springen
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Commentaarregels

<?php
echo "Hello World!";   // Dit is een commentaarregel
echo "Hello World!";   # Dit is ook een commentaarregel

/*
Dit zijn ook commentaarregels
*/

/*
 * Dit zijn ook commentaarregels. Ik denk dat het een 
 * conventie is, om de regels van sterretjes te voorzien.
 * Ik houd niet van binaire commentaar-tekens. Het is
 * bij uitstek iets wat ik bij HTML irritant vind,
 * omdat je commentaarregels daardoor niet kunt nesten.
 */

#######################################################
# Dit is een heading
#######################################################
#
# En dit is een subheading
##############################
#
# * De heading is hier 55 tekens breed. Da's de breedte
#   van Sublime Editor op m'n (relatief kleine)
#   1024x?-scherm op kantoor
# * De subheading is hier zo'n 30 tekens breed.
#   Als-ie maar flink korter is dan die van de 
#   header, zodat ik de hierarchie goed kan zien.
#
echo "Hello, world!"
?>

E-mail versturen

Bestand:PHPEmail.png
Middels phpinfo() kun je zien of er een mailserver is geconfigureerd

Om vanuit PHP e-mail te versturen, heb je in ieder geval de volgende issues:

  • Er moet een mailserver geconfigureerd zijn. Dat kun je via phpinfo() testen;
  • Veel ontvangende mail-servers doen een soort reverse lookup om te verifiëren dat de verzendende mailserver ook echt bestaat.

Er is ook een andere manier: Vergelijkbaar met nail (ipv. mail) kun je een externe SMTP-server specificeren. Dat vind ik eigenlijk veel logischer. De locale server functioneert dan als een gewone e-mailclient.

1. Controleer phpinfo()

Maak een testbestand aan met extentie .php, bv. phpinfo.php:

<?php
	phpinfo();
?>

2. Test-email

Bv.:

<?php
	$Message="Dit is de body";
	$Topic="Onderwerp";

	mail('info@example.com', $Topic, $Message);
?>

Bron: http://php.net/manual/en/function.mail.php

Fatal error: Allowed memory size ... exhausted

Complete foutmelding:

Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 8 bytes) 
in /var/www/MySite/sites/default/modules/views/modules/views_user.inc on line 102

Waarschijnlijk wordt dit verzoorzaakt door een PHP-geheugenlimiet. Het genoemde getal twee keer gedeeld door 1024, geeft namelijk 16 MB, een veelvoorkomende limiet.

In /etc/php5/apache2/php.ini de volgende regel als volgt aangepast:

memory_limit = 64M      ; Maximum amount of memory a script may consume (16MB)

Herstart vervolgens Apache, zodat de aangepaste instellingen van kracht worden.

Fatal error: Maximum execution time exceeded

Complete foutmelding:

Fatal error: Maximum execution time of 30 seconds exceeded in 
/var/www/MySite/sites/default/modules/backup_migrate/backup_migrate.module on line 1178

Het betreffende gebied in php.ini:

;;;;;;;;;;;;;;;;;;;
; Resource Limits ;
;;;;;;;;;;;;;;;;;;;

max_execution_time = 30     ; Maximum execution time of each script, in seconds
max_input_time = 60 ; Maximum amount of time each script may spend parsing request data
;max_input_nesting_level = 64 ; Maximum input variable nesting level
memory_limit = 256M      ; Maximum amount of memory a script may consume (16MB)

Het gaat hierbij om de eerste regel.

Server-bestanden

Server-bestanden met zowel HTML als PHP, moeten de extensie .php hebben.

Bronnen