1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <HEAD><TITLE>www.lucsenden.nl - Voor al uw videoproducties.</TITLE> <META content="text/html; charset=utf-8" http-equiv=Content-Type> <META name=robots content=index,follow> <META name=keywords content=" "> <META name=description content=" "> <META content=0 http-equiv=Expires><LINK rel=stylesheet type=text/css href="style.css" media=screen> <script type="text/javascript" src="js/jquery-1.4.2.js"></script> <!--[if IE]> <link type="text/css" href="css/ie.css" rel="stylesheet" media="screen" /> <![endif]--> <!--[if IE 6]> <script type="text/javascript" src="js/pngfix.js"></script> <script type="text/javascript"> DD_belatedPNG.fix('img,#logo'); </script> <![endif]--> <LINK rel=stylesheet type=text/css href="css/ie.css" media=screen> </HEAD> <BODY> <DIV class=top-bar-wrap> </DIV> <DIV class=main-bg> <DIV id=sub-page class=main-wrap> <DIV id=header class=mod-con> <H1 id=logo><A href="/#"><IMG alt="" src="/image/luc.png"></A></H1> <UL id=main-menu> <LI><A href="/index.html"><STRONG>Home</STRONG></A><A class=cur href="/about.html"><STRONG>Over mij</STRONG></A> </LI> <LI><A href="/diensten.html"><STRONG>Diensten</STRONG></A> </LI> <LI><A href="/portfolio.html"><STRONG>Portfolio</STRONG></A> </LI> <LI><A href="/referenties.html"><STRONG>Referenties</STRONG></A> </LI> <LI><A href="/contact.html"><STRONG>Contact</STRONG></A> </LI></UL></DIV> <DIV id=main class=mod-con> <DIV class="container clearfix"> <DIV style="WIDTH: 861px;HEIGHT: 1006px" id=about-page class=main-con> <DIV class=title-nav> <H2>Contact</H2></DIV> <DIV class=content> <P>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam et risus non arcu porttitor feugi at in at neque. In hac habitasse platea dictumst. Proin pretium neque at turpis fermentum de aliquet. Ut risus nisi, scelerisque in convallis et, volutpat malesuada elit. Ut nulla libero, condi entum eget scelerisque eget, blandit sit amet metus. Suspendisse potenti. Nulla luctus temus augue dictum cursus. Curabitur non risus dui. In sit amet tellus in lacus fringilla condimentuma t sit amet libero. Fusce purus ligula, hendrerit ut vulputate eget, vestibulum non diam. Vestib ulum facilisis, leo id volutpat vestibulum, eros ligula ornare urna, pellentesque laoreet magna purus ac metus. Nulla facilisi.</P> <?php echo ''; if(isset($_POST['submit'])) { $subject = $_POST['naam'].' stuurde een mail via PHP!'; $email = $_POST['xmemorylane@hotmail.com']; $bericht = wordwrap($_POST['bericht'], 70); $versturen_gelukt = mail($email, $subject, $bericht); if($versturen_gelukt) { echo ' <p>De email is verstuurd! <a href="'.$_SERVER['PHP_SELF'].'">Nog een mail sturen</a>.</p>'."\r\n"; } else { echo ' <p>Er is iets mis gegaan, <a href="'.$_SERVER['PHP_SELF'].'">probeer het opnieuw</a>.</p>'."\r\n"; } } else { echo ' <form action="'.$_SERVER['PHP_SELF'].'" method="POST" type="text/plain"> <label for="name">Naam</label> <input type="naam" name="naam" id="naam" /> <label for="email">Email</label> <input type="email" name="email" id="email" /> <label for="bericht">Bericht</label> <textarea name="bericht" id="bericht"></textarea> <label for="submit"></label> <input type="submit" name="submit" id="submit" value="Stuur bericht!" /> </form> '; } echo ' '; ?> </DIV></DIV></DIV></DIV></DIV></DIV> <DIV class=siteintro-wrap> </DIV> <DIV class=footer-wrap> <DIV id=footer class=mod-con> <DIV class=copyright>© 2012 Copyright Lucsenden.nl. All Rights Reserved. </DIV> <DIV class=hovergallery> <a href="http://facebook.com/lucsenden"><img src="http://i44.tinypic.com/10p9g5i.png" /></a> <a href="http://youtube.com/luckske112"><img src="http://i44.tinypic.com/34rwqdv.png" /></a> <a href="http://twitter.com/lucsenden"><img src="http://i42.tinypic.com/xfst8g.png" /></a> </DIV> </DIV></DIV></BODY></html> |
Dan moet je je adblocker uitzetten.quote:Op donderdag 5 januari 2012 00:25 schreef Vanillax het volgende:
Diepe zucht. Ik kan niet quoten, kan geen tekst in een area zetten, helemaal niks. Wordt er gek van.
Ik had die pagina toevallig net gevonden, ik snap het alleen niet want ze hebben het daar over mails versturen vanuit een script en niet vanuit een form. Ik weet dat mijn script goed is (tenminste, dat mag ik toch hopen als de hele klas het al gebruikt heeft) alleen ik weet niet hoe ik hem werkende krijg..quote:Op donderdag 5 januari 2012 00:28 schreef GlowMouse het volgende:
kijk eens naar http://nl3.php.net/manual/en/function.mail.php
Op regel 74 wordt $_POST uitgelezen voor een e-mailadres. Het adres staat helemaal niet in $_POST, en al zeker niet met de key die je daar uitleest.quote:Op donderdag 5 januari 2012 00:24 schreef Vanillax het volgende:
Ah, ja. Ik heb zojuist geleerd dat je dat niet kan zien via de source.
Hier mijn volledige code;
[ code verwijderd ]
Je script is helemaal niet goed. Ga je gewoon eens verdiepen in wat je aan het doen bent, in plaats van (fout) het werk van je klasgenoten te kopieren en dan gelijk hierheen rennen als het niet werkt. Zo leer je nooit wat.quote:Op donderdag 5 januari 2012 00:33 schreef Vanillax het volgende:
[..]
Ik had die pagina toevallig net gevonden, ik snap het alleen niet want ze hebben het daar over mails versturen vanuit een script en niet vanuit een form. Ik weet dat mijn script goed is (tenminste, dat mag ik toch hopen als de hele klas het al gebruikt heeft) alleen ik weet niet hoe ik hem werkende krijg..
Als ik nu alles invul en op zenden klik komt er 'Er is iets mis gegaan, probeer het opnieuw'.
Fout werk van mijn klasgenoten?quote:Op donderdag 5 januari 2012 00:37 schreef KomtTijd... het volgende:
[..]
Je script is helemaal niet goed. Ga je gewoon eens verdiepen in wat je aan het doen bent, in plaats van (fout) het werk van je klasgenoten te kopieren en dan gelijk hierheen rennen als het niet werkt. Zo leer je nooit wat.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | <?php echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>Email formulier</title> <link href="/style/style_normal.css" rel="Stylesheet" type="text/css" media="all" /> </head> <body> <div id="wrapper"> '; if(isset($_POST['submit'])) { $subject = $_POST['naam'].' stuurde een mail via PHP!'; $email = $_POST['email']; $bericht = wordwrap($_POST['bericht'], 70); $versturen_gelukt = mail($email, $subject, $bericht); if($versturen_gelukt) { echo ' <p>De email is verstuurd! <a href="'.$_SERVER['PHP_SELF'].'">Nog een mail sturen</a>.</p>'."\r\n"; } else { echo ' <p>Er is iets mis gegaan, <a href="'.$_SERVER['PHP_SELF'].'">probeer het opnieuw</a>.</p>'."\r\n"; } } else { echo ' <form action="'.$_SERVER['PHP_SELF'].'" method="POST" type="text/plain"> <label for="name">Naam</label> <input type="naam" name="naam" id="naam" /> <label for="email">Email</label> <input type="email" name="email" id="email" /> <label for="bericht">Bericht</label> <textarea name="bericht" id="bericht"></textarea> <label for="submit"></label> <input type="submit" name="submit" id="submit" value="Stuur bericht!" /> </form> '; } echo ' </div> </body> </html> '; ?> |
1 2 3 4 5 6 7 8 9 | <?php if(isset($_POST['submit'])) { $subject = $_POST['naam'].' stuurde een mail via PHP!'; $email = $_POST['xmemorylane@hotmail.com']; $bericht = wordwrap($_POST['bericht'], 70); $versturen_gelukt = mail($email, $subject, $bericht); ?> |
1 2 3 4 5 6 7 8 9 | <?php if(isset($_POST['submit'])) { $subject = $_POST['naam'].' stuurde een mail via PHP!'; $email = $_POST['email']; $bericht = wordwrap($_POST['bericht'], 70); $versturen_gelukt = mail($email, $subject, $bericht); ?> |
Ergens in jouw code staat mail(...). Uit http://nl3.php.net/manual/en/function.mail.php haal je dat de eerste parameter het e-mailadres is waar de e-mail naartoe wordt gestuurd. Daar vul jij $email in. Kijk eens welke waarde $email heeft.quote:Op donderdag 5 januari 2012 00:33 schreef Vanillax het volgende:
[..]
Ik had die pagina toevallig net gevonden, ik snap het alleen niet want ze hebben het daar over mails versturen vanuit een script en niet vanuit een form. Ik weet dat mijn script goed is (tenminste, dat mag ik toch hopen als de hele klas het al gebruikt heeft) alleen ik weet niet hoe ik hem werkende krijg..
Als ik nu alles invul en op zenden klik komt er 'Er is iets mis gegaan, probeer het opnieuw'.
quote:Op donderdag 5 januari 2012 00:47 schreef Tegan het volgende:
Ok, en wat heb je allemaal aangepast?
Regel 19 bijvoorbeeld. Waarom heb je daar je email ingevuld?
quote:Op donderdag 5 januari 2012 00:35 schreef Light het volgende:
[..]
Op regel 74 wordt $_POST uitgelezen voor een e-mailadres. Het adres staat helemaal niet in $_POST, en al zeker niet met de key die je daar uitleest.
1 2 3 4 5 6 7 8 9 10 11 12 | $variable //dit is een variable //in een variable kun je van alles stoppen $variable = 'lala' //nu zit er lala in $variable echo $variable //nu verschijnt er de inhoud van $variable op het scherm $variable = 'lulu' //nu zit er lulu in $variable //er bestaan ook arrays, dat is een soort lijst met keys en values $test = array(); //hier maak je een array mee aan die leeg is $test['lala'] = 'haha'; //hiermee maak je een array aan met een key die lala heet en een waarde die haha heet //een speciaal type array is bijvoorbeeld $_POST $_POST['email'] //hier staat de waarde van het veld uit je formulier met de naam 'email' . Het ['email'] achter $_POST is dus niet de plek waar jij je eigen mailadres moet invullen. Dat doe je in het veld zelf. |
quote:Op donderdag 5 januari 2012 11:05 schreef boem-dikkie het volgende:
Dat script van die leraar trouwens. Je hele HTML echo'enSpammers vrij spel geven.
Template parsers júíst niet, over het algemeen.quote:Op donderdag 5 januari 2012 12:01 schreef Sitethief het volgende:
Technisch gezien echo'en de meeste template parsers ook .
Erg slordig idd. Waarom makkelijk doen als het moeilijk kanquote:Op donderdag 5 januari 2012 11:05 schreef boem-dikkie het volgende:
Dat script van die leraar trouwens. Je hele HTML echo'en.
1 2 3 4 5 6 7 8 | <html> <head> <title>bla</title> </head> <body> <center><?php echo str_repeat('bla ', 1000); ?></center> </body> </html> |
geen echoquote:Op donderdag 5 januari 2012 12:38 schreef The_Terminator het volgende:
[..]
Erg slordig idd. Waarom makkelijk doen als het moeilijk kan
@Vanillax: laat je leraar het volgende even zien, die heeft blijkbaar nog veel te leren op PHP gebied...
[ code verwijderd ]
SPOILEROm spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.
Deed ik heel vroeger ook (toen ik 16-17 was), nu werk ik volgens OOP en MVC.quote:Op donderdag 5 januari 2012 11:05 schreef boem-dikkie het volgende:
Dat script van die leraar trouwens. Je hele HTML echo'en.
Extra sessies zijn eigenlijk ook slechts lapmiddelen.quote:Op donderdag 5 januari 2012 21:40 schreef Dokay het volgende:
Beste PHP devvers,
Even een vrij basale vraag. Voor mijn werkgever heb ik een php applicatie in elkaar geknutseld waarbij men intern mensen in kan roosteren en mensen extern aan kunnen geven wanneer ze beschikbaar zijn. Ziekte en verlof worden ook allemaal geregeld, iedereen blij. Alleen nu het steeds meer en meer gebruikt wordt door deze middelgrote organisatie begint mijn zorg over de veiligheid te stijgen. Laat ik eerlijk zijn: ik heb het in elkaar gezet met trail en error, heb nooit een PHP boek of cursus gedaan en met frunniken lukt me eigenlijk altijd wel wat ik wil. Maar ik weet ook dat het waarschijnlijk niet de veiligste en meest efficiente manier is.
Waar ik vooral tegen aan loop en wil vragen hoe jullie dat doen;
Als ik variabelen door minimaal 2 verschillende page's moet loodsen, gebruik ik de HTML "hidden input" tag om deze vast te houden en vervolgens weer door te zetten naar de volgende pagina die er wat mee doet.
Nou heb ik er nooit bij stilgestaan dat een kwaadwillende gebruiker deze hidden input tag kan invullen naar wens en vervolgens terug kan sturen naar de server met allerlei kwaadaardige code. In het geval van mijn appje zou dat een catastrofe zijn, want het zit bomvol met dit soort code om de eerder opgegeven waarde vast te houden.
Ik heb gepoogd om een extra SESSION aan te maken om de variable vast te houden, maar er loopt er al een van de gebruiker die ingelogd is en welke zijn ID vasthoud. Het geeft problemen als ik een tweede sessie hiernaast probeer te starten want dan wordt aangegeven dat er al een sessie loopt.
Hoe lossen jullie dit op? Alvast bedankt!
Bedankt voor je snelle reactie,quote:Op donderdag 5 januari 2012 22:00 schreef Ofyles2 het volgende:
[..]
Extra sessies zijn eigenlijk ook slechts lapmiddelen.
Ik zou de gegevens gewoon controleren totdat een gebruiker zijn opdracht volledig heeft voltooid.
Dus onder andere: waarden typecasten (in een voor jouw gunstige type), reguliere expressies, htmlentities, strip_tags. Ik stel voor de controlemodellen in een aparte map op te slaan en de bestanden hierin alleen aan te roepen als het echt nodig is.
Desgewenst kun je je projectje ook naar mij toesturen als je het echt niet ziet zitten...
Of je verdiept je een keer in classes en bent ook per direct van het gezeik af. Dan ben je nog flexibelerquote:Op donderdag 5 januari 2012 22:29 schreef Ofyles2 het volgende:
In dat geval zou ik ook voor de 30 diensten een aparte MySQL-tabel maken. Het id-nummer zou ik meegeven met de URL.
Wat betreft SQL-injecties: deze kun je tegengaan door invoerwaarden te controleren en eventueel te escapen (mysql_real_escape_string).
Off-topic:
Een veel betere aanrader is PDO (hier een tutorial), waarmee je meerdere databasesystemen kunt gebruiken zonder complete codeblokken om te ploegen.
Dat gaat in dezelfde sessie, je kunt $_SESSION['blahblah'] met vullen en daarna $_SESSION['user'] met wat anders.quote:Op donderdag 5 januari 2012 21:40 schreef Dokay het volgende:
Ik heb gepoogd om een extra SESSION aan te maken om de variable vast te houden, maar er loopt er al een van de gebruiker die ingelogd is en welke zijn ID vasthoud. Het geeft problemen als ik een tweede sessie hiernaast probeer te starten want dan wordt aangegeven dat er al een sessie loopt.
Bedankt voor je tip, ik ga het morgen meteen uitproberen!quote:Op donderdag 5 januari 2012 22:34 schreef GlowMouse het volgende:
[..]
Dat gaat in dezelfde sessie, je kunt $_SESSION['blahblah'] met vullen en daarna $_SESSION['user'] met wat anders.
Yep.quote:Op donderdag 5 januari 2012 22:37 schreef Dokay het volgende:
[..]
Bedankt voor je tip, ik ga het morgen meteen uitproberen!
Is er ook een mogelijkheid om van te voren gedefinieerde waarden (welke ik nu in hidden HTML tags heb staan) veilig over te dragen tijdens de POST naar de volgende pagina..? (Behalve strip tags, eigenlijk dat er geen wijzingen in welke zin dan ook mogelijk zijn van de huidige waarde..)
Klopt, daar ben ik ook zeer grote voorstander van (als onderdeel van MVC- en OOP-programmeren).quote:Op donderdag 5 januari 2012 22:31 schreef Pakspul het volgende:
[..]
Of je verdiept je een keer in classes en bent ook per direct van het gezeik af. Dan ben je nog flexibeler
*meldt.quote:
Die reden zal wel later bedacht zijn. Als hashing ontbreekt zal de lengte van het db-veld de ware reden achter de beperking tot 12 karakters zijn.quote:Op vrijdag 6 januari 2012 00:54 schreef KomtTijd... het volgende:
[..]
Maar srsly, een maximale lengte aan het password veld geven om SQL injectie te voorkomen?
Zoiets hoor je eerder op te lossen met preg_match en PDO.quote:Op vrijdag 6 januari 2012 00:54 schreef KomtTijd... het volgende:
[..]
*meldt.
Daarom ga ik ook niet datsoort systemen klussen, Maar srsly, een maximale lengte aan het password veld geven om SQL injectie te voorkomen? Echt wtf! Blijkbaar heeft iemand er wel over nagedacht dus, maar toen besloten dat mysql_real_escape() te moeilijk was ofzo Nog even los van de vragen over hoe dat in hemelsnaam gehashed is als die input zo de query in geslingerd wordt...
Preg_match En ja tegenwoordig doet iedereen dat met PDO of MySQLi (of aanverwanten in andere talen) maar als die website 5 jaar oud is ga je 'm niet helemaal herschrijven daarvoor.quote:Op vrijdag 6 januari 2012 00:57 schreef Ofyles2 het volgende:
[..]
Zoiets hoor je eerder op te lossen met preg_match en PDO.
Preg_match voor reguliere expressies. Je kunt nooit 100% zeker zijn dat al je bezoekers zo poeslief zijn...quote:Op vrijdag 6 januari 2012 00:59 schreef KomtTijd... het volgende:
[..]
Preg_match En ja tegenwoordig doet iedereen dat met PDO of MySQLi (of aanverwanten in andere talen) maar als die website 5 jaar oud is ga je 'm niet helemaal herschrijven daarvoor.
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |