karla hosting

PHP

Version och inställningar

Klicka på Select PHP Version i kontrollpanelen under Extra features.

Om det är nödvändigt för att åstadkomma kompabilitet, så kan du ändra PHP -version. Det kan också hända att du måste försäkra dig om att de moduler ditt PHP -skript använder är aktiverade. Du kan göra dessa justeringar i PHP -selectorn.




Du har också möjlighet att tweaka lite andra parametrar under options, t.ex. maximal storlek på en fil som ska kunna tankas upp med ett php -skript.



Vad är PHP ?

PHP är ett skript som körs på serversidan. Istället för att koden till webbsidan levereras av en statisk HTML -sida, så ger PHP dig möjligheten att dynamiskt skapa HTML -koden för webbsidan. Vi kan t.ex. generera besöksstatistik på karlahosting dynamiskt. Nedan är senaste 30 dagarnas unika besök.



PHP kan också användas till andra praktiska saker, t.ex. leverera ett svar på ett AJAX -anrop eller t.ex. ta emot data från ett formulär.



Alla webbsidor som innehåller PHP -kod skall ges ändelsen .php. Då kommer webbservern se till att PHP -koden interpreteras på sidan innan webbsidan publiceras. Dessa PHP -filer ska inte ges någon speciell rättighet utan har samma filrättigheter som andra HTML -filer.

<?php
echo 'a= ' . $_GET["a"];
echo 'b= ' . $_GET["b"];
?>

Om vi sparar ovanstående 4 rader kod i en fil vi kallar phptest_1.php så får vi följande resultat: phptest_1.php?a=45&b=67



Exempel på PHP som använder GD -biblioteket

Av ovanstående bibliotek, så är t.ex. GD ett bibliotek för att procudera enkel grafik.

<?php

/*
 * Chart data
 */

$data = [
    'Jan' => 103,
    'Feb' => 24,
    'Mar' => 44,
    'Apr' => 14,
    'May' => 89,
    'Jun' => 147,
    'Jul' => 181,
    'Aug' => 172,
    'Sep' => 52,
    'Oct' => 106,
    'Nov' => 121,
    'Dec' => 76,
];

/*
 * Chart settings and create image
 */

// Image dimensions
$imageWidth = 700;
$imageHeight = 400;

// Grid dimensions and placement within image
$gridTop = 40;
$gridLeft = 50;
$gridBottom = 340;
$gridRight = 650;
$gridHeight = $gridBottom - $gridTop;
$gridWidth = $gridRight - $gridLeft;

// Bar and line width
$lineWidth = 1;
$barWidth = 20;

// Font settings
$font = 'OpenSans-Regular.ttf';
$fontSize = 10;

// Margin between label and axis
$labelMargin = 8;

// Max value on y-axis
$yMaxValue = 200;

// Distance between grid lines on y-axis
$yLabelSpan = 40;

// Init image
$chart = imagecreate($imageWidth, $imageHeight);

// Setup colors
$backgroundColor = imagecolorallocate($chart, 255, 255, 255);
$axisColor = imagecolorallocate($chart, 85, 85, 85);
$labelColor = $axisColor;
$gridColor = imagecolorallocate($chart, 212, 212, 212);
$barColor = imagecolorallocate($chart, 47, 133, 217);

imagefill($chart, 0, 0, $backgroundColor);

imagesetthickness($chart, $lineWidth);

/*
 * Print grid lines bottom up
 */

for($i = 0; $i <= $yMaxValue; $i += $yLabelSpan) {
    $y = $gridBottom - $i * $gridHeight / $yMaxValue;

    // draw the line
    imageline($chart, $gridLeft, $y, $gridRight, $y, $gridColor);

    // draw right aligned label
    $labelBox = imagettfbbox($fontSize, 0, $font, strval($i));
    $labelWidth = $labelBox[4] - $labelBox[0];

    $labelX = $gridLeft - $labelWidth - $labelMargin;
    $labelY = $y + $fontSize / 2;

    imagettftext($chart, $fontSize, 0, $labelX, $labelY, $labelColor, $font, strval($i));
}

/*
 * Draw x- and y-axis
 */

imageline($chart, $gridLeft, $gridTop, $gridLeft, $gridBottom, $axisColor);
imageline($chart, $gridLeft, $gridBottom, $gridRight, $gridBottom, $axisColor);

/*
 * Draw the bars with labels
 */

$barSpacing = $gridWidth / count($data);
$itemX = $gridLeft + $barSpacing / 2;

foreach($data as $key => $value) {
    // Draw the bar
    $x1 = $itemX - $barWidth / 2;
    $y1 = $gridBottom - $value / $yMaxValue * $gridHeight;
    $x2 = $itemX + $barWidth / 2;
    $y2 = $gridBottom - 1;

    imagefilledrectangle($chart, $x1, $y1, $x2, $y2, $barColor);

    // Draw the label
    $labelBox = imagettfbbox($fontSize, 0, $font, $key);
    $labelWidth = $labelBox[4] - $labelBox[0];

    $labelX = $itemX - $labelWidth / 2;
    $labelY = $gridBottom + $labelMargin + $fontSize;

    imagettftext($chart, $fontSize, 0, $labelX, $labelY, $labelColor, $font, $key);

    $itemX += $barSpacing;
}

/*
 * Output image to browser
 */

header('Content-Type: image/png');
imagepng($chart);
?>

Om vi sparar ovan kod i en fil som vi döper till gdchart.php, så ser det ut såhär: Exemplet ovan på en egen sida.

Formulär

Här följer ett formulärskript i PHP som du kan använda.

Du kanske gillar ett formulär på din hemsida för en enkel kontaktfunktion. Det kan se ut såhär.

Ärende

Text

Epostadress




HTML -Koden för detta formulär ser ut som nedan.

<form action="postmail.php" method="POST">

<b>Ärende</b><br/>
<select class="select" name="subjekt">
<option>Uppmuntran</option>
<option>Klagomål</option>
</select>
<br/>

<b>Text</b><br/>
<textarea name="text" style="height:200px;width:100%;">
</textarea>
<br/>

<b>Epostadress</b><br/>
<input type="edit" name="epost" style="width:250px;">
<br/><br/>

<input type="submit" value="Skicka"/>

</form>

När vi postar detta kommer postmail.php anropas tillsammans med alla fält som har name -variabel innanför form-taggen.


<?php
$sendformto = 'dinepost@dindoman.se';
$returnpage = 'http://dindoman.se';

if(isset($_POST['submit']))
{
	$subjekt = htmlspecialchars(stripslashes(trim($_POST['subjekt'])));
	$text = htmlspecialchars(stripslashes(trim($_POST['text'])));
	$epost = htmlspecialchars(stripslashes(trim($_POST['epost'])));
	if(preg_match("/^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/", $epost) 
	&& strlen($text) != 0)
	{
		$message = "Formulär från: ".$epost."\n\n";		
		$message = $message.$text;
		$message = wordwrap($message,70);  
		mail($sendformto, "Formulär ".$subjekt, $message);
		header('Location: '.$returnpage);
		exit;
	}
	
	echo $subjekt."<br/>";
	echo $text."<br/>";
	echo $epost."<br/>";
}
?>