Een deel kun je al opvangen door de string na de laatste spatie als huisnummer te beschouwen.quote:Op donderdag 22 december 2011 23:01 schreef Light het volgende:
[..]
Huisnummer weglaten uit het adres is lastig. Je hebt namelijk ook straten met een nummer in de straatnaam. En je hebt te maken met huisnummers met toevoeging, waarbij die toevoeging uit letters en/of cijfers en/of spaties kan bestaan.
Dus in "Dorpsstraat 5 E" wil je "E" als huisnummer beschouwen?quote:Op donderdag 22 december 2011 23:09 schreef The_Terminator het volgende:
[..]
Een deel kun je al opvangen door de string na de laatste spatie als huisnummer te beschouwen.
Maak er de laatste numerieke string van danquote:Op donderdag 22 december 2011 23:14 schreef Light het volgende:
[..]
Dus in "Dorpsstraat 5 E" wil je "E" als huisnummer beschouwen?
Daarom zeg ik ook 'een deel', ik zeg niet dat mijn methode perfect is natuurlijk.quote:Op donderdag 22 december 2011 23:14 schreef Light het volgende:
[..]
Dus in "Dorpsstraat 5 E" wil je "E" als huisnummer beschouwen?
Ik heb er nu zoiets van gemaakt:quote:Op vrijdag 23 december 2011 11:57 schreef Apekoek het volgende:
Goed, ik heb deskundige hulp nodig, dat lijkt hier wel snor te zitten.
Ik heb namelijk een plugin in Wordpress die nog niet precies doet wat ik wil. Namelijk de "Contact form 7 to database extension". Graag wil ik de uploads die via het normale contact form zijn voltooid, downloadbaar worden in een post of op een pagina aan de voorkant. Echter zit ik hier met een PHP achtige generator die niet doet wat ik wil, of beter gezegd, welke code ik ook maak, ik kom er simpel weg niet uit. Ik zou namelijk erg graag het e-mail adres met de upload ergens in een post willen tonen.
Wat moet ik hier mee als jullie dit zo zien?
[ afbeelding ]
1 2 3 4 5 6 7 | [cfdb-html form="Test formulier" show="your-name,Upload" limit="10" orderby="Submitted desc" filelinks="link"] <div class="your-headline-style">${your-name}</div> <div class="download-link">${Upload}</div> [/cfdb-html] |
1 2 3 | <?php session_start(); ?> |
1 2 3 4 5 6 | <form action="scripts/hoi.php" method="post"><table border="0"> <?php $_SESSION['breedte'] = $_POST['breedte']; echo $_SESSION['breedte'] ?> <?php $_SESSION['hoogte'] = $_POST['hoogte']; echo $_SESSION['hoogte'] ?> <input type="text" name="naam" value="testnaam" readonly /></td> <input type="submit" value="Invoeren" id="invoerknop" style="cursor:hand; cursor:pointer;" /> </form> |
1 2 3 4 5 6 7 | <?php include("db.inc.php"); $sql="INSERT INTO crimyclowndb (breedte,hoogte,naam) VALUES('{$_POST['breedte']}','{$_POST['hoogte']}','{$_POST['naam']}');"; mysql_query($sql) or die(mysql_error()); ?> |
quote:Array
(
[naam] => testnaam
)
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 2
1 | <input type=hidden name=hoogte value=10 /> |
SESSIONS op alles gezet behalve de naam die op POST. Nu krijg ik geen errors meer, maar hij doet het ook nog niet.quote:Op vrijdag 23 december 2011 14:08 schreef Pakspul het volgende:
Je geeft de SESSION waardes weer op het beeld en dan verwacht je dat ze ineens in het formulier terug komen? Dan zou je deze eerst aan een formulier object moeten handen.
[ code verwijderd ]
bijvoorbeeld.
Of je moet $_SESSION i.p.v. $_POST in je query gebruiken.
[edit]Echo de $sql eens en kijken eens of je rare dingen ziet die niet mogen.[/edit]
Begrijp je eigenlijk wat je doet? Als je de query gaat debuggen wat zegt je logica dan?quote:Op vrijdag 23 december 2011 14:54 schreef Crimyclown het volgende:
[..]
SESSIONS op alles gezet behalve de naam die op POST. Nu krijg ik geen errors meer, maar hij doet het ook nog niet.
Correct, maar laten we het voor niet te moeilijk makenquote:Op vrijdag 23 december 2011 15:02 schreef Catch22- het volgende:
Ga alsjeblieft prepared statements gebruiken. Never, ever, ever, userinput (of post/get info) in je mysql gooien.
1 2 3 4 5 6 7 8 9 10 | <?php include("db.inc.php"); echo "<pre>"; print_r($_SESSION); $query = "INSERT into crimyclowndb (hoogte, breedte ) ". "VALUES ('$hoogte', '$breedte')"; mysql_query($query) or die('Error, query failed : ' . mysql_error()); ?> |
Mag vast wel in Oracle hequote:Op vrijdag 23 december 2011 15:02 schreef Catch22- het volgende:
Ga alsjeblieft prepared statements gebruiken. Never, ever, ever, userinput (of post/get info) in je mysql gooien.
Niet bepaalt, zal straks het naslag werk erbij halen.quote:Op vrijdag 23 december 2011 16:02 schreef Pakspul het volgende:
[..]
Je hebt dus absoluut geen idee wat je doet...
quote:Op vrijdag 23 december 2011 11:57 schreef Apekoek het volgende:
Goed, ik heb deskundige hulp nodig, dat lijkt hier wel snor te zitten.
Ik heb namelijk een plugin in Wordpress die nog niet precies doet wat ik wil. Namelijk de "Contact form 7 to database extension". Graag wil ik de uploads die via het normale contact form zijn voltooid, downloadbaar worden in een post of op een pagina aan de voorkant. Echter zit ik hier met een PHP achtige generator die niet doet wat ik wil, of beter gezegd, welke code ik ook maak, ik kom er simpel weg niet uit. Ik zou namelijk erg graag het e-mail adres met de upload ergens in een post willen tonen.
Wat moet ik hier mee als jullie dit zo zien?
[ afbeelding ]
Alsof PDO lastiger is dan standaard SQLquote:Op vrijdag 23 december 2011 15:04 schreef Pakspul het volgende:
Correct, maar laten we het voor niet te moeilijk maken
quote:Op vrijdag 23 december 2011 15:36 schreef Cue_ het volgende:
[..]
Mag vast wel in Oracle he
hier willen we daar uiteindelijk nog wel naar toe, maar dat is ondertussen al een jaar uitgesteld volgens mij
Daar ben ik sinds kort op overgestapt. Dit omdat ik MySQL direct gebruiken onpraktischer begon te vinden en ik MySQLi ook zo'n onding vind.quote:Op vrijdag 23 december 2011 23:55 schreef Light het volgende:
[..]
Alsof PDO lastiger is dan standaard SQL
1 2 3 4 5 | <?php $result = mysql_query ("SELECT * FROM hoofdmenu ORDER BY H_id ASC"); while($row = mysql_fetch_array($result)){ echo "<a href = 'index_new.php?func=".$row['H_name']."' class='".$row['H_name']." ' >".$row['H_name']."</a>"; ?> |
1 2 3 4 5 6 7 8 9 10 | <?php $result = mysql_query ("SELECT * FROM hoofdmenu ORDER BY H_id ASC"); while($row = mysql_fetch_array($result)){ if ($row['H_actief'] == "1") { echo "<a href = 'index_new.php?func=".$row['H_name']."' class='".$row['H_name']." actief"." ' >".$row['H_name']."</a>"; } else{ echo "<a href = 'index_new.php?func=".$row['H_name']."' class='".$row['H_name']." ' >".$row['H_name']."</a>"; ?> |
Je bedoelt dat het item met de pagina waar je op bent actief is?quote:Op dinsdag 27 december 2011 10:43 schreef MrNiles het volgende:
om maar op 1 plaats te wijzigen heb ik nu een menu gemaakt uit een database
[ code verwijderd ]
maar hoe kan ik hier nu iets active maken?
ik gebruik functions voor elke pagina aan te roepen (index.php?func=home of func=pagina2 etc
zelf dat ik iets aan
[ code verwijderd ]
maar ben er nog niet helemaal aan uit hoe die 1 en 0 in de database kan updaten
iemand een idee hoe zoiets aan te pakken
of moet het helemaal anders opgezet worden?
1 2 3 | <?php if ($row['H_name'] == $_GET['func']) { ?> |
maar het wordt eigenlijk iets ingewikkelder :pquote:Op dinsdag 27 december 2011 10:53 schreef mstx het volgende:
[..]
Je bedoelt dat het item met de pagina waar je op bent actief is?
[ code verwijderd ]
1 2 3 4 5 6 7 8 9 10 | <tr><td><?php echo $row[Naam]; ?><input name="Naam[]" value="<?php echo $row[Naam]; ?>" type="hidden"></td> <td><input name="Punten[]" size="2" value="1"></td> <td><input name="Onderdeel" value="<?php echo $Onderdeel; ?>" type="hidden"><input name="ID" value="<?php echo $row[ID]; ?>" type="hidden"></td></tr> <?php } ?> </table> <input type="submit" name="Opslaan" value="Opslaan" /></form><br /> <?php if($_SERVER['REQUEST_METHOD'] == 'POST' AND (!empty($_POST['Opslaan']))) { $sql = ("INSERT INTO scoretabel VALUES('$Naam', '$Onderdeel', '$Punten')"); mysql_query($sql) or die(mysql_error()); |
Je wilt alle gegevens uit de post array halen voor het element: "Naam[]"?quote:Op vrijdag 30 december 2011 16:40 schreef Feyenoordlife het volgende:
Even geleden dat ik wat met PHP heb gedaan, en ik moet nu even snel iets fixen voor een trainingskamp. Het lukt mij alleen niet meer om meerdere records tegelijk in te voeren. Het was een simpel iets, maar ik kom er zo snel ff niet meer op.
Ik krijg een aantal resultaten uit mijn while loop en deze worden in een tabelletje gegooid (niet erg netjes nu, maar dat maakt hiervoor even niet uit).
[ code verwijderd ]
Zou iemand dit even snel kunnen (helpen met) oplossen?
1 2 3 4 5 | <?php foreach($_POST['naam'] as $k => $v) { //hierin je code om het naar de db te schrijven. variable $v bevat de waarde van de input. Niet vergeten te escapen. } ?> |
Ongeveer ja, alleen moeten de punten er ook nog bij. In ieder geval bedankt al voor dit gedeelte.quote:Op vrijdag 30 december 2011 17:27 schreef The_Terminator het volgende:
[..]
Je wilt alle gegevens uit de post array halen voor het element: "Naam[]"?
Zo ja;
[ code verwijderd ]
Zet dit in de loop om de punten array uit te lezen:quote:Op vrijdag 30 december 2011 18:15 schreef Feyenoordlife het volgende:
[..]
Ongeveer ja, alleen moeten de punten er ook nog bij. In ieder geval bedankt al voor dit gedeelte.
1 2 3 | <?php $punten = $_POST['Punten'][$k]; ?> |
Yes, dat was hem ja. Dankje!quote:Op vrijdag 30 december 2011 21:39 schreef The_Terminator het volgende:
[..]
Zet dit in de loop om de punten array uit te lezen:
[ code verwijderd ]
1 2 3 4 5 6 7 8 9 10 11 | <?php foreach($_POST['Naam'] as $k => $v) { $sql = ("SELECT Naam, SUM(Punten) as Punten_totaal FROM scoretabel WHERE Naam = '".$v."' ORDER BY Punten_totaal DESC "); $result = mysql_query($sql) or die(mysql_error()); while ($row = mysql_fetch_array($result)){ echo "$row[Punten_totaal] $row[Naam] <br>"; } ?> |
Bedankt, ga ik ff naar kijken. XSS aanvallen hoef ik voor dit projectje niet naar te kijken, wordt alleen door mij gebruikt draait op localhost.quote:Op maandag 2 januari 2012 01:05 schreef GlowMouse het volgende:
Van regel 4 t/m 9 doet hij dat wel, maar voor elke nieuwe $k en $v begint een nieuwe sortering. Let bij echo $row['Naam'] op voor XSS aanvallen.
Je haalt nogal wat dingen door elkaar nu.quote:Op maandag 2 januari 2012 02:35 schreef Apekoek het volgende:
Een simpele vraag voor jullie kenners, voor mij echter niet, wie helpt mij uit de brand?
Ik wil downloadbare links tonen op mijn website, dit zijn bestanden die vanuit een upload map moeten komen. Echter krijg ik nu de meldong "forbidden" en de bestanden zijn dus nie letterlijk downloadbaar via de directe link. In dat zelfde mapje zit een .htaccess file waar "deny for all" in staat (dit bestand van contact forms 7 keert zelfs na verwijdering terug).
Hoe de links/uploads downloadbaar te maken zonder de "forbidden" pagina?
Als dat bestand steeds terugkomt gaat het nooit lukken natuurlijk. Wat is 'contact forms 7' precies?quote:Op maandag 2 januari 2012 02:35 schreef Apekoek het volgende:
Een simpele vraag voor jullie kenners, voor mij echter niet, wie helpt mij uit de brand?
Ik wil downloadbare links tonen op mijn website, dit zijn bestanden die vanuit een upload map moeten komen. Echter krijg ik nu de meldong "forbidden" en de bestanden zijn dus nie letterlijk downloadbaar via de directe link. In dat zelfde mapje zit een .htaccess file waar "deny for all" in staat (dit bestand van contact forms 7 keert zelfs na verwijdering terug).
Hoe de links/uploads downloadbaar te maken zonder de "forbidden" pagina?
Zorgt de .htaccess met "Deny for all" voor de forbidden pagina wanneer ik uit dezelfde map een bestand downloadbaar wil maken?quote:Op maandag 2 januari 2012 11:19 schreef The_Terminator het volgende:
[..]
Als dat bestand steeds terugkomt gaat het nooit lukken natuurlijk. Wat is 'contact forms 7' precies?
Je zou een soort van proxy script kunnen schrijven dat het bestand aanbiedt via de readfile functie, echter is het misschien beter om gewoon de oorzaak te achterhalen waarom dat .htaccess bestand steeds terugkeert na het verwijderen.
Een .htaccess met daarin de string 'deny for all' zorgt er inderdaad voor dat de directory niet leesbaar is door de webserver. Je zou het op kunnen lossen door een lege .htaccess in de dir te plaatsten en die te chmodden naar bijvoorbeeld 444, dan kan de webserver het bestand niet meer aanpassen, een nette oplossing is het echter niet.quote:Op maandag 2 januari 2012 11:32 schreef Apekoek het volgende:
[..]
Zorgt de .htaccess met "Deny for all" voor de forbidden pagina wanneer ik uit dezelfde map een bestand downloadbaar wil maken?
Het gaat trouwens om een Wordpress plugin voor formulieren (http://contactform7.com/), de bestanden die worden upgeload via het formulier wil ik niet alleen per mail krijgen maar ook op mijn server krijgen (deze bestanden wil ik dan downloadbaar maken op een andere sectie op mijn website).
Hoe op te lossen?
Klopt het dient als een beveiliging, dus ik ben ook niet helemaal zeker van of ik hier goed aan doe. Correctie, ik bedoelde deny from all ipv for, maar het idee zal wel hetzelfde zijn.quote:Op maandag 2 januari 2012 11:41 schreef The_Terminator het volgende:
[..]
Een .htaccess met daarin de string 'deny for all' zorgt er inderdaad voor dat de directory niet leesbaar is door de webserver. Je zou het op kunnen lossen door een lege .htaccess in de dir te plaatsten en die te chmodden naar bijvoorbeeld 444, dan kan de webserver het bestand niet meer aanpassen, een nette oplossing is het echter niet.
Zoals ik in mijn vorige bericht al aangaf zou je naar de oorzaak kunnen zoeken. Waarschijnlijk staat ergens in de broncode van de plugin een lijn code dat ervoor zorgt dat de .htaccess wordt weggeschreven, als een soort van beveiliging...
Helaas, zelfs een lege .htaccess file op een chmod van 444 zorgt voor een 403 Forbidden pagina (wanneer ik een upgeload bestand wil benaderen vanuit mijn website).quote:Op maandag 2 januari 2012 11:41 schreef The_Terminator het volgende:
[..]
Een .htaccess met daarin de string 'deny for all' zorgt er inderdaad voor dat de directory niet leesbaar is door de webserver. Je zou het op kunnen lossen door een lege .htaccess in de dir te plaatsten en die te chmodden naar bijvoorbeeld 444, dan kan de webserver het bestand niet meer aanpassen, een nette oplossing is het echter niet.
Zoals ik in mijn vorige bericht al aangaf zou je naar de oorzaak kunnen zoeken. Waarschijnlijk staat ergens in de broncode van de plugin een lijn code dat ervoor zorgt dat de .htaccess wordt weggeschreven, als een soort van beveiliging...
Nog steeds niet het gewenste resultaat en al heel wat geprobeerd, ik denk dat ik maar eens voor een betaalde plugin met de gewenste functies ga (raden jullie dat ook aan in het geval van een n00b zoals ik?).quote:
Div-id's kun je maar één keer in een pagina gebruiken, div-classes onbeperkt.quote:Op woensdag 4 januari 2012 14:49 schreef Onnoman het volgende:
Goedemiddag,
ik probeer 2 google web translators toe te passen op mijn website, die synchroon werken.
Dus gewoon eigenlijk een duplicaat.
dit div element plaatst de google dropdown, maar als je deze elders ook wilt toepassen krijg ik deze niet in zicht.
<div id="google_translate_element"></div>
(zie http://translate.google.com/translate_tools )
Da's niet echt nuttig op die manier, zo kunnen we de PHP code niet lezen.quote:Op donderdag 5 januari 2012 00:17 schreef Vanillax het volgende:
Dit is de pagina; http://www.lucsenden.nl/contact.php
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 ofzoNog even los van de vragen over hoe dat in hemelsnaam gehashed is als die input zo de query in geslingerd wordt...
Preg_matchquote: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_matchEn 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: |