email met database gegevens lukt niet

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Bert vandenbogaerde

bert vandenbogaerde

18/12/2011 14:17:35
Quote Anchor link
Het formulier bevat bestaande gegevens uit de database en de gebruiker kan er gegevens bijvoegen. Als hij klikt op Submit gaat het naar onderstaand script.

Hier worden de gegevens die toegevoegd of gewijzigd zijn geupdate in de database.
Dit lukt perfect.

Op het einde van het script wil ik dat de samenvatting van de gegevens gemaild word naar de persoon in kwestie.
De mail komt niet aan.

Iemand een idee?
Gewijzigd op 20/12/2011 14:10:30 door Bert vandenbogaerde
 
PHP hulp

PHP hulp

22/12/2024 19:03:26
 
Wouter J

Wouter J

18/12/2011 14:24:54
Quote Anchor link
- Gebruik juiste foutafhandeling. Een voorbeeld kun je vinden op: SQL Boilerplate
- Regel 19 t/m 40 en 47 t/m 68 zijn onnodig en kosten alleen maar geheugen, gebruik gewoon de post variabelen in je script
- Haal variabelen buiten quotes
- MySQL is met hoofdletters. Dus niet 'select iets from iets' maar 'SELECT iets FROM iets'
- Gebruik geen * in queries, maar selecteer wat je wilt. Dit is sneller en overzichtelijker
- Gebruik de juiste mail headers: http://wiki.santhe.nl/index.php/De_juiste_mailheaders
 
Bert vandenbogaerde

bert vandenbogaerde

18/12/2011 14:32:20
Quote Anchor link
Ik ben de aanbevelingen alvast aan het uitvoeren.

als ik $aan aanpas naar een emailadres ([email protected]) dan komt het aan.
Alleen de database data word niet in de mail geplaatst.
 
Erwin H

Erwin H

18/12/2011 14:36:58
Quote Anchor link
Wat is hier de bedoeling van dan:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
$email=$_POST["email"];
$email=$_POST["email_".$row[id]];

Komt daar een geldig email adres uit?
 
Bert vandenbogaerde

bert vandenbogaerde

18/12/2011 14:41:36
Quote Anchor link
Dit staat er niet meer in.

Ik heb het script geupdate.
Gewijzigd op 20/12/2011 14:10:44 door bert vandenbogaerde
 
Erwin H

Erwin H

18/12/2011 14:49:13
Quote Anchor link
En nu heb je dus allerlei variabelen die niet gedefinieerd zijn..... wat komt er bijvoorbeeld uit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$aan = "$email";

Waarbij die quotes natuurlijk helemaal onzin zijn. Zoals al gezegd.... variabelen buiten quotes!
 
Bert vandenbogaerde

bert vandenbogaerde

18/12/2011 14:52:02
Quote Anchor link
Er komt niks uit.
het word niet verstuurd naar het adres die ik wil.
Hoe definieer ik de variabelen dan?

Ok dan plaats ik alle variabelen buiten quotes.
Gewijzigd op 18/12/2011 14:52:45 door bert vandenbogaerde
 
Erwin H

Erwin H

18/12/2011 15:01:15
Quote Anchor link
Wouter J op 18/12/2011 14:24:54:
- Regel 19 t/m 40 en 47 t/m 68 zijn onnodig en kosten alleen maar geheugen, gebruik gewoon de post variabelen in je script

Wouter gaf je het antwoord al. Gewoon de waardes in $_POST gebruiken.
Dus waar je eerst deed
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
$voornaam=$_POST["voornaam_".$row[id]];
$bericht .= "Voornaam: $voornaam\n\n";

Kan je gewoon doen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$bericht .= "Voornaam: ".$_POST["voornaam_".$row[id]]."\n\n";

En dan dus ook de variabelen buiten quotes...
Gewijzigd op 18/12/2011 15:01:28 door Erwin H
 
Bert vandenbogaerde

bert vandenbogaerde

18/12/2011 15:06:10
Quote Anchor link
Bedankt voor de hulp.

Heb dit reeds geprobeerd maar blijkbaar werkt dit niet.
Als ik een emailadres invul bij $aan dan komt de mail aan.
Maar er staan geen opgevraagde waardes (".$_POST["voornaam_".$row[id]].") bij.
 
Erwin H

Erwin H

18/12/2011 15:10:49
Quote Anchor link
Dus..... blijkbaar zijn er geen waardes in je POST array terecht gekomen. Waar controleer je dat? Dat is blijkbaar ook je probleem bij de email. Als je handmatig iets invult gebeurt er wel iets.

Schrijf voor de grap eens je heel POST array naar het scherm (met print_r($_POST)). Wat zie je dan?
 
Bert vandenbogaerde

bert vandenbogaerde

18/12/2011 15:30:32
Quote Anchor link
Ik krijg het volgende, alle correcte gegevens van de persoon die het formulier ingevuld heeft: (de waardes die persoonlijk zijn, zijn vervangen door xxx)
Gewijzigd op 20/12/2011 14:59:29 door bert vandenbogaerde
 
Erwin H

Erwin H

18/12/2011 15:41:57
Quote Anchor link
Dan is er nog een waarde om te checken: wat is $row[id]? Die gebruik je overal om dat nummer te krijgen (415 in bovenstaand voorbeeld), dus is $row[id] inderdaad 415? Ergens denk ik van niet, want ik kan die 'id' niet plaatsen. Het is geen variabele namelijk (dan zou het $row[$id] moeten zijn). Echo die dus eens.
 
Wouter J

Wouter J

18/12/2011 15:45:00
Quote Anchor link
Volgens mij werkt bert niet met constants (id) maar bedoelt hij een string ('id')...
 
Bert vandenbogaerde

bert vandenbogaerde

18/12/2011 15:46:36
Quote Anchor link
inderdaad een string
 
- SanThe -

- SanThe -

18/12/2011 15:46:52
Quote Anchor link
Als je input ($_POST of $_GET en dat soort dingen) onbeveiligd in een query zet is je database te hacken. En als je diezelfde waarden onbeschermd in je email zet is je email niet meer veilig. Zie SQL-Injection en E-Mail-Injection.
 
Erwin H

Erwin H

18/12/2011 15:49:12
Quote Anchor link
Wouter J op 18/12/2011 15:45:00:
Volgens mij werkt bert niet met constants (id) maar bedoelt hij een string ('id')...

Precies, dus $row[id] gaat niet werken, maar $row['id'] zou wel moeten werken.
Dus nogmaals Bert, echo $row[id] eens, of verander het meteen naar $row['id'] en echo dat.
 
- SanThe -

- SanThe -

18/12/2011 16:16:44
Quote Anchor link
Zet dit eens bovenin:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);

// rest

?>
 
Bert vandenbogaerde

bert vandenbogaerde

20/12/2011 09:05:08
Quote Anchor link
@- SanThe -

Dit is een stukje van de error die ik krijg.
Gewijzigd op 20/12/2011 14:59:13 door bert vandenbogaerde
 
Marijke Hakvoort

Marijke Hakvoort

20/12/2011 11:51:57
Quote Anchor link
Je post is dus leeg,
waarom defineer je je post binnen de while eigenlijk?
wat wil je bereiken?
 
Lendl Verschoor

Lendl Verschoor

20/12/2011 12:02:47
Quote Anchor link
Even iets anders, is het niet handig om te controleren of je Update is gelukt voordat je de mail stuurt?

en in de melding die je geeft zet je neer ""De gegevens zijn opgeslaan." is dit Belgisch?
 
Bert vandenbogaerde

bert vandenbogaerde

20/12/2011 15:00:07
Quote Anchor link
SOLVED

Iedereen bedankt voor de reacties!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.