De waarde van woonplaats zal ergens in je script geset moeten worden.quote:Op zondag 12 februari 2006 21:02 schreef mooya het volgende:
Ik heb een irritant probleem met de Magic Quotes..
ik heb thuis mijn website gemaakt zonder magic_quotes. en nou zet ik hem op Internet en daar staat hij AAN.. dus al mijn invoervelden krijgen een extra slash..
ik heb het e.e.a geprobeert...
- set_magic_quotes_runtime(0);
- een htacces file aangepast
En de onderstaande code in mijn include bestand geplakt:
[ code verwijderd ]
Ik haal mijn variabele op als:
$woonplaats = addslashes(htmlspecialchars($woonplaats));
ipv:
$woonplaats = addslashes(htmlspecialchars($_POST['woonplaats']));
Als ik de 2e optie gebruik dan werkt het goed.. maar bij de 1e niet..
En ik zie het ook niet echt zitten om alles weer om te gooien.
Iemand een idee?
htmlspecialchars is een functie die invloed uitoefent op output. Deze pas je dus niet toe bij het valideren van input.quote:Op zondag 12 februari 2006 21:55 schreef beerten het volgende:
Om verder getik in je script te voorkomen doe je het in een keer goed
$woonplaats = htmlspecialchars(stripslashes($_POST['woonplaats']));
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 | $reportMail = 'bla@gmail.com'; $redirectPage = 'error/error.html'; if (($errno & error_reporting()) == 0) return; $err = ''; switch($errno) { case E_ERROR: $err = 'FATAL'; break; case E_WARNING: $err = 'ERROR'; break; case E_NOTICE: return; } $message = "Er is een error geconstateerd op een van de pagina's<br /><br />"; $message .= "De error gebeurde in het volgende bestand:<br />"; $message .= $errfile . "<br /><br />"; $message .= "Op lijn <b>$errline</b> deed zich de volgende error voor:<br />"; $message .= $err . ", nr. " . $errno . ": " . $errstr . "<br /><br /><br />"; $message .= "-------------------------------------------------------------<br />"; $message .= "-- <i>Dit bericht is automatisch gegenereerd door BLIK BOT</i> --"; $headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; $headers .= 'From: BLIK Bot <blikbot@blik.nl>' . "\r\n"; mail($reportMail, "BLIK Error", $message, $headers); print '<META HTTP-EQUIV="Refresh" CONTENT="0;url=' . $redirectPage . '">'; exit(); } |
In de HTML mailtjes is dat <a href> wel weggehaald, maar is het geen link. Mijn vraag is dus of ik dat kan veranderen, dus gewoon die hele link weghalen in $errstr.quote:move_uploaded_file(/map/image.jpg) [<a href='function.move-uploaded-file'>function.move-uploaded-file</a>]: failed to open stream: No such file or directory
1 2 3 4 5 6 7 8 9 10 11 | $last_id = mysql_insert_id(); $imgnaam = "image_nieuws_" . $last_id . $extension; $path = "/images/nieuws"; move_uploaded_file($_FILES['inputImage']['tmp_name'], $path . "/" . $imgnaam); $query = "INSERT INTO table(field_id, field_image_naam) VALUES ('" . $last_id . "','" . $imgnaam . "')"; mysql_query($query); } else { //Error boodschap etc... } |
move_uploaded_file() geeft false terug als er iets fout gaat (zoals je in de manual kan lezenquote:Op zondag 12 februari 2006 22:13 schreef SkaterSam het volgende:
Dus hoe kan ik zien of move_uploaded geslaagd is? En als laatste vraag: kan ik een zelfde soort functie maken voor MySQL errors?
1 2 3 4 5 6 7 8 9 10 11 12 | $_SESSION['add_error'] .= "<li>Kon het bestand niet verplaatsen</li>"; header("Location: add.php"); exit; } else { $query = "INSERT INTO table(field_nieuws_id, field_image_naam) VALUES ('" . $last_id . "','" . $imgnaam . "')"; mysql_query($query); } |
Correct. En dat moet dus uit staan.quote:Op zondag 12 februari 2006 21:22 schreef mooya het volgende:
En register_globals is toch dat je een variabele kan ophalen zonder $_POST[] en $_GET[]?
functie:quote:Op zondag 12 februari 2006 21:55 schreef beerten het volgende:
[..]
De waarde van woonplaats zal ergens in je script geset moeten worden.
$woonplaats = $_POST['woonplaats'];
Als je dit bovenaan je script zet dan hoef je verder niets te veranderen. Staan er dan overal slashes omheen dan tik je
$woonplaats = stripslashes($_POST['woonplaats']);
Om verder getik in je script te voorkomen doe je het in een keer goed
$woonplaats = htmlspecialchars(stripslashes($_POST['woonplaats']));
1 2 3 | $_POST[$key] = stripslashes($postval); } |
Het beste is om de hele site aan te gaan passen naar gebruik van $_POST, $_GET, etc.quote:Op zondag 12 februari 2006 23:17 schreef mooya het volgende:
[..]
moet ik nu de hele site aanpassen, of is er een andere oplossing?
Die HTML kan in je database absoluut geen kwaad, zolang je maar consequent bent met de manier waarop je die contents outputquote:Op zondag 12 februari 2006 23:29 schreef mooya het volgende:
maar het beste is om pure html van een gebruiker op te slaan in je DB? en bij de output pas te htmlspecialcharren ?
IK vraag me nu trouwens af of dat de oplossing zal zijn. Immers wordt de mail niet verminkt of iets dergelijks. De helft van de informatie staat er simpelweg niet in.quote:Op zondag 12 februari 2006 16:49 schreef SuperRembo het volgende:
Is het misschien een oplossing om een multipart mail te sturen met een html en een plaint text versie?
Ligt aan de mailclient, maar in mijn geval (Mozilla Thunderbird) doet ie dat weldegelijkquote:Op maandag 13 februari 2006 11:20 schreef Swetsenegger het volgende:
[..]
Maken mailclients van urls in een platte tekst mails klikbare links?
Ik heb nog geen gezien die dat niet doet. Gewoon wel in http://~~ formaat, en niet alleen www.~~quote:Op maandag 13 februari 2006 11:20 schreef Swetsenegger het volgende:
Aanvullende vraag. Maken mailclients van urls in een platte tekst mails klikbare links?
Euh, wat je dus zegt is dat de klant een andere mail krijgt dan jij, terwijl jij gewoon een Cc (of Bcc) krijgt van wat er naar de klant wordt gestuurd?quote:Op maandag 13 februari 2006 11:20 schreef Swetsenegger het volgende:
[..]
IK vraag me nu trouwens af of dat de oplossing zal zijn. Immers wordt de mail niet verminkt of iets dergelijks. De helft van de informatie staat er simpelweg niet in.
Overigens zal ik me sowieso eens goed gaan verdiepen in de materie, maar vreemd is het wel
Precies.quote:Op maandag 13 februari 2006 19:25 schreef Light het volgende:
[..]
Euh, wat je dus zegt is dat de klant een andere mail krijgt dan jij, terwijl jij gewoon een Cc (of Bcc) krijgt van wat er naar de klant wordt gestuurd?
De mailheaders moeten worden afgesloten met \r\n, volgens de mailprotocollen. Servers kunnen ook alleen \n accepteren, maar da's geen onderdeel van het protocol. Dus ik zou gewoon \r\n gebruiken. Alleen weet ik zo even niet zeker of de laatste header ook met \r\n moet worden afgesloten.quote:Op maandag 13 februari 2006 19:36 schreef Swetsenegger het volgende:
Daarnaast sluit ik elke headerline met \r\n af. Nu is het een linux server, dus \n is misschien handiger? EN... last but not least, in bovenstaand topic, zag ik in ALLE voorbeelden dat ook de laatste headerline een \n heeft. Ik deed dat bij de laatste regel niet. Ik weet niet of iemand kan bevestigen dan wel ontkennen dat ook de laatste header regel een newline -moet- hebben?
Ik wist inderdaad dat tussen elke header regel een newline zit (ook een mooie manier om mailinjection af te vangen op je formuliertjes. alles met \n is een no-go)quote:Op maandag 13 februari 2006 20:46 schreef Light het volgende:
[..]
De mailheaders moeten worden afgesloten met \r\n, volgens de mailprotocollen. Servers kunnen ook alleen \n accepteren, maar da's geen onderdeel van het protocol. Dus ik zou gewoon \r\n gebruiken. Alleen weet ik zo even niet zeker of de laatste header ook met \r\n moet worden afgesloten.
1 2 3 4 5 6 7 8 9 | fprintf(sendmail, "To: %s\n", to); fprintf(sendmail, "Subject: %s\n", subject); if (headers != NULL) { fprintf(sendmail, "%s\n", headers); } fprintf(sendmail, "\n%s\n", message); ret = pclose(sendmail); (...) |
Ok, zoals ik het had dusquote:Op maandag 13 februari 2006 20:53 schreef JeRa het volgende:
Swetsenegger, ik heb even de source code van PHP voor je doorgespit om dat over die headers op te zoeken. Zie het volgende:
[ code verwijderd ]
Zo te zien is het dus het slimst om géén \n (of \r\n) op het einde van je headers te plaatsen. Bron.
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |