|
|
|
Bestanden opladen werkt niet |
|
|
|
|
|
Wanneer u bestanden zoals images wil opladen in uw php code moet u de directory waar de bestanden in komen te staan rechten 777 geven. Dit kan u doen via uw FTP programma.
|
|
|
|
|
Hoe verstuur ik HTML mail met PHP? |
|
|
|
|
|
Het versturen van HTML mail via php stelt strengere eisen dan text mails. De meest voorkomende fout is dat een deel van de headers in de mail zelf getoond worden.
Het tonen van de headers in de mail kan vier redenen hebben, gewoonlijk is het een combinatie van verschillende.
- De headers staan in de verkeerde volgorde.
- Er wordt \r\n gebruikt ipv \n aan het einde van regels.
- Er missen headers.
- Er wordt geen echt geldige mime mail gemaakt.
Dit voorbeeld maakt een echte MIME mail met een html deel en een text deel.
<?php
//add From: header and return-Path
$headers = "Return-Path: test@hieruwdomein.com\n";
$headers .= "From: test@hieruwdomein.com\n";
//specify MIME version 1.0
$headers .= "MIME-Version: 1.0\n";
//unique boundary
$boundary = uniqid("HTMLDEMO");
//tell e-mail client this e-mail contains//alternate versions
$headers .= "Content-Type: multipart/mixed; boundary = $boundary\n\n";
//plain text version of message
$body = "--$boundary\n" .
"Content-Type: text/plain; charset=ISO-8859-1\n" .
"Content-Transfer-Encoding: base64\n\n";
$body .= chunk_split(base64_encode("This is the plain text version!"));
//HTML version of message
$body .= "--$boundary\n" .
"Content-Type: text/html; charset=ISO-8859-1\n" .
"Content-Transfer-Encoding: base64\n\n";
$body .= chunk_split(base64_encode("This the <b>HTML</b> version!"));
//send message
if ( mail("test@hieruwdomein.com", "An HTML Message", $body, $headers)) {
echo "mail verzonden";
} else {
echo "FOUT mail NIET verzonden";
}
?>
Volgend voorbeeld is om hele simpele html mails mee te versturen maar let op: die zijn niet volgens de regels. Voor een exchange server bv heeft u bovenstaand voorbeeld nodig want die gebruikt een aparte container voor de headers en de body.
<?php
//add From: header and return-Path
$headers = "Return-Path: test@hieruwdomein.com\n";
$headers .= "From: test@hieruwdomein.com\n";
//specify MIME version 1.0
$headers .= "Content-Type: text/html; charset=ISO-8859-1\n";
$headers .= "MIME-Version: 1.0\n";
$body = "This the <b>HTML</b> version!";
//send message
if ( mail("test@hieruwdomein.com", "An HTML Message", $body, $headers)) {
echo "mail verzonden";
} else {
echo "FOUT mail NIET verzonden";
}
?>
|
|
|
|
|
Ik kan geen connectie maken met de database vanaf een andere computer |
|
|
|
|
|
Omwille van de veiligheid kan u enkel een connectie maken met uw database vanop de server waarop uw database is aangemaakt. Op uitdrukkelijk verzoek kunnen wij een database van buiten af bereikbaar maken. Wij hebben dan van u nodig:
- de naam van de database.
- de user waarmee u ingelogd op deze database.
Linulex wijst alle verantwoordelijkheid af indien iemand van buiten de server misbruik maakt van uw database. Het van buitenaf bereikbaar maken gebeurd volledig op eigen risico. |
|
|
|
|
Ik kan geen connectie maken met de database. |
|
|
|
|
|
Omwille van de veiligheid kan u enkel een connectie maken met uw database vanop de server zelf en vanaf "localhost". Dit is een speciale naam in de computerwereld die altijd wil zeggen "deze computer".
In php code maakt u connectie met uw database op volgende manier:
$link = mysql_connect("localhost", "user", "paswoord");
"user" en "paswoord" vervangt u door de gegevens die u heeft ingevuld tijdens het aanmaken van uw database. |
|
|
Zeker en vast.
PHP is momenteel de meestgebruikte Apache webserver module (43%) en de Apache webserver bedient meer dan 61% van alle webiste op het internet.
Er zijn meer webservers die PHP aanbieden dan Windows webservers en dus servers die ASP kunnen aanbieden.
PHP is door haar structuur uiterst krachtig en door haar syntax eenvoudig aan te leren en dus een ideale taal voor zowel beginner als gevorderde.
De middelen om database koppelingen te maken zijn rechtstreeks in het hart van PHP geprogrammeerd en dat maakt PHP/Mysql een gouden combinatie.
|
|
|
|
|
Kan ik gevoelige bestanden beveiligen? |
|
|
|
|
|
Dat kan
Om ervoor te zorgen dat gevoelige bestanden, bv includes met MySQL paswoorden, nooit in de browser zichtbaar worden plaatst u deze best in een beveiligde directory.
U kan beveiligde directories aanmaken via de plesk interface.
In de Plesk online interface vindt u een knop "Directories".
Druk op deze knop en volg dan de online instructies voor het aanmaken van een beveiligde directory. |
|
|
|
|
Mijn script werkt niet met safe mode aan, wat nu? |
|
|
|
|
|
De safe mode functie is verwijderd sinds php 5.4.0
Wanneer uw script niet werkt met safe mode aan kan u ons een mailtje sturen met de vraag het af te zetten voor uw site. Wij hebben dan nodig:
- De website waarop safe mode af moet gezet worden
- De naam van het script
- De reden waarom safe mode moet afstaan
- Uw akkoord met de voorwaarden om safe mode uit te schakelen zoals hier beschreven
Indien het een niet zelf gemaakt script is bent u verplicht het te updaten zodra de makers van het script een nieuwe versie uitbrengen om een veiligheidslek te dichten.
Indien het een zelf gemaakt script is bent u verplicht het te updaten zodra er een veiligheidslek bekend is in de door u gebruikte programmeer methode. Wat vandaag veilig is kan morgen onveilig zijn.
Linulex voert op regelmatige tijdstippen scans uit van de servers ten einde de veiligheid en de bereikbaarheid te kunnen blijven garanderen. Wanneer wij merken dat u een onveilige versie van een script op uw site heeft zullen wij safe mode meteen terug aanzetten. Door 1 onveilig script kan een server gehacked worden en dat is niet eerlijk tegenover de andere klanten die de server met u delen.
Open_basedir wordt nooit afgezet.
WAARSCHUWING
Indien er op een server wordt ingebroken en de logs tonen duidelijk aan dat de inbreuk via uw website is gebeurd en betrekking heeft op de safe mode bent u verantwoordelijk voor de kosten die dit met zich meebrengt.
|
|
|
www.php.net
www.zend.com
mariadb.org
|
|
|
PHP Editors en software lijst
Hier vindt u de editors die wij aanraden:
Linulex software pagina |
|
|
De handleiding van php staat hier
www.php.net
|
|
|
www.hotscripts.com |
|
|
|
|
php setting aanpassen: Hoe verberg ik php errors? |
|
|
|
|
|
Wij stellen de php.ini zo in dat php errors niet te zien zijn. Deze instelling kan via plesk aangepast worden zodat alle errors wel te zien zijn. Dat is handig tijdens het debuggen maar ongewenst wanneer een website life is.
PHP heeft een eigen systeem om errors te onderdrukken als dat nodig is. U plaatst @ voor de functie om een error te onderdrukken.
bv $link = mysqli_connect("localhost","my_user","my_password","my_db");
wordt dan
$link = @mysqli_connect("localhost","my_user","my_password","my_db");
|
|
|
|
|
php setting aanpassen: magic_quotes_gpc aanzetten |
|
|
|
|
|
Sommige oudere scripts kunnen eisen dat magic_quotes_gpc aan staan in plaats van uit. Voor de algemene veiligheid is het echter aan te raden dat deze uit staan.
Indien het echt noodzakelijk is voor uw script dat deze aanstaan kan u deze zelf aanzetten via een .htaccess file. In dit file zet u de lijn:
php_flag magic_quotes_gpc On
Het .htaccess file werkt voor de map waar het in staat en alle onderliggende mappen. |
|
|
|
|
php setting aanpassen: register_globals aanzetten |
|
|
|
|
|
Sommige oudere scripts kunnen eisen dat register_globals aan staan in plaats van uit. Voor de algemene veiligheid is het echter aan te raden dat deze uit staan.
Indien het echt noodzakelijk is voor uw script dat deze aanstaan kan u deze zelf aanzetten via een .htaccess file. In dit file zet u de lijn:
php_flag register_globals On
Het .htaccess file werkt voor de map waar het in staat en alle onderliggende mappen.
Deze functie is verwijderd sinds php 5.4.0
Meer informatie over register_globals op https://php.net/manual/en/security.globals.php |
|
|
|
|
php setting aanpassen: session.save_path. Waar staan de php de sessie bestanden? |
|
|
|
|
|
De variabele session.save_path wijst standaard naar de algemene map /tmp.
Er kunnen scripts zijn die met deze instelling problemen hebben of dit niet toestaan. Wanneer sessie bestanden in een openbaar bereikbare map staan is er ook de mogelijkheid dat andere scripts uw sessie kunnen kidnappen. Ook bekend als session hijacking.
U kan het session.save_path aanpassen via een .htaccess file. In dit file zet u de lijn:
php_value session.save_path /var/www/vhosts/domein.xxx/httpdocs/directory
Waar u domein.xxx aanpast in de gewenste domeinnaam.
Waar u directory aanpast in de map die u hiervoor heeft voorzien.
Het .htaccess file werkt voor de map waar het in staat en alle onderliggende mappen. |
|
|
|
|
php setting max_input_vars ( max input vars ) |
|
|
|
|
|
De variabele max_input_vars is nieuw sinds php 5.3.9 en staat bij Linulex standaard op 20000. |
|
|
|
|
Wat is de veiligheidsinstelling van PHP? |
|
|
|
|
|
Linulex maakt gebruik van open_basedir.
open_basedir zorgt ervoor dat u enkel bestanden kan openen die zich in uw eigen directories bevinden. Dit telt voor alle accounts en geeft u ook de zekerheid dat iemand anders op onze servers nooit bestanden kan inlezen die in uw directory staan.
U heeft ook toegang tot de /tmp directory van het systeem.
|
|
|
|
|
Wat is het pad naar curl? |
|
|
|
|
|
Wanneer u scripts curl gebruiken moet u soms het hardwarepad naar curl opgeven.
Gebruik hiervoor:
/usr/bin/curl
|
|