[PHP] mogelijkheden met een php mailform.

Pagina: 1
Acties:
  • 1.308 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hallo iedereen,

Ik ben mij net beginnen verdiepen in php nadat ik html en css onder de knie gekregen heb. Nu heb ik al een basic mailform in elkaar kunnen boksen. Nu vroeg ik mij af wat de volgende opties zijn in het form zodat het veilig en professioneel kan gebruikt worden.
nu heb ik al iets gehoord van:

1. je php code verstoppen wanneer men je broncode leest.
2. beveiligen tegen javascripts met htmlentities. Nu heb ik dat proberen toe te voegen. In het mailtje dat ik aankrijg zijn dan inderdaad de speciale tekens omgezet naar de entitiy-names. Maar wanneer ik bijvoorbeeld in het form hetvolgende ingeef:
JavaScript:
1
2
3
<script type='text/javascript'>
    window.location = 'http://www.humo.be/'
    </script>'

dan voert hij die window.location ook effectief uit. Ik dacht net dat htmlentities moest beschermen tegen zulke scripts. Of doe ik het verkeerd? Heel eenvoudig:
PHP:
1
2
3
4
5
6
7
8
9
$naam = htmlspecialchars($_POST['formname']);
$email = htmlspecialchars($_POST['formemail']);
$onderwerp = htmlspecialchars($_POST['formsubject']);
$boodschap = htmlspecialchars($_POST['formmessage']);

$naam = htmlentities($naam);
$email = htmlentities($email);
$onderwerp = htmlentities($onderwerp);
$boodschap = htmlentities($boodschap);


3. Kan de form ook naar dezelfde pagina waarin het form zich bevind gestuurd worden?


Ik vorige week een hele week zitten googlen zonder resultaat. mss schort er iets aan mijn google techniek. Als beginner weet je nooit of je code nu voldoende is of het vol veiligheidsfouten staat. Ik wil later gewoon niet voor verassingen komen te staan.
Alvast bedankt voor jullie tijd!
mvg,
Danny

(ps: 4. ik vind nergens de functie om mijn php in een blok met getallen in de marge te posten.)

[ Voor 1% gewijzigd door een moderator op 04-12-2007 23:56 . Reden: Code tags toegevoegd ]


Acties:
  • 0 Henk 'm!

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 19:47

TeeDee

CQB 241

1) je PHP code zal niet te zien zijn als men de broncode van je gerenderde pagina bekijkt.
2) htmlencode?
3) ja
4) [php]...[/php] of [code=php]...[/code]

Heart..pumps blood.Has nothing to do with emotion! Bored


Acties:
  • 0 Henk 'm!

  • CRiMiNaL
  • Registratie: Mei 2002
  • Laatst online: 10-01-2024

CRiMiNaL

Witlof ^^

Een duidelijk verschil waar je je eerst van bewust moet zijn is:

PHP -> Serverside scripting
Javascript -> Clientside scripting

Javascript, zoals het voorbeeld dat jij geeft, gebeurd compleet aan de client(browser)kant en daar kun je dus met PHP niet aan veranderen.

Ik zou als ik jou was in iedergeval nog iets meer tutorials gaan lezen over PHP, het best simpel zodra je de basics begrijpt.

... MMORPG Addict.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
2) htmlencode?
Bedankt om te reageren maar php.net noch zend studio kent htmlencode.

Acties:
  • 0 Henk 'm!

  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

htmlentities zou normaal de < en de > moeten converteren in &lt; en &gt;

[ Voor 5% gewijzigd door Snake op 07-12-2007 21:24 ]

Going for adventure, lots of sun and a convertible! | GMT-8


Acties:
  • 0 Henk 'm!

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 15-09 18:24

dusty

Celebrate Life!

Verwijderd schreef op vrijdag 07 december 2007 @ 21:19:
[...]
Bedankt om te reageren maar php.net noch zend studio kent htmlencode.
zoals hierboven vermeld: htmlentities()

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ha voila, die gebruikte ik dus al...
Bedankt! :)

Acties:
  • 0 Henk 'm!

  • Apen-nootjes
  • Registratie: September 2001
  • Laatst online: 03-04 12:48

Apen-nootjes

aka Apen-klootjes

1. Gebeurt automatisch.. je PHP code wordt uitgevoerd en de uitvoer daarvoor naar je browser gestuurd..
2. htmlentities zou het moeten zijn
3. sure:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php

// Kijk of het form gesubmit is
if(isset($_POST['submitbutton']))
{
    // Je acties
}
else // Form nog niet gesubmit, form laten zien..
{
    print '<form name="add_category" action="'.$_SERVER['REQUEST_URI'].'" method="POST">
                <!-- rest van je form -->
                <input type="submit" value="Verzenden" name="submitbutton">
            </form>';
}
?>  

4. heb je al antwoord op ;)

SmartDoDo: Ach, afhankelijk van je smaak kan het best een lekker geil ding zijn :P
You never had a date you couldn't inflate

Pagina: 1