login  Naam:   Wachtwoord: 
Registreer je!
 Forum

function in variable

Offline W0etah - 04/12/2006 20:45 (laatste wijziging 04/12/2006 20:45)
Avatar van W0etahPHP beginner Hallo, ik zit met een probleem, ik heb deze functie

  1. <?php
  2. function input($tekst) {
  3. $tekst = htmlspecialchars($tekst);
  4. $tekst = addslashes($tekst);
  5. $output = $tekst;
  6. return $output;
  7. }
  8. ?>


maar nu moet ik die $output in een andere variable krijgen
dit doe ik met dit stukje script

  1. <?php
  2. $output = 'echo ".input($fileBericht).";';
  3. ?>


maar dat werkt niet, heeft iemand een idee hoe het wel moet?

9 antwoorden

Gesponsorde links
Offline marten - 04/12/2006 20:46 (laatste wijziging 04/12/2006 20:49)
Avatar van marten Beheerder
  1. <?php
  2. function input($tekst) {
  3. $tekst = htmlspecialchars($tekst);
  4. $tekst = addslashes($tekst);
  5. $output = $tekst;
  6. return $output;
  7. }
  8. ?>


veranderen in

  1. <?php
  2. function input($tekst) {
  3. $tekst = htmlspecialchars($tekst);
  4. $tekst = addslashes($tekst);
  5. return $tekst;
  6. }
  7. ?>


en dan
  1. <?php
  2. $nieuwevar = input($tekst);
  3. ?>
Offline W0etah - 04/12/2006 20:49 (laatste wijziging 04/12/2006 20:52)
Avatar van W0etah PHP beginner het is gelukt

EDIT: nog een klein vraagje, ik doe dan wel addslashes, maar hoe haal ik het dan uit het bestand zodat de " worden weergegeven?
Offline Rens - 04/12/2006 20:59
Avatar van Rens Gouden medaille

Crew algemeen
PHP.net: stripslashes ?
Offline W0etah - 04/12/2006 21:03
Avatar van W0etah PHP beginner
  1. <?php
  2. echo test\;
  3. ?>


dit geeft hij dan weer, ik zit altijd met het probleem van die \ op het einde

dit is de code die het bericht uit het bestand haalt

  1. <?php
  2. $bericht = stripslashes($bericht);
  3. $bericht = preg_replace("/\[php\](.*)\[\/php\]/seU", "str_replace('\"', '', @highlight_string('\\1', 1))", $bericht);
  4. ?>
Offline Thomas - 05/12/2006 11:21
Avatar van Thomas Moderator Daarom stelde ik al voor om daarvoor een aparte functie te introduceren...

Ik denk trouwens niet dat je stripslashes moet gebruiken, je gooit dan teveel slashes weg...
Offline W0etah - 05/12/2006 20:45
Avatar van W0etah PHP beginner FangorN, maar hoe moet ik het dan doen om dit script veilig te maken?
Zonder addslashes werken?

Maar kan je dat van die functie voor str_replace nog is uitleggen?
Offline Thomas - 06/12/2006 11:10 (laatste wijziging 06/12/2006 11:11)
Avatar van Thomas Moderator
  1. <?php
  2. $bericht = stripslashes($bericht);
  3. $bericht = preg_replace("/\[php\](.*)\[\/php\]/seU", "str_replace('\"', '', @highlight_string('\\1', 1))", $bericht);
  4. ?>


-->

  1. <?php
  2. $bericht = preg_replace("/\[php\](.*)\[\/php\]/seU", "codeblok(\\1)", $bericht);
  3.  
  4. function codeblok($in)
  5. {
  6. $in = str_replace('\"', '"', $in);
  7.  
  8. return @highlight_string($in, 1);
  9. }
  10. ?>


Als je [php]-blok rechtstreeks uit $_POST komt, moet je misschien wel gebruik maken van stripslashes(). Als het uit de database komt hoeft dit niet denk ik. Probeer het eens uit, je merkt vanzelf wat werkt en wat niet.

Een goede test:
  1. [php]<?php
  2. echo " ' \" \\"; // test
  3. echo ' \' " \ \\ \\\ \\\\ '; // ofzo
  4. /*
  5. test ' " \
  6. */
  7. ?>[/php]
Offline W0etah - 06/12/2006 14:09 (laatste wijziging 06/12/2006 21:05)
Avatar van W0etah PHP beginner
Citaat:
Parse error: parse error, expecting `')'' in c:program fileseasyphp1-8wwwscriptbakconfig.php(106) : regexp code on line 1

Fatal error: Failed evaluating code: codeblok() in c:program fileseasyphp1-8wwwscriptbakconfig.php on line 106


ik krijg wel deze error, ik heb jouw code gewoon geplakt, op de juiste plaats

EDIT: als ik de addslashes bij het schrijven naar het bestand wegdoe dan werkt het wel, maar is het dan nog veilig?
als ik je testje invoer, dan zie ik juisthetzelfde
Offline Thomas - 07/12/2006 10:26
Avatar van Thomas Moderator Veilig hoe? Er wordt geen PHP-code uitgevoerd of wat dan ook, dus wat is er niet veilig aan?
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.387s