Avatar billede fowler21 Nybegynder
08. august 2005 - 23:14 Der er 18 kommentarer og
1 løsning

Mailform, virker på den ene server og ikke på den anden

Jeg har hentet et php script : Mailform
Problemet er at det virker fint på en Unoeuro.com server mens det ikke virker på en B-One.dk server. Hvad er der galt

Koden er her :

<!-- Copyright © 2002 Kali (http://www.xentrik.net) -->

<html>
<head>
<title>Kali's PHP Contact Form</title>

<?php
// COPYRIGHT/LIABILITY NOTICE
// Copyright © 2002 Kali (http://www.xentrik.net)
// Last modified 04/05/2004

// Kali's Contact Form may be used and modified free of charge as long as this
// copyright notice and the comments above remain intact. By using this code
// you agree to indemnify Kali from any liability that might arise from its use.

// Selling the code for this program without prior written consent is not permitted.
// Permission must be obtained before redistributing this software. In all cases the
// copyright and header information must remain intact.

// MODIFY THE FOLLOWING SECTION

// your name
$recipientname = "Mitnavn";

// your email
$recipientemail = "Min@Email.dk";

// subject of the email sent to you
$subject = "Online-Form Response for $recipientname";

// send an autoresponse to the user?
$autoresponse = "yes";

// subject of autoresponse
$autosubject = "Thank you for your mail!";

// autoresponse message
$automessage = "This is an auto response to let you know that we've successfully received your email sent through our email form. Thanks! We'll get back to you shortly.";

// thankyou displayed after the user clicks "submit"
$thanks = "Thank you for contacting us.<br>We will get back to you as soon as possible.<br>";

// END OF NECESSARY MODIFICATIONS

?>

<style type="text/css"><!--
td,body,input,textarea {
        font-size:12px;
        font-family:Verdana,Arial,Helvetica,sans-serif;
        color:#000000}
--></style>
</head>
<body>

<table width="100%" height="100%"><tr>
<td valign="top"><font face="Verdana,Arial,Helvetica" size="2">

<?php
if($_POST['submitform']) {

$Name = $HTTP_POST_VARS['Name'];
$Email = $HTTP_POST_VARS['Email'];
$Comments = $HTTP_POST_VARS['Comments'];

// check required fields
$dcheck = explode(",",$require);
while(list($check) = each($dcheck)) {
if(!$$dcheck[$check]) {
$error .= "Missing $dcheck[$check]<br>";
}
}

// check email address
if ((!ereg(".+\@.+\..+", $Email)) || (!ereg("^[a-zA-Z0-9_@.-]+$", $Email))){
$error .= "Invalid email address<br>";}

// display errors
if($error) {
?>

<b>Fejl</b><br>
<?php echo $error; ?><br>
<a href="#" onClick="history.go(-1)">try again</a>


<?php
}
else
{

$browser = $HTTP_USER_AGENT;
$ip = $REMOTE_ADDR;

// format message
$message = "Online-Form Response for $recipientname:

Name: $Name
Email: $Email

Comments: $Comments

-----------------------------

Browser: $browser
User IP: $ip";

// send mail and print success message
mail($recipientemail,"$subject","$message","From: $Name <$Email>");

if($autoresponse == "yes") {
$autosubject = stripslashes($autosubject);
$automessage = stripslashes($automessage);
mail($Email,"$autosubject","$automessage","From: $recipientname <$recipientemail>");
}

echo "$thanks";
}
}
else {
?>

<form name="contactform" action="<?php echo $PHP_SELF; ?>" method="post">
<input type="hidden" name="require" value="Name,Email,Comments">
<table><tr>
<td colspan="2" align="center"><b><font size="2" face="Verdana,Arial,Helvetica">Kontakt</font></b>  <p></td>
</tr><tr>
<td valign="top" align="right">Name:</td>
<td valign="top"><input name="Name" size="25"></td>
</tr><tr>
<td valign="top" align="right">E-mail:</td>
<td valign="top"><input name="Email" size="25"></td>
</tr><tr>
<td valign="top" align="right">Comments:</td>
<td valign="top"><textarea name="Comments" rows="5" cols="35"></textarea></td>
</tr><tr>
<td colspan="2" align="center"><input type="submit" value="Send" name="submitform">
<input type="reset" value="Nulstil" name="reset"></td>
</tr></table>
<br>

</form>
<?php } ?>
</font></td>
</tr></table>

</body>
</html>

På forhånd tak
Avatar billede fowler21 Nybegynder
08. august 2005 - 23:18 #1
På Unoeuro serveren siger den forresten, at der mangler at blive udfyldt felter, men det gør der ikke
Avatar billede leif Seniormester
08. august 2005 - 23:18 #2
Hvad er fejlen ?

Husk at hos B-one skal afsender adressen være oprettet som pop3 konto for at det virker !
Avatar billede lasserasch Juniormester
08. august 2005 - 23:20 #3
Øhhh.... Hvilken komponent bruges der til selve afsendelsen? Jeg ved ikke med Unoeuro, men B-One kører PHP i safe mode, kan det evt. have noget sige!
Avatar billede fowler21 Nybegynder
08. august 2005 - 23:21 #4
Mailen jeg modtager på er Pop3, men ved ikke hvad den afsender fra
Avatar billede leif Seniormester
08. august 2005 - 23:23 #5
Afsender adressen skal hos B-One være oprettet som POP3 konto ! Ellers vil det ikke virke !
Avatar billede leif Seniormester
08. august 2005 - 23:24 #6
lasserach -> Han bruger da mail()
Avatar billede leif Seniormester
08. august 2005 - 23:25 #7
fowler21 -> Afsender adressen skal være en adresse hos B-one ! (Det er dog ikke dit problem primært lige nu)
Avatar billede fowler21 Nybegynder
08. august 2005 - 23:28 #8
Tror ikke det er pga safe mode, dog er jeg ikke sikker på om unoeuro også kører safe mode
Avatar billede leif Seniormester
08. august 2005 - 23:32 #9
Men det ligner et gammelt script ! Da den blandt andet ikke henter IP adressen korrekt !
Avatar billede leif Seniormester
08. august 2005 - 23:34 #10
Hvis jeg fjerner linien $error .= "Missing $dcheck[$check]<br>"; virker scriptet fint ! Tjecker så bare ikke for required felter !
Avatar billede leif Seniormester
08. august 2005 - 23:35 #11
Sæt $require = $HTTP_POST_VARS['require']; ind lige efter $Comments = $HTTP_POST_VARS['Comments'];
Avatar billede fowler21 Nybegynder
08. august 2005 - 23:35 #12
Scriptet er fra 2002, dog ikke helt uptodate, men har altid virket perfekt for mig, hos unoeuro.. Grunden til jeg er glad for det er pga dens autoreply funktion. Hvis i kender andre der er gode, nemme og gratis, kan dette også sagtens accepteres som svar.
Avatar billede leif Seniormester
08. august 2005 - 23:39 #13
Og ændre:
$browser = $HTTP_USER_AGENT;
$ip = $REMOTE_ADDR;

til

$browser = $_SERVER["HTTP_USER_AGENT"];
$ip = $_SERVER["REMOTE_ADDR"];
Avatar billede leif Seniormester
08. august 2005 - 23:49 #14
Glem min kommentar kl. 23:34:20

Bare ændre de to andre ting !
Avatar billede fowler21 Nybegynder
08. august 2005 - 23:51 #15
Det virker fint hvis jeg sletter linien : $error .= "Missing $dcheck[$check]<br>";
Men når jeg tilføjer dette : $require = $HTTP_POST_VARS['require'];
Og ændrer dette :
$browser = $HTTP_USER_AGENT;
$ip = $REMOTE_ADDR;

til

$browser = $_SERVER["HTTP_USER_AGENT"];
$ip = $_SERVER["REMOTE_ADDR"];

Så kommer der blank skærm, når jeg trykker send. Og der kommer ingen mail..
Ville der være noget problem, ved ikke at rette dem, og så bare nøjes med at slette den ene linie ?
Avatar billede fowler21 Nybegynder
08. august 2005 - 23:53 #16
Det virker perfekt nu med at slette den ene linie og rette i de 2 andre.
Smid et svar leif, og pointene er dine :)
Mange tak for hjælpen
Avatar billede leif Seniormester
08. august 2005 - 23:54 #17
Jeg vil sætte $error .= "Missing $dcheck[$check]<br>"; ind igen ! Da den ellers ikke laver require tjecket !
Avatar billede leif Seniormester
08. august 2005 - 23:56 #18
Svar.
Avatar billede fowler21 Nybegynder
08. august 2005 - 23:56 #19
Virker perfekt :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester