Jump to content
GSForum - Segélyvonal

PHP mail hiba


Laczy75

Recommended Posts

Posted

Üdv!

 

a következõ problémám van. Van egy jól mûködõ php-s kódom amit próbaképp felraktam az oldalamra onnan megy rendesen a mail, elküldi a címzettnek (ez fix) és a feladónak a visszaigazolást, viszont a céges oldalon nem akarja elküldeni azt dobja vissza hogy hiányos adat, pedig teljesen ugyan azt adom meg mint a tesztlapomon, ez valami php beállítási hiba lehet a szerveren, de vajon mi?

 

itt a kód:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>kapcsolat</title>
<link rel="stylesheet" href="eszk/css/bsl.css" type="text/css">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
<?php


$recipientname = "Weblapról";

$recipientemail = "errekapom@levelet.jo";

$subject = "Üzenet a weben keresztûl";

$autoresponse = "yes";

$autosubject = "Az utomatikus email tárgya!";

$automessage = "Ez egy megerosítés, az e-mail sikeresen kézbesítve lett.";

$thanks = "Köszönöm, az üzenet sikeresen továbbítva lett.<br>Hamarsoan válaszolok.<br>";


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

<body class="body1">
<table class="table" width="690" height="187%" border="0" cellpadding="0" cellspacing="0">
   <tr>
     <td width="100%" height="40" class="cimke">KAPCSOLAT</td>
   </tr>
   <tr>
     <td height="12"><div align="right"></div></td>
   </tr>
   <tr>
     <td class="szoveg_sk">
       <table width="100%" height="145%">
         <tr>
           <td height="334" 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 .= "Hiányos adat: $dcheck[$check]<br>";
                       }
                    }

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

                    // display errors
                   if($error) 
                   {
                        ?>
                     <b>Hiba</b><br>
                     <?php echo $error; ?><br>
                     <a href="#" onClick="history.go(-1)">Vissza</a>
             <?php
                   }
                     else 
                       {
                           $browser = $HTTP_USER_AGENT;
                         $ip = $REMOTE_ADDR;

                            // format message
                            $message = "A következo üzenet érkezett $recipientname:
                          Név: $Name
                          Email: $Email
                          Üzenet: $Comments
                          -----------------------------
                          Böngészo: $browser
                          Felhasználó 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
                       {
                            ?></font>
                            <form name="contactform" action="<?php echo $PHP_SELF; ?>" method="post">
                         <font face="Verdana,Arial,Helvetica" size="2"><input type="hidden" name="require" value="Name,Email,Comments"></font>
                          <table align="center">
                            <tr> 
                               <td colspan="2" align="center"></td>
                          </tr>
                            <tr> 
                               <td width="62" align="right" valign="top">Név:</td>
                               <td width="526" valign="top"><input name="Name" size="50"></td>
                             </tr>
                             <tr> 
                               <td valign="top" align="right">E-mail:</td>
                               <td valign="top"><input name="Email" size="50"></td>
                             </tr>
                             <tr> 
                               <td height="108" align="right" valign="top">Üzenet:</td>
                               <td valign="top"><textarea name="Comments" rows="6" cols="80"></textarea></td>
                             </tr>
                            <tr> 
                              <td height="24" colspan="2" align="center"><input type="submit" value="Mehet" name="submitform">
                              <input type="reset" value="Törlés" name="reset"> </td>
                             </tr>
                           </table>
                           <font face="Verdana,Arial,Helvetica" size="2"><br></font>
                           </form>
           <font face="Verdana,Arial,Helvetica" size="2"></font><?php 
                       } ?>           </td>
        </tr>
      </table>  
    </td>
  </tr>                 
</table>    

</body>
</html>

 

Van tipp?

Posted

Mi a hibaüzenet és mivel van kapcsolatban? Melyik művelettel?

Posted

Itt mit explode-olsz fel?

 

$dcheck = explode(",",$require);

Annak a $require-nek sehol sincsen átadva érték vagy lehet csak én nem látom... Szerintem ezért dob egyfolytában "hiányos adat" hibát.

 

Üdv

P

Posted
Mi a hibaüzenet és mivel van kapcsolatban? Melyik művelettel?

Ha a mehet gombra kattintok, azaz ha küldené a mailt akkor:

 

Hiba

Hiányos adat:

 

Vissza

 

semmi többet nem ad, de mint írtam teljesen ugyanez a kód csak egy másik szerveren tökéletesen működik. Ezért gyanakszom arra, hogy a szerveren kellene esetleg valamit beállítani, de nem tudom mit, mert amúgy a mail függvény engedélyezve van.

Posted

Leírtam hogy mi a hiba. A $require tartalma üres ezáltal amit fel explode-olsz az is üres ezáltal a $check értéke is üres.

 

Üdv

p

  • 2 weeks later...
Posted
Leírtam hogy mi a hiba. A $require tartalma üres ezáltal amit fel explode-olsz az is üres ezáltal a $check értéke is üres.

 

Üdv

p

 

Üdv!

 

Bocs, de nem én írtam én csak össze ollóztam, nem igazán értek (még) minden funkciót. DE azt láttam, kipróbáltam, hogy másik szerveren ment gond nélkül.

 

Közben kiderült hogy amelyiken nem megy azon nincs sendmail, emiatt lehet rossz. Viszont arra a gépre nem akarnak tenni levelezõt, de egy másikon van.

 

Így felmerül a kérdés át lehet irányítani php-ban hogy a 10.1.2.3 as gépen lévõ programmal és regisztrált felhasználó jogosultságával küldje a mailt.

 

Köszi

  • 2 years later...
[OP]Destroy-man
Posted

Csináltam egy kicsi php fájlt, ami egy HTML formátumu e-mailt küld el egy fix címre. A problémám az, hogy nem tartja meg a HTML formázását küldéskor. A levelező programok egy lebutotott HTML-t használnak, vagy maga a mail() fügvény csak ennyire képes, esetleg én rontok el valamit?

A hibák:

- Nem jeleniti meg a háttérképet (egy sima szinátmenet a levél tetején)

- A szöveget egy hivatkozott kép alatt jeleníti meg, és nem ott ahol szeretném (pozicionált div)

 

Más, kisebb probléma: a googlenek külön engedélyezni kell a kép megjelenítését. Ki lehet ezt valahogy játszani? Pl. a képet csatolmányként küldöm az e-maillel, és arra hivatkozok?

Posted

A levelezõprogramok HTML-értelmezõje kisebb tragédia, a Google és az Outlook kiemelkedõen rossz. A HTML levél küldésnek megvan a saját irodalma, keress rá, meg fogsz döbbenni, hogy milyen kódot kell írni ahhoz, hogy valami hasonló jelenjen meg, mint amit szerettél volna. Például a GMail valamit változtatott pár hete a HTML motorján, azóta fura fehér csíkok vannak a céges hírlevelünkben, gõzöm nincs, miért. :(

[OP]Destroy-man
Posted

Egy kicsit átszerkesztettem a HTML fájlt - pozicionált divet lecseréltem egy táblára, illetve a <style>-t is töröltem, helyette direktben kapják meg a stílust az elemek, így most jó. A PHP mail()-t lecseréltem a phpmailer()-re, így már googleban is megjelennek a képek, mindenféle kérdezés nélkül.

Egyetlen gondom van még, az pedig a lap háttérképe. Azt az istennek nem akarja megjeleníteni. Talán nincs rá lehetõség?

[OP]Destroy-man
Posted

Kicsit megerõszakoltam a kódot, így most jó. Mindössze annyit csináltam, hogy képként illesztettem be az egyébként háttérnek szánt képet, annyi megszorítással, hogy fix szélességû lett így a levél, ugyanis 1:1-ben tud csak képet nagyítani a HTML levél, torzításos módszerrel nem. :S

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...