[PHP] Mailform, Select Multiple. Wat doe ik fout?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • C7Diemaco
  • Registratie: December 2002
  • Laatst online: 17-04 11:31

C7Diemaco

Je naait het steeds of America

Topicstarter
Hallo,

Zonder gekheid, ik heb hier 3 avonden aan verspeeld en nog krijg ik het niet goed. Ik ben al zover dat ik weet wat er mis gaat en wat de mogelijke oplossingen zijn. Hoe ik deze oplossingen echter implementeer.... ik heb van alles geprobeerd en heb gewoonweg niet genoeg kennis van PHP. Kan iemand mij laten zien hoe ik onderstaand probleem oplos?

Ik heb een mailform met daarin een keuzeveld. Door gebruik te maken van CTRL + Click kunnen meerdere opties worden aangekozen:

[code=taal]<label class="formFieldQuestion">Ik wil graag informatie over (meerdere opties mogelijk)
<a class=info href=#><img src=gfx/tip_small.png border=0><span class=infobox>Maak hier uw keuze, hou de ctrl toets ingedrukt om meerdere items te selecteren</span></a></label>
<select multiple name="field_7[]" size="7" type=text class=mainForm id=field_7>
<option value="optie 1">Optie 1</option>
<option value="optie 2">Optie 2</option>
<option value="optie 3">Optie 3</select>[/code=taal]

De situatie dient zo te zijn dat ik via de mail gegevens ontvang van wat een bezoeker graag wil weten. Het stukje php (processor.php) is zo belegd (oorsprong phpformgenerator):

[code=taal]<?php

$where_form_is="http://".$_SERVER['SERVER_NAME'].strrev(strstr(strrev($_SERVER['PHP_SELF']),"/"));

session_start();
if( ($_SESSION['security_code']==$_POST['security_code']) && (!empty($_POST['security_code'])) ) {
mail("mijn@email.nl","Informatieverzoek van " . $_POST['field_1'] . " via de website","" . $_POST['field_1'] . " vraagt informatie aan over het volgende:

Naam en achternaam: " . $_POST['field_1'] . "
Adres: " . $_POST['field_2'] . "
Postcode: " . $_POST['field_3'] . "
Woonplaats: " . $_POST['field_4'] . "
Telefoonnummer: " . $_POST['field_5'] . "
E-mailadres: " . $_POST['field_6'] . "
Informatie over: ".$_POST['field_7'] . "
Aanvullende tekst: " . $_POST['field_8'] . "

","From: " . $_POST['field_6'] . "");

include("bedankt.html");
}
else {
include("foutieve_controle.html");
}

?>[/code=taal]

Nu schijnt het dat ik hiermee een array krijg terwijl je values moet hebben. Ik krijg dus maar 1 keuze te zien in de mail. Heb het ook al zo voor elkaar gekregen dat ik inplaats van informatie de tekst : "Array" kreeg. Waar in de php code plaats ik wat om te komen tot wat ik wil?

Overige info, voor de form methode gebruik ik post:

[code=taal]<form method=post enctype=multipart/form-data action=processor.php onSubmit="return validatePage1();">[/code=taal]

en de submit:

[code=taal]<input id="saveForm" class="mainForm" type="submit" value="Verstuur" />[/code=taal]

Zoals ik het nu inschat is het hele stuk javascript (wat soort voor validaties etc) niet relevant om te posten.

Hopelijk dat iemand mij kan helpen, volgens mij is het behoorlijk eenvoudig.

There is no knowlegde that is not power


Acties:
  • 0 Henk 'm!

  • Johnny
  • Registratie: December 2001
  • Laatst online: 14:39

Johnny

ondergewaardeerde internetguru

PHP:
1
implode(', ', $_POST['field_7'])

Aan de inhoud van de bovenstaande tekst kunnen geen rechten worden ontleend, tenzij dit expliciet in dit bericht is verwoord.


Acties:
  • 0 Henk 'm!

  • Noork
  • Registratie: Juni 2001
  • Niet online
Je waarden staan in de array. Doe eens "print_r($_POST['field_7']);" om te controleren.

Een array kun je uitlezen met behulp van een for each loopje.

[ Voor 27% gewijzigd door Noork op 24-07-2008 14:40 ]


Acties:
  • 0 Henk 'm!

  • MarCreative
  • Registratie: Februari 2008
  • Laatst online: 18-06 14:47
Als je een array krijgt is het al aan de goede kant. Wat je even moet doen is print_r($arraynaam); en dat posten dan kan ik even kijken wat er mis gaat.

Acties:
  • 0 Henk 'm!

  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02 23:12

SchizoDuckie

Kwaak

ik ga geloof ik even thedailywtf mailen...

PHP:
1
$where_form_is="http://".$_SERVER['SERVER_NAME'].strrev(strstr(strrev($_SERVER['PHP_SELF']),"/"));
:? :? :?
Verder ziet dat hele gegenereerde stukje code er echt uit als een gigantisch grote invite voor SQL injecties :X

Stop uploading passwords to Github!


Acties:
  • 0 Henk 'm!

Verwijderd

SchizoDuckie schreef op donderdag 24 juli 2008 @ 14:57:
ik ga geloof ik even thedailywtf mailen...

PHP:
1
$where_form_is="http://".$_SERVER['SERVER_NAME'].strrev(strstr(strrev($_SERVER['PHP_SELF']),"/"));
:? :? :?
Verder ziet dat hele gegenereerde stukje code er echt uit als een gigantisch grote invite voor SQL injecties :X
SQL injecties? Ik zie geen SQL?

offtopic:
Mail injecties wel, maar daar komt ie vanzelf achter als ie op een blacklist staat ;)

[ Voor 10% gewijzigd door Verwijderd op 24-07-2008 14:59 ]


Acties:
  • 0 Henk 'm!

  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02 23:12

SchizoDuckie

Kwaak

Verwijderd schreef op donderdag 24 juli 2008 @ 14:58:
[...]

SQL injecties? Ik zie geen SQL?

offtopic:
Mail injecties wel, maar daar komt ie vanzelf achter als ie op een blacklist staat ;)
Nee, ik heb ook even op die phpformgenerator site gekeken om te zien wat het nou eigenlijk doet.
Mij advies aan de TS, gebruik dit als *basis* en valideer eerst even je input aan de serverside

Stop uploading passwords to Github!

Pagina: 1