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.quote: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.quote: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.
quote:Op donderdag 15 maart 2012 10:49 schreef GlowMouse het volgende:
Eindigt de bestandsnaam op .php? Zoja, dan ondersteunt je host geen php meer.
Hier had ik dus echt nog nooit van gehoord Dat moet ik even lezen om te zien hoe ik dat toe kan passen.quote: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
Ik ben er zo een met een vagina. Tot zoquote: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.
Oh, jij schrijft ook kutcode ?quote:Op donderdag 15 maart 2012 10:56 schreef RenRen- het volgende:
[..]
Ik ben er zo een met een vagina. Tot zo
Nee dat deed het mannetje op het internet die deze code schreefquote:
1 | Warning: Cannot modify header information - headers already sent by (output started at /cupacake/process_recepteninzenden.php:12) in /cupacake/process_recepteninzenden.php on line 24 |
Wat gek is, want ik had wel in alle velden iets in heb gevuld.quote:Your Name
E-Mailllll Ben
Contact No
Message
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'); } ?> |
Die header fout wordt veroorzaakt doordat er al output wordt verzonden voordat de header() functie wordt aangeroepen: header('Location: verzonden_recepteninzenden.php');quote: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: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.
Oke. Ik weet niet of ik het allemaal begrijp maar ik ga een poging wagenquote: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);
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> |
Zie hierbovenquote: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?
1 | Warning: 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 |
De ontbrekende data komt doordat de namen van je velden verschillen met de sleutels die je uit de POST array probeert te halen.quote: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
Code van het formulier:
[ code verwijderd ]
En nu kijken naar dat stukje wat jij stuurde.
[..]
Zie hierboven
Edit:
Oh dit gebeurt:
[ code verwijderd ]
Ik heb alles helemaal tegen elkaar gezet, de php staat direct na de body-tag, geen spatie of iets.quote: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.
Ook bedankt. Echt stom van mequote: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']
Ik stuur je even een DM Als anderen het ook willen zien, DM evenquote:Op donderdag 15 maart 2012 11:38 schreef _Flash_ het volgende:
Graag gedaan. Waar kunnen we de recepten inzien of opsturen?
Mooi!quote:Op donderdag 15 maart 2012 11:37 schreef RenRen- het volgende:
OPGELOST. Ik had dus niet door dat ik dat soort dingen niet kan doen, het werkt! Heeeel erg bedankt iedereen
1 2 3 | <?php $input_naam = isset($_POST['name']) ? htmlentities($_POST['name']) : ''; ?> |
1 | <td>Your Name</td><td>".$input_naam."</td> |
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |