Avatar billede jokerper Nybegynder
24. august 2008 - 10:20 Der er 6 kommentarer og
1 løsning

Hjælp til mailform som ikke sender mellem kontakt og sendt .php

Jeg har et problem jeg ikke lige kan løse - mailform.

Mit problem er disse to:
-------------------
header('Location: kontakt.php');
<form action="sendt.php"
-------------------
Den sender ikke alle informationer rigtigt.
Hvis jeg i <form action="sendt.php" istedet for indsætter kontakt.php så validere den rigtigt men så kommer der ikke noget med over til sendt.php.

Hvis jeg bruger den som nu sender den ingen mail. Hvordan gør jeg så den validerer i kontakt.php og alligevel sender info til sendt.php.

kontakt.php ser sådan ud:

<?php
$emailto = 'Min emailadresse';
$fejl = array(); // Tom liste med fejl

if ($_SERVER["REQUEST_METHOD"]=='POST') {
  // Formen er submitted, nu skal den valideres.

  // Hent værdier fra formen
  $ip = $_SERVER['REMOTE_ADDR'];
  $user_agent = $_SERVER["HTTP_USER_AGENT"];
  $name = @$_POST['name'];
  $email = @$_POST['email'];
  $valg = @$_POST['valg'];
  $subject = @$_POST['subject'];
  $headers  = "MIME-Version: 1.0\r\n";
  $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
  $headers .= "From: $name <$email>";
  $bruger = (isset($_SERVER["REMOTE_USER"]) ? $_SERVER["REMOTE_USER"] : $_SERVER["PHP_AUTH_USER"]);
  $text = @$_POST['text'];
  $message = "
  <html>
  <head>
  </head>
  <body>
  <table>
  <tr>
    <td>Navn:</td><td>$name</td>
  </tr>
  <tr>
    <td>Mail:</td><td>$email</td>
  </tr>
  <tr>
    <td>Til:</td><td>$valg</td>
  </tr>
  <tr>
    <td>Emne:</td><td>$subject</td>
  </tr>
  <tr>
    <td>Text:</td><td>$text</td>
  </tr>
  <tr>
    <td><br><br><br>User IP:</td><td><br><br><br>$ip</td>
  </tr>
  <tr>
    <td>User Agent:</td><td>$user_agent</td>
  </tr>
  </table>
  </body>
  </html>";



  // Kig i dem
  if (!$name)
$fejl[] = "Du glemte at udfylde dit navn.";
  if (!$email)
$fejl[] = "Du glemte at udfylde din mail adresse";
  if (!$valg)
$fejl[] = "Du glemte at udfylde valgmuligheder.";
  if (!$subject)
$fejl[] = "Du glemte at udfylde emne.";
  if (!$text)
$fejl[] = "Du glemte at skrive en besked.";


if (count($fejl)==0) {
  $sendt = "Ja";
mail($emailto, $subject, $message, $headers, $valg);
header('Location: kontakt.php');
exit;
  }
}
if ($sendt == "Ja") {
} else {
}


if (count($fejl)>0) {
// Der er fejl
echo '<p class="error">';
echo join('<br />', $fejl);
echo '</p>';
    }





?>


<html>
<head>
<script type="text/javascript">
<!--
function MM_jumpMenu(targ,selObj,restore){ //v3.0
eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
if (restore) selObj.selectedIndex=0;
}
//-->
</script>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<style type="text/css">
<!--
body,td,th {
      }
body {
  background-color: #990000;
}
.style1 {
  background-color:
  border:solid;
  border-color:#2a2a2c;
  color: #FFFFFF;  }
.style2 {
  background-color:
  border:solid;
  border-color:#2a2a2c;
  color: #000000;  }
.style3 {
  color: #ffffff;  }
.req {
  text-decoration: blink;
  font-color:#000000;
  font-weight: bold;
  color: #000000;  }
-->
</style></head><title>Mailform</title>
<body>
  <table align="center" width="50%">
<tr><td>

  <form action="sendt.php" method="post" name="Sendmail" id="Sendmail">
    <div class="fieldset"><fieldset>
  <legend><span class="style2"><b>Personoplysninger: &nbsp;</b></span></legend>
  <span class="style3">Indtast stjerne </span><span class="req">*</span><span class="style3"> markerede oplysninger<br/></span>
  <label><span class="style3"><br/>Navn: </span><span class="req">*</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  <input type="text" class="text" name="name" id="name" size="30"></label>
  <input type="hidden" class="text" name="bruger" id="bruger" size="30"><br/>
  <label><span class="style3">Din email: </span><span class="req">*</span>
  <input type="text" class="text" name="email" id="email" size="30"><br/><br/></label></fieldset></td></tr><br/><tr></tr><tr><td>
  <fieldset>
  <legend><span class="style2"><b>Hvem vil du skrive til: &nbsp;</b></span></legend><br/>
  <label><span class="style3">V&aelig;lg her: </span><span class="req">*</span><br/>
      <select name="valg" id="valg">
      <option></option>
      <option>valg0</option>
      <option>valg1</option>
      <option>valg2</option>
      <option>Valg3</option>
    </select></label>  <br/><br/>
  <label><span class="style3">Emne: </span><span class="req">*</span><br/>
  <input type="text" class="text" name="subject" id="subject" size="30"><br/><br/></label>
  <label><span class="style3">Evt. besked: </span><span class="req">*</span><br/>
  <textarea name="text" class="textarea" cols="45" rows="6" id="text"></textarea><br/><br/></label>
  </fieldset></td></tr><tr><td><fieldset><div align="center"><br/>    <input type="submit" class="submit" name="Submit" value="Send mail">&nbsp;&nbsp;&nbsp; <input type="reset" class="submit" name="Reset" value="Slet alt"></form></div></fieldset>
  </td></tr>
</table>

</body>
</html>


Og min sendt.php er nok lidt speciel, men...

<?php
  // Hent værdier fra formen
//    $ip = $_SERVER['REMOTE_ADDR'];
//    $user_agent = $_SERVER["HTTP_USER_AGENT"];
  $name = @$_POST['name'];
//    $email = @$_POST['email'];
  $valg = @$_POST['valg'];
  $bruger = (isset($_SERVER["REMOTE_USER"]) ? $_SERVER["REMOTE_USER"] : $_SERVER["PHP_AUTH_USER"]);
//    $subject = @$_POST['subject'];
  // $headers  = "MIME-Version: 1.0\r\n";
  // $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
  // $headers .= "From: $name <$email>";
  // $text = @$_POST['text'];

echo "<br><br><br><br><center><table width=\"400\"><tr><td><center><h7>Tak for din mail - $name</h7></center><hr></td><br>";            echo "</tr><tr><td><center><h1><i>Kærligst</i></h1></center></td><br>";
echo "</tr><tr><td><center><h1><i>$valg</i></h1><hr></td></tr><tr><center><td width=\"300\"></td></tr></table>";echo $conn=$conn = mysql_connect('XXXXX','XXXXXX','XXXXXXXX') or die (mysql_error());
mysql_select_db("oenskeliste");




$rs=mysql_query("SELECT * FROM oensker WHERE user = '".$valg."'");
if($row=mysql_fetch_assoc($rs)){
  $felt20 = $row["billede"];

echo    "<table width=\"400\"><tr><td><center><input name=\"imageField\" type=\"image\" id=\"imageField\" src=\"$felt20\" align=\"absmiddle\" width=\"300\" height=\"200\" /></center>";
}
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Tak for din mail</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><style type="text/css">
<!--
body,td,th {
  color: #FFFFFF;
}
body {
  background-color: #990000;
}
-->
</style></head>
<body></body></html>

Kan man evt. lave 2 <form action="kontakt.php;sendt.php"> ???
Avatar billede leif Seniormester
24. august 2008 - 10:35 #1
Smider det ned i en SESSION i den første og i den anden loader det fra SESSION i stedet fra POST
Avatar billede jokerper Nybegynder
24. august 2008 - 10:49 #2
Er det noget i denne stil du mener:

session_start();

$_SESSION["bruger"]["ip"] = $ip = $_SERVER['REMOTE_ADDR'];
$_SESSION["bruger"]["email"] = $email = @$_POST['email'];
$_SESSION["bruger"]["navn"] = $name = @$_POST['name'];
$_SESSION["bruger"]["valg"] = $valg = @$_POST['valg'];

Ellers må du meget gerne lige give et eks.
Avatar billede leif Seniormester
24. august 2008 - 10:50 #3
Det kunne være en mulighed ja.
Avatar billede jokerper Nybegynder
24. august 2008 - 11:52 #4
Jeg må have mere hjælp kan ikke finde ud af det, desværre. Har prøvet med forskellige løsninger på sessions:

kontakt.php

session_start();

$_SESSION[@$_POST['name']] = $name;
$_SESSION[@$_POST['valg']] = $valg;


  $ip = $_SERVER['REMOTE_ADDR'];
  $user_agent = $_SERVER["HTTP_USER_AGENT"];
  $name = @$_POST['name'];
  $email = @$_POST['email'];
  $valg = @$_POST['valg'];

sendt.php

echo $navn;
echo $valg;

Sker intet, men ved
print_r($_SESSION);
kommer der en masse frem.
Avatar billede leif Seniormester
24. august 2008 - 12:00 #5
Øhh, det var det en underlig måde:
kontakt.php

session_start();

  $ip = $_SERVER['REMOTE_ADDR'];
  $user_agent = $_SERVER["HTTP_USER_AGENT"];
  $name = @$_POST['name'];
  $email = @$_POST['email'];
  $valg = @$_POST['valg'];


$_SESSION['name'] = $name;
$_SESSION['valg'] = $valg;



sendt.php

session_start();
echo $_SESSION['name'];
echo $_SESSION['valg'];


Er utestet
Avatar billede jokerper Nybegynder
24. august 2008 - 13:59 #6
Jeg fik det til at virke med dit forslag.

Så send venligst et svar.
Avatar billede leif Seniormester
24. august 2008 - 14:14 #7
.
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