webForumDet fria alternativet

Ny på PHP????

16 svar · 523 visningar · startad av huskyboy

huskyboyMedlem sedan dec. 2002175 inlägg
#1

Jag tänkte prova några script från phpsidan.nu men det vill sig inte.
Jag har laddat ner 4 olika mailscript för att prova men det blir något felmeddelande på alla.
Är det något särskillt jag måste göra?
Jag har provat på både mitt webhotell, som visserligen kör windows men har phpstöd, och lokalt med en apache server med php.
Det kan väl inte vara fel på alla scripten.
Det är dessa scripten:
http://www.phpsidan.nu/zipexplorer.php?cd=/fastmail.zip
http://www.phpsidan.nu/zipexplorer.php?cd=/kontakt_via_email.zip
http://www.phpsidan.nu/zipexplorer.php?cd=/mail_php.zip
http://www.phpsidan.nu/zipexplorer.php?cd=/mailscript.zip

Man kan kolla koden där.

huskyboyMedlem sedan dec. 2002175 inlägg
#2

Har testat något annat script nu med samma resultat.
Det kommer upp något om undefined index.
???

MatteMedlem sedan aug. 20002 975 inlägg
#3

Jag ser två saker med de skripten.

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.

huskyboyMedlem sedan dec. 2002175 inlägg
#4

Jag har laddat upp "fastmail" på mitt webhotell men det fungerar inte där heller.
Kolla på http://www.hjwebb.com/fastmail/mail.php
Det är alltså detta scriptet:
http://www.phpsidan.nu/zipexplorer.php?cd=/fastmail.zip

@ndersMedlem sedan juni 200032 969 inlägg
#5

Passa då på att läsa Mattes inlägg igen.

huskyboyMedlem sedan dec. 2002175 inlägg
#6

Nu kan jag ju inget om php men det scriptet har väl som han skrev: $_POST['namn'].
Eller har jag förstått fel?

@ndersMedlem sedan juni 200032 969 inlägg
#7

Det ser inte ut som isset() används för att kontrollera att variablerna är satta?

Det är det Matte nämner i punkt 1.

huskyboyMedlem sedan dec. 2002175 inlägg
#8

Du har inte lust att skriva hur det ska se ut?

@ndersMedlem sedan juni 200032 969 inlägg
#9

Jag kan inte heller PHP, så jag får gissa.

<? 
if (isset($_GET['send']) && $_GET['send'] == "true") {    mail($_POST['email_to'],$_POST['topic'],$_POST['msg'], "From: ".$_POST['email']); 
    header("Location: mail.php?done=true"); 
} 
?> 

...

<? if (isset($_GET['done']) && $_GET['done'] == "true") { echo "<b>Skickat!</B>"; } ?>
huskyboyMedlem sedan dec. 2002175 inlägg
#10

Tack, jag ska prova.

huskyboyMedlem sedan dec. 2002175 inlägg
#11

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?

@ndersMedlem sedan juni 200032 969 inlägg
#12

Felmeddelande 1 beror på att SMTP-servern inte vill skicka till externa adresser (tolkar jag det som), och fel två är ett följdfel.

huskyboyMedlem sedan dec. 2002175 inlägg
#13

Okej, tack.
Då får jag höra med webhotellet.

Än en gång, tack för hjälpen

huskyboyMedlem sedan dec. 2002175 inlägg
#14

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

mail("dinmail@något.com", "Meddelande från hemsidan", "$namn\n$email\n$text", "From: Kontaktskript@domain.com\r\n");
?>

Mycket tacksam för hjälp

MatteMedlem sedan aug. 20002 975 inlägg
#15

Använd gärna PHP-taggar för din kod.

<?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.

huskyboyMedlem sedan dec. 2002175 inlägg
#16

Tack så mycket för hjälpen.

addewebMedlem sedan jan. 2004216 inlägg
#17

Gjorde fel. Måste vara ny tråd. Varit borta för länge.

134 ms totalt · 3 externa anrop · v20260731065814-full.0e50b1ef
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)