abonnement Unibet Coolblue
  donderdag 15 maart 2012 @ 10:23:18 #276
12348 _Flash_
Heeft altijd blackjack
pi_109122041
Dan zit er ergens een typefoutje. Puntcomma of php-tags verkeerd.

Sowieso zou ik het volgende doen:
- in plaats van direct $_POST te doen, eerst via $_REQUEST naar een variabele
- deze variabelen filteren op HTML-code
- bij inserten in database ook speciale karakters vervangen
- dan pas die variabele gebruiken voor de body van zo'n mail
Devil, just come on back if you ever wanna try again, because I told you once you son of a bitch, I'm the best there's ever been!
pi_109122132
Ik kan geen puntcomma of php-tag ontdekken die verkeerd staat eigenlijk.

Ik vrees dat ik de rest niet ga proberen, want ik denk niet dat dat mij gaat lukken. Misschien dat ik over 3 weken meer php-kennis heb vergaard dat het dan lukt :') Maar voorlopig snap ik wel wat er staat, maar niet hoe ik dat moet uitvoeren.

Waarom is dat eigenlijk beter om te doen? Omdat veiliger?
pi_109122349
direct $_POST of $_GET gegevens gebruiken in je scripts is big nono

eerst $bla = $_POST['bla'];
dan kijken of de inhoud van $bla goed is
dan verwerken in het script
tjah :P
  donderdag 15 maart 2012 @ 10:38:57 #279
25889 Sitethief
Fulltime Flapdrol
pi_109122491
Of de data nou in $bla of $_POST['bla'] veilig gemaakt wordt maakt niks uit. Wat wel handig is hieraan is dat je nu alles in $_POST als onveilig kunt beschouwen en alles in de safe gemaakte array als veilig. Maar dat is vooral voor de programmeur handig. PHP maakt het niks uit in welke array iets nu veilig gemaakt is.
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht >:)
pi_109122537
Mijn eisen zijn vrij laag hoor, het wordt niet echt gepubliceerd en als het werkt doe ik al een dansje. Beveiliging is echt iets voor latere zorg voor mij, als ik afgestudeerd ben mik ik alles er ook weer af, kunnen ze me ook niet spammen.
  donderdag 15 maart 2012 @ 10:49:05 #281
75592 GlowMouse
l'état, c'est moi
pi_109122843
Eindigt de bestandsnaam op .php? Zoja, dan ondersteunt je host geen php meer.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_109123016
quote:
0s.gif Op donderdag 15 maart 2012 10:40 schreef RenRen- het volgende:
Mijn eisen zijn vrij laag hoor, het wordt niet echt gepubliceerd en als het werkt doe ik al een dansje. Beveiliging is echt iets voor latere zorg voor mij, als ik afgestudeerd ben mik ik alles er ook weer af, kunnen ze me ook niet spammen.
Beveiliging is niet je enige probleem hierin. In je huidige code zet je tekens die als HTML geïnterpreteerd kunnen worden niet om naar de corresponderende entities waardoor je opmaak eraan gaat zodra er bepaalde tekens voorkomen in de userinput.

Zie ook: http://php.net/manual/en/function.htmlentities.php
  donderdag 15 maart 2012 @ 10:54:22 #283
12348 _Flash_
Heeft altijd blackjack
pi_109123020
quote:
0s.gif Op donderdag 15 maart 2012 10:40 schreef RenRen- het volgende:
Mijn eisen zijn vrij laag hoor, het wordt niet echt gepubliceerd en als het werkt doe ik al een dansje. Beveiliging is echt iets voor latere zorg voor mij, als ik afgestudeerd ben mik ik alles er ook weer af, kunnen ze me ook niet spammen.
Ah ok dan.
Kan je het hele script eens copy pasten?

En test even met het volgende script of je provider php ondersteunt:
<?php
echo "hello world";
?>

@The_Terminator
Dat is natuurlijk ook onderdeel van de beveiliging.
Zo te zien gaat het hem om het principe. Zijn code zou moeten werken lijkt me, ben benieuwd hoe het complete script inclusief form er uit ziet, wellicht zit ergens anders een typefout.
Devil, just come on back if you ever wanna try again, because I told you once you son of a bitch, I'm the best there's ever been!
pi_109123085
quote:
0s.gif Op donderdag 15 maart 2012 10:49 schreef GlowMouse het volgende:
Eindigt de bestandsnaam op .php? Zoja, dan ondersteunt je host geen php meer.
:{
Dat zou kut zijn.

Wacht, ik ga even naar een andere pc, moment heren.
quote:
0s.gif Op donderdag 15 maart 2012 10:54 schreef The_Terminator het volgende:

[..]

Beveiliging is niet je enige probleem hierin. In je huidige code zet je tekens die als HTML geïnterpreteerd kunnen worden niet om naar de corresponderende entities waardoor je opmaak eraan gaat zodra er bepaalde tekens voorkomen in de userinput.

Zie ook: http://php.net/manual/en/function.htmlentities.php
Hier had ik dus echt nog nooit van gehoord :') Dat moet ik even lezen om te zien hoe ik dat toe kan passen.
pi_109123099
quote:
0s.gif Op donderdag 15 maart 2012 10:54 schreef _Flash_ het volgende:

[..]

Ah ok dan.
Kan je het hele script eens copy pasten?

En test even met het volgende script of je provider php ondersteunt:
<?php
echo "hello world";
?>

@The_Terminator
Dat is natuurlijk ook onderdeel van de beveiliging.
Zo te zien gaat het hem om het principe. Zijn code zou moeten werken lijkt me, ben benieuwd hoe het complete script inclusief form er uit ziet, wellicht zit ergens anders een typefout.
Ik ben er zo een met een vagina. Tot zo O+
  donderdag 15 maart 2012 @ 10:58:18 #286
12348 _Flash_
Heeft altijd blackjack
pi_109123145
Oh zo een.. :)
Devil, just come on back if you ever wanna try again, because I told you once you son of a bitch, I'm the best there's ever been!
  donderdag 15 maart 2012 @ 11:01:38 #287
25889 Sitethief
Fulltime Flapdrol
pi_109123241
quote:
0s.gif Op donderdag 15 maart 2012 10:56 schreef RenRen- het volgende:

[..]

Ik ben er zo een met een vagina. Tot zo O+
Oh, jij schrijft ook kutcode ;) ;) :P :P ?
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
pi_109123542
quote:
0s.gif Op donderdag 15 maart 2012 11:01 schreef Sitethief het volgende:

[..]

Oh, jij schrijft ook kutcode ;) ;) :P :P ?
Nee dat deed het mannetje op het internet die deze code schreef :(

Oké, nu staat hij op mijn echte server, ik heb mijn formulier ingevuld en krijg ik:

1Warning: Cannot modify header information - headers already sent by (output started at /cupacake/process_recepteninzenden.php:12) in /cupacake/process_recepteninzenden.php on line 24

Eigenlijk is de bedoeling dat je die hele pagina niet ziet :{ maar dat hij een loop maakt naar een 'bedankt voor het bericht'-pagina.

Goed, dit krijg ik in mijn email:
quote:
Your Name
E-Mailllll Ben
Contact No
Message
Wat gek is, want ik had wel in alle velden iets in heb gevuld.

De code zoals hij in process_receptenverzenden.php staat:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
if(isset($_POST['submit'])) {
   $to = '.@hotmail.com' ;
   $subject = 'Cup a Cake Recepten inzenden'; 
   $headers = 'MIME-Version: 1.0' . "\r\n";
   $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
   $message = "<table><tr><td>Your Name</td><td>".$_POST['name']."</td></tr>
               <tr><td>E-Mailllll</td><td>".$_POST['email']."</td></tr>
               <tr><td>Contact No</td><td>".$_POST['contact']."</td></tr>
               <tr><td>Message</td><td>".$_POST['message']."</td>
               </tr></table>" ;
  mail($to, $subject, $message, $headers);
  header('Location: verzonden_recepteninzenden.php');
}
?>


[ Bericht 0% gewijzigd door RenRen- op 15-03-2012 11:28:41 ]
pi_109123698
quote:
0s.gif Op donderdag 15 maart 2012 11:10 schreef RenRen- het volgende:

[..]

Nee dat deed het mannetje op het internet die deze code schreef :(

Oké, nu staat hij op mijn echte server, ik heb mijn formulier ingevuld en krijg ik:
[ code verwijderd ]

Eigenlijk is de bedoeling dat je die hele pagina niet ziet :{ maar dat hij een loop maakt naar een 'bedankt voor het bericht'-pagina.

Goed, dit krijg ik in mijn email:

[..]

Wat gek is, want ik had wel in alle velden iets in heb gevuld.

De code zoals hij in process_receptenverzenden.php staat:
[ code verwijderd ]

Die header fout wordt veroorzaakt doordat er al output wordt verzonden voordat de header() functie wordt aangeroepen: header('Location: verzonden_recepteninzenden.php');

Waarschijnlijk staat er een spatie voor je php code of wordt er ergens anders via print of echo iets verzonden waardoor de headers al zijn verzonden.

Het probleem dat de ingevoerde gegevens niet in de mail terechtkomen kan worden veroorzaakt doordat je form de methode GET gebruikt om de gegevens te verzenden en jij ze uit de POST array probeert te halen. Om dit uit te kunnen zoeken zou je ook de code van je formulier waar de gebruiker de gegevens invoert moeten posten.

Je kunt eventueel checken of er überhaupt iets wordt verzonden dmv: print_r($_REQUEST);
  donderdag 15 maart 2012 @ 11:15:35 #290
25889 Sitethief
Fulltime Flapdrol
pi_109123701
quote:
0s.gif Op donderdag 15 maart 2012 11:10 schreef RenRen- het volgende:

[..]

Nee dat deed het mannetje op het internet die deze code schreef :(

Oké, nu staat hij op mijn echte server, ik heb mijn formulier ingevuld en krijg ik:
[ code verwijderd ]

Eigenlijk is de bedoeling dat je die hele pagina niet ziet :{ maar dat hij een loop maakt naar een 'bedankt voor het bericht'-pagina.

Goed, dit krijg ik in mijn email:

[..]

Wat gek is, want ik had wel in alle velden iets in heb gevuld.

De code zoals hij in process_receptenverzenden.php staat:
[ code verwijderd ]

quote:
header() is used to send a raw HTTP header. See the » HTTP/1.1 specification for more information on HTTP headers.

Remember that header() must be called before any actual output is sent, either by normal HTML tags, blank lines in a file, or from PHP. It is a very common error to read code with include(), or require(), functions, or another file access function, and have spaces or empty lines that are output before header() is called. The same problem exists when using a single PHP/HTML file.
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
  donderdag 15 maart 2012 @ 11:18:42 #291
12348 _Flash_
Heeft altijd blackjack
pi_109123792
Ok het versturen gaat goed. Kennelijk blijven die velden in de mail leeg vanwege een foutje in het voorliggende formulier.

Kan je die code ook eens posten?
Devil, just come on back if you ever wanna try again, because I told you once you son of a bitch, I'm the best there's ever been!
pi_109123991
quote:
0s.gif Op donderdag 15 maart 2012 11:15 schreef The_Terminator het volgende:

[..]

Die header fout wordt veroorzaakt doordat er al output wordt verzonden voordat de header() functie wordt aangeroepen: header('Location: verzonden_recepteninzenden.php');

Waarschijnlijk staat er een spatie voor je php code of wordt er ergens anders via print of echo iets verzonden waardoor de headers al zijn verzonden.

Het probleem dat de ingevoerde gegevens niet in de mail terechtkomen kan worden veroorzaakt doordat je form de methode GET gebruikt om de gegevens te verzenden en jij ze uit de POST array probeert te halen. Om dit uit te kunnen zoeken zou je ook de code van je formulier waar de gebruiker de gegevens invoert moeten posten.

Je kunt eventueel checken of er überhaupt iets wordt verzonden dmv: print_r($_REQUEST);
Oke. Ik weet niet of ik het allemaal begrijp maar ik ga een poging wagen :)
- Moet die header dan hogerop in de code? Zodat hij eerder wordt uitgevoerd?

Ik heb alle spaties en white spaces gewoon weggehaald (op de enters na iedere lijn na) .
De code die ik postte was alle PHP-code op de pagina, verder alleen een head en een body, meer niet. Als dat weg moet hoor ik het wel :Y

Code van het formulier:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<form name="contact" method="POST" action="process_recepteninzenden.php">
                    <table width="456" border="0" cellpadding="0" cellspacing="0">
                       <tr>
                          <td height="28" class="contactformulier" valign="top">Naam</td>
                          <td><input name="Naam" class="contactformulier" type="text"></td>
                       </tr>
                       <tr>
                          <td height="28" class="contactformulier"  valign="top">E-mailadres</td>
                          <td><input name="email" class="contactformulier" type="text" onsubmit="return ValidateRequiredFields();"></td>
                       </tr>
                       <tr>
                          <td height="28" class="contactformulier"  valign="top">Naam recept</td>
                          <td><input name="Naam recept" class="contactformulier" type="text"></td>
                       </tr>
                       <tr>
                          <td height="28" class="contactformulier_textarea"  valign="top">Recept</td>
                          <td><textarea rows="8" cols="50" name="Recept" class="contactformulier_textarea" /></textarea></td>
                       </tr>
                       <tr>
                          <td> </td>
                          <td valign="top" align="center"><button type="image" value="Verstuur" name="submit" class="verzendknop">Verstuur</button></td>
                       </tr>
                    </table>
                    </form>

En nu kijken naar dat stukje wat jij stuurde.
quote:
0s.gif Op donderdag 15 maart 2012 11:18 schreef _Flash_ het volgende:
Ok het versturen gaat goed. Kennelijk blijven die velden in de mail leeg vanwege een foutje in het voorliggende formulier.

Kan je die code ook eens posten?
Zie hierboven

Edit:
Oh dit gebeurt:
1Warning: Cannot modify header information - headers already sent by (output started at /home/deb36484/domains/irenkapetrarca.com/public_html/cupacake/process_recepteninzenden.php:11) in /home/deb36484/domains/irenkapetrarca.com/public_html/cupacake/process_recepteninzenden.php on line 23
  donderdag 15 maart 2012 @ 11:31:55 #293
12348 _Flash_
Heeft altijd blackjack
pi_109124248
Die header-melding is niet zo'n probleem. Dat komt doordat er of een spatie o.i.d. nog vóór die header in de output-HTML naar voren komt. Staat er toevallig een witregel voor de openings <?php tag?

Of check anders het bestandsformaat eens. Deze moet zonder zogenaamde BOM-header zijn. Sommige editors doen dit standaard verkeerd.

Dat de velden in je mail leeg zijn komt door de naamgeving. Je gebruikt in het form wel de namen "Naam", "email", "Naam recept" maar in het verzendscript staan nog "name", "contact" etc.

Deze moeten gelijk aan elkaar zijn. En het is beter om geen spatie te gebruiken in zo'n name.

Het $_POST['naam'] commando haalt de waarde op van de input in het formulier met name='naam'. Die naamgeving moet dus kloppen.
Devil, just come on back if you ever wanna try again, because I told you once you son of a bitch, I'm the best there's ever been!
pi_109124278
quote:
0s.gif Op donderdag 15 maart 2012 11:24 schreef RenRen- het volgende:

[..]

Oke. Ik weet niet of ik het allemaal begrijp maar ik ga een poging wagen :)
- Moet die header dan hogerop in de code? Zodat hij eerder wordt uitgevoerd?

Ik heb alle spaties en white spaces gewoon weggehaald (op de enters na iedere lijn na) .
De code die ik postte was alle PHP-code op de pagina, verder alleen een head en een body, meer niet. Als dat weg moet hoor ik het wel :Y

Code van het formulier:
[ code verwijderd ]

En nu kijken naar dat stukje wat jij stuurde.

[..]

Zie hierboven

Edit:
Oh dit gebeurt:
[ code verwijderd ]

De ontbrekende data komt doordat de namen van je velden verschillen met de sleutels die je uit de POST array probeert te halen.

Een input met name="Naam" verwijst naar $_POST['Naam'] en niet naar $_POST['name']

Als die body tag die je noemt wordt weergegeven voordat de header() functie wordt uitgevoerd dan zit daar het probleem. Er mag geen enkele uitvoer naar de browser zijn voordat je de header() functie uitvoert.
pi_109124361
quote:
0s.gif Op donderdag 15 maart 2012 11:31 schreef _Flash_ het volgende:
Die header-melding is niet zo'n probleem. Dat komt doordat er of een spatie o.i.d. nog vóór die header in de output-HTML naar voren komt. Staat er toevallig een witregel voor de openings <?php tag?

Of check anders het bestandsformaat eens. Deze moet zonder zogenaamde BOM-header zijn. Sommige editors doen dit standaard verkeerd.

Dat de velden in je mail leeg zijn komt door de naamgeving. Je gebruikt in het form wel de namen "Naam", "email", "Naam recept" maar in het verzendscript staan nog "name", "contact" etc.

Deze moeten gelijk aan elkaar zijn. En het is beter om geen spatie te gebruiken in zo'n name.
Ik heb alles helemaal tegen elkaar gezet, de php staat direct na de body-tag, geen spatie of iets.
Dat BOM kan het probleem zijn, ik zal het eruit halen en kijken of dat werkt :o

Oh. Dat is stom van me. :') Goh, even veranderen. Dankje!

Bedankt voor de moeite ook iedereen.
quote:
0s.gif Op donderdag 15 maart 2012 11:32 schreef The_Terminator het volgende:

[..]

De ontbrekende data komt doordat de namen van je velden verschillen met de sleutels die je uit de POST array probeert te halen.

Een input met name="Naam" verwijst naar $_POST['Naam'] en niet naar $_POST['name']
Ook bedankt. Echt stom van me :')
pi_109124484
*O* OPGELOST. Ik had dus niet door dat ik dat soort dingen niet kan doen, het werkt! Heeeel erg bedankt iedereen O+
  donderdag 15 maart 2012 @ 11:38:08 #297
12348 _Flash_
Heeft altijd blackjack
pi_109124516
Graag gedaan. Waar kunnen we de recepten inzien of opsturen?
Devil, just come on back if you ever wanna try again, because I told you once you son of a bitch, I'm the best there's ever been!
pi_109124690
quote:
0s.gif Op donderdag 15 maart 2012 11:38 schreef _Flash_ het volgende:
Graag gedaan. Waar kunnen we de recepten inzien of opsturen?
Ik stuur je even een DM :Y Als anderen het ook willen zien, DM even :)

Het is nog lang niet af hoor, voor mij is dit een enorme onderneming. (Jullie gaan denk ik lachen om wat ik moet doen, maar ik vind het heel ingewikkeld), zo moet ik informatie uit de database gaan uitlezen, zitten er in de recepten stappen met afbeeldingen die op meerdere plekken terug gaan komen, daar moet ik ook nog een oplossing voor vinden. Maar daar ben ik nu dus nog mee bezig wat je gaat zien is allemaal statisch. Behalve het formulier :+
  donderdag 15 maart 2012 @ 11:57:00 #299
12348 _Flash_
Heeft altijd blackjack
pi_109125160
Thanks, mooie site.
Als je nog wat tips wilt voor de beveiliging of om spam te voorkomen (je gaat veel spam krijgen met zo'n formulier) dan moet je het maar laten weten :)
Devil, just come on back if you ever wanna try again, because I told you once you son of a bitch, I'm the best there's ever been!
pi_109125184
quote:
0s.gif Op donderdag 15 maart 2012 11:37 schreef RenRen- het volgende:
*O* OPGELOST. Ik had dus niet door dat ik dat soort dingen niet kan doen, het werkt! Heeeel erg bedankt iedereen O+
Mooi!

Ik heb nog wel een suggestie als zijnde een verbetering van je huidige invoer-verwerking:
1
2
3
<?php
$input_naam 
= isset($_POST['name']) ? htmlentities($_POST['name']) : '';
?>

De $input_naam variable kun je vervolgens in je mail gebruiken:
1<td>Your Name</td><td>".$input_naam."</td>

Hierdoor weet je zeker dat bijzondere tekens goed verwerkt worden en dat je geen waarschuwingen krijgt indien een een element niet bestaat in de POST array.
abonnement Unibet Coolblue
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')