Verwerking Emailformulier met PHP

Status
Niet open voor verdere reacties.

ice-twirl

Gebruiker
Lid geworden
28 dec 2002
Berichten
93
Beste mensen,

Ik heb een pagina contact.php voor het versturen van een emailbericht naar de webmaster van een website. Wanneer ik dit script op Lycos Webspace zet en deze via Internet open werkt het script prima.
Wanneer ik dit script echter op een gekochte server zet van mijn domein werkt deze niet.
Wanneer je het formulier invult en op verzenden drukt vernieuwt hij als het ware de pagina.

http://members.lycos.nl/jeffke19/contact.php Werkt prima
http://www.xplosive-hardstylistz.nl/rma/contact.php Werkt NIET

Kan iemand mij helpen? (Zie onderstaande codes)

PHP:
<?php 

// Als er op submit word gedrukt. 
if($submit) 
{ 

  // Controleren of er al een cookie gezet is of niet. 
  if(!isset($_COOKIE[post])) 
  { 

  // Velden controleren op leegte. 
  if($naam == "" || $email == "" || $onderwerp == "" || $bericht == "") 
  { 
     echo "<center><small><font color=\"#ffffff\" face=\"Arial\">Een of meerdere velden zijn niet goed ingevuld.<br><a href=\"javascript:history.back(-1)\">Probeer het opnieuw</a></font></small></center>"; 
  } 
  elseif(!eregi("[A-Za-z0-9_-]+([\.]{1}[A-Za-z0-9_-]+)*@[A-Za-z0-9-]+([\.]{1}[A-Za-z0-9-]+)+", $email)) 
  { 
     echo "<center><small><font color=\"#ffffff\" face=\"Arial\">U heeft geen geldig emailadres ingevuld.<br><a href=\"javascript:history.back(-1)\">Probeer het opnieuw</a></font></small></center>"; 
  } 
  else 
  { 
     // Formulier versturen. 
     $jouwemailadres = "jeffrey_menkehorst@hotmail.com"; 
     $datum = date("d-m-Y H:i"); 
     $ip = $_SERVER[REMOTE_ADDR]; 

     $ontvanger = $jouwemailadres; 
     $onderwerp = "Contact : $onderwerp"; 
     $verzender = "From: $naam <$email>"; 
     $inhoud = "Beste webmaster,\n\nOp $datum heeft $naam ($email) via je website het volgende bericht voor je achtergelaten :\n\n$bericht\n\n---------------------------------------------------------------------\nDe IP van $naam = $ip"; 
     mail($ontvanger, $onderwerp, $inhoud, $verzender); 

     // Cookie post zetten. 
     setcookie(post, "je hebt een bericht verzonden", time()+300); 

     echo "<center><small><font color=\"#ffffff\" face=\"Arial\">Uw bericht is succesvol verstuurd aan de webmaster.<br>U zult zo snel mogelijk een antwoord krijgen van de webmaster.</font></small></center>"; 
  } 

  } 
  else 
  { 
     echo "<center><small><font color=\"#ffffff\" face=\"Arial\">U heeft zojuist al een bericht geplaatst,<br>over een aantal minuten kunt weer een bericht versturen.</font></small></center>"; 
  } 

} 
else 
{ 

// Het formulier. 
?> 
<form action="contact.php" method="POST"> 
<table border="0" width="500" cellspacing="0" cellpadding="0"> 
  <tr> 
    <td width="100%"><strong><small><font color="#ffffff" face="Arial">Contactformulier</font></small></strong></td> 
  </tr> 
  <tr> 
    <td width="100%"><small>&nbsp; </small></td> 
  </tr> 
  <tr> 
    <td width="100%"><table border="0" width="100%" cellspacing="0" cellpadding="2"> 
      <tr> 
        <td width="100%" colspan="2"><hr align="left" color="#C0C0C0" width="90%" noshade size="1"> 
        </td> 
      </tr> 
      <tr> 
        <td width="38%"><small><font color="#ffffff" face="Arial">Naam :</font></small></td> 
        <td width="62%"><input STYLE="background-color: transparent; font-color: font-size: 10px; font-family: verdana; color: #FFFFFF;" type="text" name="naam" size="29"></td> 
      </tr> 
      <tr> 
        <td width="38%"><small><font color="#ffffff" face="Arial">E-mailadres :</font></small></td> 
        <td width="62%"><input STYLE="background-color: transparent; font-color: font-size: 10px; font-family: verdana; color: #FFFFFF;" type="text" name="email" size="29"></td> 
      </tr> 
      <tr> 
        <td width="38%"><small><font color="#ffffff" face="Arial">Onderwerp :</font></small></td> 
        <td width="62%"><select name="onderwerp" size="1"> 
          <option selected>Maak een keuze</option> 
          <option value="Vraag">Vraag</option> 
          <option value="Opmerking">Opmerking</option> 
          <option value="Idee">Idee</option> 
          <option value="Klacht">Klacht</option> 
        </select></td> 
      </tr> 
      <tr> 
        <td width="100%" valign="top" colspan="2"><hr align="left" color="#C0C0C0" width="90%" 
        noshade size="1"> 
        </td> 
      </tr> 
      <tr> 
        <td width="100%" valign="top" colspan="2"><small><font color="#ffffff" face="Arial">Bericht :</font></small></td> 
      </tr> 
      <tr> 
        <td width="100%" valign="top" colspan="2"><textarea STYLE="background-color: transparent; font-color: font-size: 10px; font-family: verdana; color: #FFFFFF;" rows="6" name="bericht" cols="52"></textarea></td> 
      </tr> 
      <tr> 
        <td width="100%" valign="top" colspan="2"><small><small><small><small><small><small><small> 
        &nbsp;&nbsp;&nbsp; </small></small></small></small></small></small></small></td> 
      </tr> 
      <tr> 
        <td width="100%" valign="top" colspan="2"><input type="submit" value="Versturen" 
        name="submit"></td> 
      </tr> 
    </table> 
    </td> 
  </tr> 
</table> 
</form> 
<?php } ?>

Ik heb al contact gehad met de eigenaar van mijn server over het gebruik van php, aangezien dit script niet werkt op deze server. Hij reageerde met het volgende :

Het maken van een e-mail invulformulier kan op 3 manieren; u kunt gebruik maken van Frontpage Extensies, zelf een CGI script installeren als FormMail of een PHP script maken.

Indien u gebruik wil maken van Frontpage en de Frontpage Extensies, kunt u dit doorgeven aan onze supportmedewerkers. U dient er vooraf voor te zorgen dat de map httpdocs leeg is. (De map "plesk-stat" mag wel blijven staan).

Het formmail script kunt u onder meer downloaden via: http://www.scriptarchive.com/formmail.html

In formmail.pl dient u met behulp van Kladblok de verwijzing naar "sendmail" aan te geven, waarna u het bestand kunt opslaan en uploaden. Bij ons is de lokatie van sendmail: /usr/sbin/sendmail
Het uploaden van formmail.pl dient met FTP in ASCII-mode te gebeuren. Plaats het script in de map cgi-bin (al aanwezig op uw hostingpakket) en zorg dat het de juiste CHMOD-rechten (CHMOD 755 of "rwx r-x r-x") heeft. Dit staat verder uitgelegd in het help-bestand van FormMail.

De installatie, configuratie en support van CGI en PHP scripts kunnen wij helaas niet voor onze rekening nemen, hiervoor kunt u zich wenden tot de verschillende forums op het Internet. Deze bieden hiervoor voldoende aanwijzingen. Zorg er bij php-scripts wel voor dat er geen onbekende (ongedefinieerde) afzender is. Dat voorkomt dat spamfilters het mailbericht tegenhouden/wissen.

Met vriendelijke groet,
Guido Hoogsteder
Hosting2GO Helpdesk

Kan iemand mij helpen, door te vertellen welke aanpassing ik moet doen aan het script?
Zou daar heel erg blij mee zijn.

Alvast bedankt voor jullie moeite.

Groetjes uit TIlburg ! :cool:
 
contact_ process.php

Probeer deze eens , om te kijken of het werk , is snel gebeurd/

http://thedemosite.co.uk/phpformmailer/

FREE Download phpFormMailer




de 2 bestanden:

contact.html en contact_ process.php
in contact_ process.php regel 10 11 en 12 aanpassen:

$replyemail="xxx@xxxxx.nl";//change to your email address
$valid_ref1="http://www.xxx.nl/contact.html";// chamge "Your--domain" to your domain
$valid_ref2="http://www.xxx.nlt/contact.html";// chamge "Your--domain" to your domain
 
Je hebt overal wel variabele-namen staan, maar zijn deze wel gedeclareerd? Volgens mij ben je op zoek naar de waarde van die namen in de $_POST array. Als je bovenaan
PHP:
extract($_POST);

zet, dan zou het heel goed eens kunnen werken. En anders eenvoudigweg $x vervangen door $_POST['x'].

Nu kijk je namelijk bovenaan of de variabele $submit geset is, en zolang dat niet het geval is wordt het formulier weergegeven.
 
@frenske123
Bedankt voor het aanbod maar ik heb de tip van Erikbooy007 geprobeerd en nu werkt mijn eigen formulier wel goed.

@Erikbooy007
Hardstikke bedankt voor de tip. Ik heb het geprobeerd en het systeem werkt nu goed !

* Einde topic *
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan