|
| Erstatte & Fra : Lars Olesen |
Dato : 10-01-04 10:09 |
|
Jeg har med følgende foreach:
foreach($input as $key=>$value) {
$search = array ("&");
$replace = array ("&");
$input[$key] = preg_replace($search, $replace, $value);
}
forsøgt at erstatte & med & men jeg får følgende fejlmeddelelse:
Warning: No ending delimiter '&' found in
/net/users/a35/902/vihdk/www/core/functions.php on:
$input[$key] = preg_replace($search, $replace, $value);
Hvad gør jeg galt?
--
Lars
www.fodboldenslegestue.dk www.larsolesen.dk
www.discimport.dk www.vih.dk
| |
Tonni Aagesen (10-01-2004)
| Kommentar Fra : Tonni Aagesen |
Dato : 10-01-04 11:41 |
|
Lars Olesen wrote:
> Jeg har med følgende foreach:
>
> foreach($input as $key=>$value) {
> $search = array ("&");
> $replace = array ("&");
> $input[$key] = preg_replace($search, $replace, $value);
> }
> Hvad gør jeg galt?
Skal & ikke escapes \$ ?
Mvh
Tonni
| |
Lars Olesen (10-01-2004)
| Kommentar Fra : Lars Olesen |
Dato : 10-01-04 13:27 |
| | |
Tonni Aagesen (10-01-2004)
| Kommentar Fra : Tonni Aagesen |
Dato : 10-01-04 13:36 |
|
Lars Olesen wrote:
>> Skal & ikke escapes \$ ?
>
> Du har garanteret ret :) Tak for det!
Så lidt :)
Men der skulle selvfølgelig have stået \& og ikke \$
Mvh
Tonni
| |
Jacob Atzen (10-01-2004)
| Kommentar Fra : Jacob Atzen |
Dato : 10-01-04 19:27 |
|
Lars Olesen <lsolesen@hotmail.com> writes:
> Jeg har med følgende foreach:
>
> foreach($input as $key=>$value) {
> $search = array ("&");
> $replace = array ("&");
> $input[$key] = preg_replace($search, $replace, $value);
> }
>
> forsøgt at erstatte & med & men jeg får følgende fejlmeddelelse:
>
> Warning: No ending delimiter '&' found in
> /net/users/a35/902/vihdk/www/core/functions.php on:
>
> $input[$key] = preg_replace($search, $replace, $value);
>
> Hvad gør jeg galt?
Du bruger ikke et preg. preg's starter og slutter med en delimiter
(kan ikke lige komme på et dansk ord). Altså:
$string = "Foo&bar";
$search = "/&/";
$replace = "&";
print preg_replace($search, $replace, $string)."\n";
Giver så:
$ php searchrepl.php
Foo&bar
--
Med venlig hilsen
- Jacob Atzen
| |
Lars Olesen (10-01-2004)
| Kommentar Fra : Lars Olesen |
Dato : 10-01-04 19:40 |
| | |
Lars Olesen (10-01-2004)
| Kommentar Fra : Lars Olesen |
Dato : 10-01-04 19:50 |
| | |
Leonard (11-01-2004)
| Kommentar Fra : Leonard |
Dato : 11-01-04 00:14 |
| | |
Lars Olesen (11-01-2004)
| Kommentar Fra : Lars Olesen |
Dato : 11-01-04 00:31 |
|
> Hvorfor ikke bruge
> http://dk.php.net/manual/en/function.str-replace.php
Den vil jeg lige kigge på. Årsagen til at jeg bruger min egen funktion
er fordi jeg skal sørge for at alle værdier i $_GET og $_INPUT får
konverteret evt. værdier til noget andet. Den funktion skal samtidig
liste alle lovlige tegn. Endelig putter den også addslashes på, hvis de
ikke er sat automatisk af php.
Eksempel:
$_POST = myAddslashes($_POST);
function myAddslashes()
{
//addslashes
//konverterer farlige tegn
//fjerner ulovlige tegn
}
Det er måske en dum måde at gøre det på?
--
Lars
www.fodboldenslegestue.dk www.larsolesen.dk
www.discimport.dk www.vih.dk
| |
Leonard (11-01-2004)
| Kommentar Fra : Leonard |
Dato : 11-01-04 00:40 |
| | |
Lars Olesen (11-01-2004)
| Kommentar Fra : Lars Olesen |
Dato : 11-01-04 00:47 |
| | |
Leonard (11-01-2004)
| Kommentar Fra : Leonard |
Dato : 11-01-04 01:04 |
| | |
Lars Olesen (11-01-2004)
| Kommentar Fra : Lars Olesen |
Dato : 11-01-04 01:14 |
| | |
Leonard (11-01-2004)
| Kommentar Fra : Leonard |
Dato : 11-01-04 01:22 |
|
Lars Olesen <lsolesen@hotmail.com> wrote:
>Af nysgerrighed - hvordan håndterer du $_POST og $_GET input fra
>formularer, inden du fx gemmer dem i en database?
Jeg gør ikke noget, addslashes udføres af sig selv og jeg indsætter
med INSERT INTO tb VALUES(null,'$dat');
Dette for at have så rå data i databasen som muligt.
Når jeg så skriver noget ud behandler jeg det alt efter hvad det er og
hvordan det skal vises.
--
mvh Leonard
Har du kigget på: http://dk.php.net/ el. http://www.webcafe.dk/
| |
Lars Olesen (11-01-2004)
| Kommentar Fra : Lars Olesen |
Dato : 11-01-04 09:49 |
|
> Jeg gør ikke noget, addslashes udføres af sig selv og jeg indsætter
> med INSERT INTO tb VALUES(null,'$dat');
>
> Dette for at have så rå data i databasen som muligt.
> Når jeg så skriver noget ud behandler jeg det alt efter hvad det er og
> hvordan det skal vises.
Det giver naturligvis mening, men er det ikke et sikkerhedsbrist fx at
tillade tags, hvis det er i en overskrift, og det er brugeren, der har
tastet ind?
Og hvad når fx en værdi skal være tilstede fordi din sql ser sådan her ud:
INSERT INTO tb VALUES ($kat_id);
--
Lars
www.fodboldenslegestue.dk www.larsolesen.dk
www.discimport.dk www.vih.dk
| |
Leonard (11-01-2004)
| Kommentar Fra : Leonard |
Dato : 11-01-04 11:39 |
|
Lars Olesen <lsolesen@hotmail.com> wrote:
>Det giver naturligvis mening, men er det ikke et sikkerhedsbrist fx at
>tillade tags, hvis det er i en overskrift, og det er brugeren, der har
>tastet ind?
Hvis det kan være et problem, så tjekker jeg for det inden jeg skriver
det ud. Databasen tager jo ikke skade af at have tags i sig.
Ideen er at ved at have ubehandlet data i databasen, så er det nemmere
at bruge det samme data i et nyt layout, tilpasse det på en anden måde
osv.
>Og hvad når fx en værdi skal være tilstede fordi din sql ser sådan her ud:
>
>INSERT INTO tb VALUES ($kat_id);
Det gør jeg ikke, jeg lader aldrig et user-input bestemme et id eller
andet vitalt. Og hvis jeg er afhængig af at en variabel skal indeholde
det rigtige, så tjekker jeg selvfølgelig for det.
--
mvh Leonard
Har du kigget på: http://dk.php.net/ el. http://www.webcafe.dk/
| |
Lars Olesen (11-01-2004)
| Kommentar Fra : Lars Olesen |
Dato : 11-01-04 12:22 |
|
> Hvis det kan være et problem, så tjekker jeg for det inden jeg skriver
> det ud. Databasen tager jo ikke skade af at have tags i sig.
Til dels enig, men til en overskrift, hvor man har besluttet at
formattering foregår bagefter, synes jeg ikke at brugeren skal kunne
indtaste tags. Derfor fjerner jeg dem!
> Ideen er at ved at have ubehandlet data i databasen, så er det nemmere
> at bruge det samme data i et nyt layout, tilpasse det på en anden måde
> osv.
Det er jeg med på - dog mener jeg at det bliver lettest hvis du kun
tillader de tags, du synes er nødvendige. Det er også sikrere at lave en
positiv validering allerede fra starten, synes jeg.
>>Og hvad når fx en værdi skal være tilstede fordi din sql ser sådan her ud:
>>INSERT INTO tb VALUES ($kat_id);
>
> Det gør jeg ikke, jeg lader aldrig et user-input bestemme et id eller
> andet vitalt. Og hvis jeg er afhængig af at en variabel skal indeholde
> det rigtige, så tjekker jeg selvfølgelig for det.
Ok, men man bliver jo sommetider nødt til at lade brugeren bestemme
forskellige tal i en database, og det er der problemet opstår.
Men det tjekker du altså for. Spørgsmålet er så, om du bruger noget
genbrugelig kode, eller du bare laver ad hoc kode hver gang?
--
Lars
www.fodboldenslegestue.dk www.larsolesen.dk
www.discimport.dk www.vih.dk
| |
Leonard (11-01-2004)
| Kommentar Fra : Leonard |
Dato : 11-01-04 14:50 |
|
Lars Olesen <lsolesen@hotmail.com> wrote:
>Men det tjekker du altså for. Spørgsmålet er så, om du bruger noget
>genbrugelig kode, eller du bare laver ad hoc kode hver gang?
Ad hoc, men jeg genbruger da den kode der kan genbruges
Jeg er slet ikke avanceret nok til at bruge klasser og det er også
sjældent jeg bruger funktioner ...
--
mvh Leonard
Har du kigget på: http://dk.php.net/ el. http://www.webcafe.dk/
| |
Lars Olesen (11-01-2004)
| Kommentar Fra : Lars Olesen |
Dato : 11-01-04 09:50 |
|
> Jeg gør ikke noget, addslashes udføres af sig selv og jeg indsætter
> med INSERT INTO tb VALUES(null,'$dat');
Eller hvad hvis du fx forventer at have en e-mail-adresse i et felt, men
det viser sig så, at det er noget helt andet. Eller du kun forventer, at
der er tal, og så vil lave et regnestykke på de tal, men pludselig står
der nb.
--
Lars
www.fodboldenslegestue.dk www.larsolesen.dk
www.discimport.dk www.vih.dk
| |
Leonard (11-01-2004)
| Kommentar Fra : Leonard |
Dato : 11-01-04 11:42 |
|
Lars Olesen <lsolesen@hotmail.com> wrote:
>Eller hvad hvis du fx forventer at have en e-mail-adresse i et felt,
Jeg forventer ikke noget af et user-input, men hvis jeg vil have noget
bestemt, så må jeg jo validere inputtet.
Men det gør jeg ikke i forbindelse med indsættelse i databasen, det
gør jeg i forbindelse med formen, for hvis det nu er forkert, så skal
jeg jo tilbage til formen med de data der er indtastede og en
meddelelse til brugeren om hvad der er galt.
--
mvh Leonard
Har du kigget på: http://dk.php.net/ el. http://www.webcafe.dk/
| |
Lars Olesen (11-01-2004)
| Kommentar Fra : Lars Olesen |
Dato : 11-01-04 12:24 |
|
>>Eller hvad hvis du fx forventer at have en e-mail-adresse i et felt,
>
> Jeg forventer ikke noget af et user-input, men hvis jeg vil have noget
> bestemt, så må jeg jo validere inputtet.
> Men det gør jeg ikke i forbindelse med indsættelse i databasen, det
> gør jeg i forbindelse med formen, for hvis det nu er forkert, så skal
> jeg jo tilbage til formen med de data der er indtastede og en
> meddelelse til brugeren om hvad der er galt.
Du bliver da efter min mening nødt til at forvente, at brugerens input
er en e-mail-adresse, når nu det er det han skal taste ind?
Ok, så validerer du data - i forbindelse med formen - inden det
indsættes i databasen. Det er egentlig også det jeg lidt klumpet har
forsøgt at spørge om. Altså hvis nu user-input validerer, så går man
videre til indsættelse i databasen.
Men hvordan laver du denne validering. Bruger du noget genbrugelig kode?
--
Lars
www.fodboldenslegestue.dk www.larsolesen.dk
www.discimport.dk www.vih.dk
| |
|
|