Toon posts:

[PHP] mail()

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb al gezocht op google en ook in de search van GoT, dus neem me niet kwalijk als er al een topic hierover is, want die heb ik niet gevonden.

Ik zit met het volgende probleem:

Ik heb een formulier gemaakt waarmee gebruikers zich kunnen aanmelden voor een website. Wat de bedoeling hierbij is, is dat de gegevens in een database worden gezet en dat er een mailtje gestuurd wordt. Het probleem zit hem dus in het laatste. Ik wil namelijk graag variabelen uit het formulier meesturen in de mail. Ik weet alleen niet hoe dat moet.

Ik wil het volgende:

$message = '
Er heeft zich een nieuwe gebruiker ($voornaam $achternaam) aangemeld.
';

Hoe moet ik nou die variabelen aangeven? Quotes(") werken niet en een enkele quote(') ook niet.

Is hier een simpele manier voor, en zo ja, welke is dat dan?

  • Buzzman
  • Registratie: Juni 2000
  • Niet online
je kan toch wel een string opbouwen met variablen erin? Ik weet niet hoe dat in php gaat, maar in C# bijvoorbeeld:
string message = "Er heeft zich een nieuwe gebruiker (" + voornaam + " " + achternaam + ") aangemeld.";

Verwijderd

In PHP met een punt..
gebruiker ".$voornaam." ".$achternaam." aangemeld

  • stekkel
  • Registratie: Augustus 2001
  • Laatst online: 12-07 11:54
dubbele quotes werken wel.
Waar het probleem waarschijnlijk zit is dast jij register globals = off in je php.ini hebt staan en daardoor eerst je variablen op moet halen van de $_POST array (afhankelijk van php versie)

dus $voornaam = $_POST['voornaam'];

Verder heb je geen dubbele quotes nodig wanneer je $message als volgt opbouwd:
$message = 'blah ('.$voornaam.' '.$achternaam.') blah2.';

Verwijderd

stekkel schreef op 02 november 2002 @ 12:52:
dubbele quotes werken wel.
Waar het probleem waarschijnlijk zit is dast jij register globals = off in je php.ini hebt staan en daardoor eerst je variablen op moet halen van de $_POST array (afhankelijk van php versie)

dus $voornaam = $_POST['voornaam'];

Verder heb je geen dubbele quotes nodig wanneer je $message als volgt opbouwd:
$message = 'blah ('.$voornaam.' '.$achternaam.') blah2.';
Er staat dat hij geen problemen heeft met het opslaan in de database dus die globals zou goed moeten zitten

  • gvdh81
  • Registratie: Juli 2001
  • Laatst online: 13-08 18:15

gvdh81

To got or not to got..

juist.

Verwijderd

Topicstarter
Dat van die globals is inderdaad geen probleem. Bovendien staat de mail() op dezelfde plek als mijn INSERT INTO query dus dan zou ik dezelfde variabelen moeten kunnen gebruiken die ik ook in mijn statement gebruik. Ik heb nu de volgende dingen geprobeerd, zonder resultaat:

1. $message = 'Er heeft zich een nieuwe gebruiker \".$voorletters\" \".$achternaam\" aangemeld.';

2. $message = 'Er heeft zich een nieuwe gebruiker \'.$voorletters\' \'.$achternaam\' aangemeld.';

3. $message = 'Er heeft zich een nieuwe gebruiker \"$voorletters\" \"$achternaam\" aangemeld.';

4. $message = 'Er heeft zich een nieuwe gebruiker \'$voorletters\' \'$achternaam\' aangemeld.';

  • avoid
  • Registratie: November 2002
  • Laatst online: 28-08 14:24
Probeer deze eens:

$message = "Er heeft zich een nieuwe gebruiker $voorletters $achternaam aangemeld.";

Alleen als een string tussen *dubbele* quotes staat, worden variabelen geinterpreteerd. Als ie tussen single quotes staat dus niet.
Voor de volledigheid ook even de single quotes oplossing:

$message = 'Er heeft zich een nieuwe gebruiker ' . $voorletters . ' ' . $achternaam . 'aangemeld.';

Time flies like an arrow, fruit flies like a banana.


Verwijderd

Topicstarter
avoid schreef op 02 november 2002 @ 13:28:
Probeer deze eens:

$message = "Er heeft zich een nieuwe gebruiker $voorletters $achternaam aangemeld.";

Alleen als een string tussen *dubbele* quotes staat, worden variabelen geinterpreteerd. Als ie tussen single quotes staat dus niet.
Voor de volledigheid ook even de single quotes oplossing:

$message = 'Er heeft zich een nieuwe gebruiker ' . $voorletters . ' ' . $achternaam . 'aangemeld.';
Dat laatste heeft het hem gedaan. Wat ik eerst had dat daar op leek was:
$message = 'Er heeft zich een nieuwe gebruiker '.$voorletters' '.$achternaam' aangemeld.';

Maar dan kreeg ik een parse error. Waarom is jouw manier beter?? De tweede punt achter de variabele of een 'spatie' tussen de single quote en de variabele? Dan weet ik dat namelijk voor de volgende keer.

Verwijderd

Topicstarter
Ik heb het even uitgeprobeerd en het bleek de tweede punt achter de variabele te zijn.

De goede manier is dus: '.$variabele.'
De foute manier is: '.$variabele'

Thanks for all the help...

  • avoid
  • Registratie: November 2002
  • Laatst online: 28-08 14:24
Ik denk dat je nog een beginnende PHP-er bent?
De manieren die ik hier omrschrijf zijn de enige juiste (al zijn er nog vele andere manieren om jouw "probleem" op te lossen).
Als je net begint met PHP, zou ik lekker voor de eerste oplossing gaan: die met dubbele quotes om de hele string heen. Werkt altijd, en je hoeft niet na te denken over concatenatie van variabelen in de string (zoals ik in het tweede voorbeeld laat zien).
Enniewee: kijk anders eens even op de altijd behulpzame PHP manual: http://www.php.net/manual/en/language.types.string.php
Hier staat 't allemaal haarfijn uitgelegd!

[ Voor 3% gewijzigd door avoid op 25-03-2004 17:26 ]

Time flies like an arrow, fruit flies like a banana.


  • WimB
  • Registratie: Juli 2001
  • Laatst online: 30-03-2024
avoid schreef op 02 november 2002 @ 13:40:
Ik denk dat je nog een beginnende PHP-er bent?
De manieren die ik hier omrschrijf zijn de enige juiste (al zijn er nog vele andere manieren om jouw "probleem" op te lossen).
Als je net begint met PHP, zou ik lekker voor de eerste oplossing gaan: die met dubbele quotes om de hele string heen. Werkt altijd, en je hoeft niet na te denken over concatenatie van variabelen in de string (zoals ik in het tweede voorbeeld laat zien).
Enniewee: kijk anders eens even op de altijd behulpzame PHP manual: http://www.php.net/manual/en/language.types.string.php. Hier staat 't allemaal haarfijn uitgelegd!
Haal anders even die laatste punt uit je link weg, anders krijg je één of andere search pagina. Dit is de link: http://www.php.net/manual/en/language.types.string.php

Verwijderd

Topicstarter
Thnx all...

En ja, ik ben een beginnende PHP-er, maar dat maak ik wel weer goed ooit :*)
Pagina: 1