1.
Det är i PHP tillåtet att använda varibler utan att definiera dom först, men det är inte att rekommendera. Därför sänder PHP ut en notis.
Många webbservrar har PHP inställt på att inte visa notiser. Därför syns inte dessa hos dom som gjort skripten, och skripten fungerar, men är enligt mitt synsätt fulkodade.
I dessa fall är det enklast att kolla med isset() om en variabel är satt innan man använder den, typ:
if (isset($_GET['send']) && $_GET['send'] == "true") {
2.
Standardinställningen i PHP är numera register_globals satt till Off (ej satt). Några av skripten fungerar endast på servrar med register_globals satt till On (är satt).
Är register_globals satt så kan man komma åt POST-variabler (m.m.) med $namn.
Är register_globals däremot inte satt så finns inte variabeln $namn, men däremot finns vid bägge inställningarna variabeln $_POST['namn'].
Sammanfattning:
Skripten kommer sannolikt att fungera på de flesta webbhotell, då de har register_globals satt, och visning av notiser bortkopplat.
Men lär dig ändå att koda så att dina skript fungerar då register_globals är Off, och så att du inte får några notiser. Detta kommer du att ha nytta av längre fram.
Nu fungerade det lokalt på min dator men inte på webhotellet.
Det ser bra ut på förstasidan men det blir ett felmeddelande när man skickar.
Jag får väl kontakta webhotellet och höra.
Är det någon som har lust att skicka och prova för att se felmeddelandet och se om det är webhotellet?
Jag har nu fått rätt på två av scripten men är det någon som kan hjälpa mig med dom två sista?
Hu blir koden på dessa två?
<?PHP
$mail = mail("$email", "$rubrik", "
Din polare $namn har skickat ett mail!
Det som $namn har skrivit:
$meddelande
");
if(isset($mail)){
echo "<CENTER>Ditt mail skickades lika snabbt som blixten till $email.</CENTER>";
}else{
echo "<CENTER>Något fel har hänt...</CENTER>";
}
?>
OCH
<?
if (!$namn) {
header ("Location: mail.php");
die();
}
if (!$email) {
header ("Location: mail.php");
die();
}
if (!$text) {
header ("Location: mail.php");
die();
}
#KOMMENTARER!
#Här ändrar du vilken mail mailet skall komma till, ändra också Subjectet,vart mailet kommer #ifrån skall du också ändra
<?PHP
$mail = mail($_POST['email'], $_POST['rubrik'], "
Din polare {$_POST['namn']} har skickat ett mail!
Det som ".$_POST['namn']." har skrivit:
{$_POST['meddelande']}
");
if($mail){
echo "<CENTER>Ditt mail skickades lika snabbt som blixten till {$_POST['email']}.</CENTER>";
}else{
echo "<CENTER>Något fel har hänt...</CENTER>";
}
?>
<?
if (empty($_POST['namn'])) {
header ("Location: mail.php");
die();
}
if (empty($_POST['email'])) {
header ("Location: mail.php");
die();
}
if (empty($_POST['text'])) {
header ("Location: mail.php");
die();
}
#KOMMENTARER!
#Här ändrar du vilken mail mailet skall komma till, ändra också Subjectet,vart mailet kommer #ifrån skall du också ändra
mail("dinmail@något.com", "Meddelande från hemsidan", $_POST['namn']."\n".$_POST['email']."\n".$_POST['text'], "F rom: Kontaktskript@domain.com\r\n");
?>
Jag fick lägga till ett mellanslag efter F-et i From annars ändrades koden av forumet. Tag bort det mellanslaget.