Nog een vraag over een Mailform

  • Onderwerp starter Onderwerp starter rob57
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

rob57

Gebruiker
Lid geworden
5 jul 2004
Berichten
31
Hallo,

Excuses dat er nu nog een vraag komt over een mailform, maar ik zag in de vragen geen eventuele oplossing voor mijn *probleem*.

Ik ben een beginnende PHP'er en heel langzaam leer ik bij. Hieronder stuur ik het mailform mee die ik nu gebruik, deze doet het goed, maar ik heb toch enkele vragen hierover.

In het script komen de volgende regels voor:

URL='.$url.'
IP = '.$ip;

1. Wanneer ik een testmail naar mezelf stuur, dan komt daarin ook te staan welk IP adres Ik (de inzender gebruikt). Ik hoef dit niet te weten, en tevens ook niet de URL. Vraag, wat moet ik aanpassen om dit niet meer te krijgen.

2. Ik zou graag een achtergrond willen hebben bij dit form. In html maak je gebruik van: * <body background="mytrees.jpg"> *. Nu heb ik dit al in het script gezet en ik krijg geen foutmelding als ik een Internal Preview doe (ik gebruik Maguma). On-line gaat ook alles goed, maar geen achtergrond. Heb ik de lijn verkeerd neergezet of moet hij anders.

3. Laatste vraag is misschien een los script: Ik zou graag als de boodschap gekomen is dat het bericht verzonden is, men automatisch teruggaat naar de begin pagina. In html gebruik je: <META HTTP-EQUIV="REFRESH" CONTENT="2;URL=http://www.mijnsite.nl/"> , maar hoe maak je deze constructie in PHP ?

Nogmaals mijn excuses voor deze vragen, maar dit zijn dingen die ik nog niet in een beginnende handleiding ben tegen gekomen.

Hier volgt het script:
PHP:
<html>
<head>
       <title>Formulier voor vragen</title>
</head>

<body>
<center>
<body background="mytrees.jpg">
<br><p class="b3">

<?
if($action=='send'){

if (($mssg=='')||($subject=='')||($naam=='')){$input='fout';}elseif
(!ereg( "[A-Za-z0-9_-]+([\.]{1}[A-Za-z0-9_-]+)*@[A-Za-z0-9-]+([\.]{1}[A-Za-z0-9-]+)+", $email)) { $emailfout="1"; } else {

if (getenv(HTTP_X_FORWARDED_FOR)){
$ip = getenv(HTTP_X_FORWARDED_FOR); } else {
$ip = getenv(REMOTE_ADDR); }

$mssg=stripslashes($mssg);

$mssg=$mssg.'

URL='.$url.'
IP = '.$ip;


$subject = stripslashes($subject);
$subject="uw onderwerp: ".$subject;
mail("mijn@email.nl", "$subject", "$mssg", "From: $naam<$email>");
$status='send';
?>

<b><h3>Uw bericht is verzonden. U ontvang zo spoedig mogelijk een antwoord op uw vraag!<br>
<br>
Met vriendelijke groet,<br><br>
Rob Hubert</b></h3>

        </td>
      </tr>
    </table>
    </td>
  </tr>
</table>

</body>
</html>

<? exit; }} ?>

<? if ($status!=send){ ?>

<br><b><h2>Heeft u een vraag of een reactie, maak dan a.u.b. gebruik van onderstaand formulier.</b></h2>

<br><br>

<?  if ($input==fout) { ?><font color="white">Vul aub alle velden in!</font><br><Br><? } elseif
    ($emailfout==1){ ?><font color="white">Vul aub een juist emailadres in, anders kan ik u reactie terugsturen!</font><br><Br><? } ?>

<form action="ovl_form.php" method="post">
<input type="hidden" name="action" value="send">

<table border="0">
  <tr>
    <td><p class="b3"><b>Naam</b></td>
    <td><input type="text" size="25" name="naam" maxlength="35" value="<? echo $naam; ?>"></td>
  </tr>
  <tr>
    <td><p class="b3"><b>Email adres</b></td>
    <td><input type="text" size="25" name="email" maxlength="35" value="<? echo $email; ?>"></td>
  </tr>
  <tr>
    <td><p class="b3"><b>Onderwerp</b></td>
    <td><input type="text" size="25" name="subject" maxlength="35" value="<? echo $subject; ?>"></td>
  </tr>
  <tr>
    <td valign="top"><p class="b3"><b>Bericht:</b></td>
    <td><textarea rows="10" cols="37" name="mssg"><? echo htmlspecialchars(stripslashes($mssg)); ?></textarea></td>
  </tr><tr>
    <td colspan="2"><center><input type="submit" value="Verstuur"></td>
  </tr>
</table>

</form>
<? } ?>
<BR><BR>

        </td>
      </tr>
    </table>
    </td>
  </tr>
</table>

</body>
</html>
=========
 
Laatst bewerkt door een moderator:
Nog een vraag over een mailform is geen probleem :)
Wanneer je je PHP codes niet tussen
PHP:
[ /php] zet wel :p
Kun je misschien ff je post editten ? ;)
 
JP,

Excuses voor mijn onwetendheid, maar wat moet ik tussen [ ] zetten, en welke post moet ik editten?
 
Je beginpost van deze thread, daar heb je een vrij grote lap PHP, en dan is 't fijn om een beetje ordening te zien :)
Dus als je na "Hier volgt het script: "
PHP:
 wil neerzetten, en aan het einde van je post [/ php] (zonder spatie ertussen) dan gaat 't opsporen van fouten wat makkelijker :thumb:
 
dank je, het is duidelijk. Ben ik nog wat vergeten neer te zetten of te vermelden?
 
Thanx tazman :)
Geplaatst door rob57
1. Wanneer ik een testmail naar mezelf stuur, dan komt daarin ook te staan welk IP adres Ik (de inzender gebruikt). Ik hoef dit niet te weten, en tevens ook niet de URL. Vraag, wat moet ik aanpassen om dit niet meer te krijgen.
Dit:
PHP:
$mssg=stripslashes($mssg);

$mssg=$mssg.'

URL='.$url.'
IP = '.$ip;
Veranderen in:
PHP:
$mssg=stripslashes($mssg);
2. Ik zou graag een achtergrond willen hebben bij dit form. In html maak je gebruik van: * <body background="mytrees.jpg"> *. Nu heb ik dit al in het script gezet en ik krijg geen foutmelding als ik een Internal Preview doe (ik gebruik Maguma). On-line gaat ook alles goed, maar geen achtergrond. Heb ik de lijn verkeerd neergezet of moet hij anders.
Je codes zijn helemaal goed, heb je 'mytrees.jpg' wel geupload ? ;)
3. Laatste vraag is misschien een los script: Ik zou graag als de boodschap gekomen is dat het bericht verzonden is, men automatisch teruggaat naar de begin pagina. In html gebruik je: <META HTTP-EQUIV="REFRESH" CONTENT="2;URL=http://www.mijnsite.nl/"> , maar hoe maak je deze constructie in PHP ?
Verander deze regel:
Code:
<b><h3>Uw bericht is verzonden. U ontvang zo spoedig mogelijk een antwoord op uw vraag!<br>
In:
Code:
<b><h3>Uw bericht is verzonden. U ontvang zo spoedig mogelijk een antwoord op uw vraag!<br><META HTTP-EQUIV="REFRESH" CONTENT="2;URL=http://www.mijnsite.nl/">
Nogmaals mijn excuses voor deze vragen, maar dit zijn dingen die ik nog niet in een beginnende handleiding ben tegen gekomen.
Maakt niet uit joh, daar is Helpmij.nl voor :)

Succes d'rmee :thumb:
 
Beste JP,

Hartelijk dank voor de correcties. Na verandering werkt alles perfect :D

Het *probleem* met de achtergrond zat hem in het feit dat het netjes geupload was, maar dat deze een andere naam had nl. *treesbrwn.jpg* en dan krijg je inderdaad geen achtergrond. Dat je daar dan toch tig keer over heen kijkt :o

Nu werkt het als een trein en kan ik weer wat verder knutselen (frustelen).

Nogmaals mijn dank dit was top. :thumb:
 
Hoewel dit "probleem" geheel en naar volle tevredenheid opgelost is, heb ik nog een vraagje.

In het script wordt na het versturen de volgende boodschap op een nieuwe pagina getoond:

=====
"Uw bericht is verzonden. U ontvang zo spoedig mogelijk een antwoord op uw vraag!"
=====

Nu zou ik dit eigenlijk willen beginnen met "Beste .............. " waar de puntjes ingevuld moeten worden door de naam welke men invult bij "naam" op het formulier.

Vraag: is dit te doen en wat zouden dan de regel(s) moeten zijn die ik hierbij zou moeten zetten.

Al vast mijn hartelijke dank.

Rob
 
Verander:
PHP:
$status='send';
?>

<b><h3>Uw bericht is verzonden. U ontvang zo spoedig mogelijk een antwoord op uw vraag!<br>
[b][/b]
in:
PHP:
$status='send';

echo "Beste " . htmlspecialchars($naam,ENT_QUOTES) . "<br><br>\n\n<b><h3>Uw bericht is verzonden. U ontvang zo spoedig mogelijk een antwoord op uw vraag!<br>";
Succes :thumb:
 
Laatst bewerkt:
Beste JP,

Ik heb de regel uitgevoerd, maar bij een controle in Maguma komen er errors.

Ik stuur even een klein stukje van de huidige PHP waarin ik nog niet jouw php script in heb verwerkt.

php
-------------------
$subject = stripslashes($subject);
$subject="uw onderwerp: ".$subject;
mail("webmaster@rob-hubert.nl", "$subject", "$mssg", "From: $naam<$email>");
$status='send';
?>

<b><h3><font size="4" color="#000099">Uw bericht is verzonden. Indien nodig ontvangt u zo spoedig mogelijk een reactie. Het formulier sluit vanzelf.<br>
<br>
Met vriendelijke groet,<br><br>
Webmaster Rob Hubert</b></h3></font><META HTTP-EQUIV="REFRESH" CONTENT="5;URL=http://www.rob-hubert.nl/rechts.htm">

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

Kan je misschien zien wat er fout gaat, of zal ik de nieuwe aangepaste PHP nog eens neerzetten.

Rob
 
Je doet er nog extra regels achteraan :)
Zet na mijn stukje vervangingscode een '?>', dan moet 't werken.
 
JP.

Ik heb de "?>" geplaatst, en het voorbeeld in Maguma geeft geen error meer. Op de website kan ik alles invoeren, maar bij de bevestiging van het ontvangen van de e-mail (waar dus "Beste .." moet komen), gaat nog wat mis. Zit er dik in dat ik iets fout doe, maar ben er nog niet uit. Ik stuur even het stukje PHP mee, de tekst die verschijnt bij de foutmelding is:


echo "Beste " . htmlspecialchars($naam,ENT_QUOTES) ."

\n\n

(zie ook afbeelding)


php
-----------------------------------
$status='send';
?>
echo "Beste " . htmlspecialchars($naam,ENT_QUOTES) ."<br><br>\n\n<b><h3><font size="4">Uw bericht is verzonden. Indien nodig ontvangt u zo spoedig mogelijk een reactie. Het formulier sluit vanzelf.<br>
<br>
Met vriendelijke groet,<br><br>
Webmaster Rob Hubert</b></h3></font><META HTTP-EQUIV="REFRESH" CONTENT="5;URL=http://www.rob-hubert.nl/rechts.htm">

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

Ik hoop dat je me niet te lastig vind.:o


Rob
 

Bijlagen

  • tekst.png
    tekst.png
    1,4 KB · Weergaven: 17
Ik zei na de vervangingscode ;)
En lastig vind ik je niet, maar 't zou wel handig zijn als je je PHP codes tussen [php ] en [/php] zou doen ;)

Magoed, vervang:
PHP:
$status='send';
?>

<b><h3>Uw bericht is verzonden. U ontvang zo spoedig mogelijk een antwoord op uw vraag!<br>
<br>
Met vriendelijke groet,<br><br>
Rob Hubert</b></h3>
door:
PHP:
$status='send';

echo "Beste " . htmlspecialchars($naam,ENT_QUOTES) . "<br><br>\n\n<b><h3>Uw bericht is verzonden. U ontvang zo spoedig mogelijk een antwoord op uw vraag!<br>
<br>
Met vriendelijke groet,<br><br>
Rob Hubert</b></h3>";
?>
Succes :thumb:
 
JP,

Allereerst mijn dank voor je geduld. Het werkt nu :D

Blijven nog enkele vragen over.

Als ik deze regels:

-----------------
<META HTTP-EQUIV="REFRESH" CONTENT="5;URL=http://www.rob-hubert.nl/rechts.htm">
------------------


achter deze regel zet, dan werkt het niet meer, wat kan ik daar aan doen?

---------------------------
Met vriendelijke groet,<br><br>
Rob Hubert</b></h3>";
?>
----------------------------

dan werk het niet meer, wat kan ik doen om hem toch na 5 sec. naar de desbetreffende pagina terug te laten keren?


EN, kan ik "Beste ...... "ook in vetgedrukt en zelfde grote krijgen als de regels daaronder?


Hartelijk dank,
 
PHP:
$status='send';

echo "<b><h3>Beste " . htmlspecialchars($naam,ENT_QUOTES) . "<br><br>\n\nUw bericht is verzonden. U ontvang zo spoedig mogelijk een antwoord op uw vraag!<br>
<br>
Met vriendelijke groet,<br><br>
Rob Hubert</b></h3><META HTTP-EQUIV=\"REFRESH\" CONTENT=\"5;URL=http://www.rob-hubert.nl/rechts.htm\">";
Succes :thumb:
 
Hoi JP,

Hartelijk dank voor je hulp, alles werk naar behoren. Ik zal in het vervolg de php scrips duidelijker vermelden. Ik heb in ieder geval weer het een en ander geleerd.

Nogmaals bedankt. :thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan