/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
PHP-gæstebog med tekstfil-database
Fra : Erik Ginnerskov


Dato : 24-11-05 17:46

Hej NG

Jeg oplever noget, jeg ikke kan gennemskue i administrationsmodulet til den
php-gæstebog, jeg sidder og prøver at få færdig:

Når jeg retter teksten i nogle knapper, holder skidtet op med at virke. For
mig er det komplet ulogisk.

http://hjemmesideskolen.dk/test/adm_guestbook.phps
http://hjemmesideskolen.dk/test/var.inc.phps

Det drejer sig om knapperne i linjerne 203 og 207. Retter jeg teksterne
'Edit' og 'Delete' til 'Ret' og 'Slet', virker scriptet ikke - jeg kan ikke
rette eller slette.

Beholder jeg de engelske tekster på knapperne, fungerer det upåklageligt.

Nogen, der kan gennemskue hvorfor?

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://ginnerskov.dk
http://html-faq.dk/



 
 
Michael Rasmussen (24-11-2005)
Kommentar
Fra : Michael Rasmussen


Dato : 24-11-05 18:04

On Thu, 24 Nov 2005 17:46:28 +0100, Erik Ginnerskov wrote:

>
> Nogen, der kan gennemskue hvorfor?
Kunne du ikke lige konfigurere apache/IIS sådan, så den fremviser .phps
filer i stedet for at levere dem til download?

--
Hilsen/Regards
Michael Rasmussen
http://keyserver.veridis.com:11371/pks/lookup?op=get&search=0xE3E80917


Erik Ginnerskov (24-11-2005)
Kommentar
Fra : Erik Ginnerskov


Dato : 24-11-05 18:26

Michael Rasmussen wrote:

> Kunne du ikke lige konfigurere apache/IIS sådan, så den fremviser
> .phps filer i stedet for at levere dem til download?

Det har jeg ikke mulighed for. Men hvis du får download i stedet for visning
i browser, må det da være din lokale opsætning, der fejler. Jeg har ikke
problemer.

Men nu har jeg lavet kopier af filerne - med anden endelse:

http://hjemmesideskolen.dk/test/adm_guestbook.txt
http://hjemmesideskolen.dk/test/var.inc.txt

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://ginnerskov.dk
http://html-faq.dk/



Michael Rasmussen (24-11-2005)
Kommentar
Fra : Michael Rasmussen


Dato : 24-11-05 18:56

On Thu, 24 Nov 2005 18:26:16 +0100, Erik Ginnerskov wrote:

> Det har jeg ikke mulighed for. Men hvis du får download i stedet for
> visning i browser, må det da være din lokale opsætning, der fejler. Jeg
> har ikke problemer.
>
Det er ikke min browser, der er noget galt med. Din webserver annoncerer
filerne som binære, hvilket betyder, at de skal downloades. Helt i
henhold til standard specifikationen.

--
Hilsen/Regards
Michael Rasmussen
http://keyserver.veridis.com:11371/pks/lookup?op=get&search=0xE3E80917


Peter Farsinsen (24-11-2005)
Kommentar
Fra : Peter Farsinsen


Dato : 24-11-05 19:58

Erik Ginnerskov wrote:

> Nogen, der kan gennemskue hvorfor?

Måske...

Linje 120:

if ( ($_POST[btedit]=="Edit") and (!empty($_POST[line_ed])) ){

Scriptet tjekker både på name og value attributten, de enkelte knapper
har. I min verden giver det ingen mening, men det er måske et forsøg på
implementere yderligere sikkerhed.

Anyway, hvis du omdøber knapperne skal du også ændre i ovenstående og
linje 142. Hvad du skal ændre burde være indelysende.

--
Peter Farsinsen
fornavn@efternavn.dk

Erik Ginnerskov (24-11-2005)
Kommentar
Fra : Erik Ginnerskov


Dato : 24-11-05 22:28

Peter Farsinsen wrote:

> Linje 120:
>
> if ( ($_POST[btedit]=="Edit") and (!empty($_POST[line_ed])) ){
>
> Scriptet tjekker både på name og value attributten, de enkelte knapper
> har.
>
> Anyway, hvis du omdøber knapperne skal du også ændre i ovenstående og
> linje 142.

Det var præcis det, der skulle til. Tak for hjælpen.

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://ginnerskov.dk
http://html-faq.dk/



Erik Ginnerskov (24-11-2005)
Kommentar
Fra : Erik Ginnerskov


Dato : 24-11-05 22:47

Erik Ginnerskov wrote:
> Hej NG
>
> Jeg oplever noget, jeg ikke kan gennemskue i administrationsmodulet
> til den php-gæstebog, jeg sidder og prøver at få færdig

Det fik jeg så klaret. Nu kommer så problemet med at beskytte brugerne mod
at blive høstet af spambotter. Altså, jeg skal ved indskrivning i datafilen
have @ rettet til @

http://hjemmesideskolen.dk/test/guestbook.php

http://hjemmesideskolen.dk/test/guestbook.phps eller
http://hjemmesideskolen.dk/test/guestbook.txt

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://ginnerskov.dk
http://html-faq.dk/




Michael Rasmussen (24-11-2005)
Kommentar
Fra : Michael Rasmussen


Dato : 24-11-05 22:50

On Thu, 24 Nov 2005 22:47:15 +0100, Erik Ginnerskov wrote:

>
> Det fik jeg så klaret. Nu kommer så problemet med at beskytte brugerne
> mod at blive høstet af spambotter. Altså, jeg skal ved indskrivning i
> datafilen have @ rettet til @
http://dk.php.net/str_replace
--
Hilsen/Regards
Michael Rasmussen
http://keyserver.veridis.com:11371/pks/lookup?op=get&search=0xE3E80917


Erik Ginnerskov (24-11-2005)
Kommentar
Fra : Erik Ginnerskov


Dato : 24-11-05 23:38

Michael Rasmussen wrote:
>> jeg skal ved
>> indskrivning i datafilen have @ rettet til @

> http://dk.php.net/str_replace

Jeg prøvede at sætte denne linje ind efter linje 111:

$femail=str_replace("@","@",$femail);

Jeg får ingen fejlmeldinger. Der sker bare ikke den ønskede replace, @
bliver stadig indskrevet i datafilen.

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://ginnerskov.dk
http://html-faq.dk/



Michael Rasmussen (25-11-2005)
Kommentar
Fra : Michael Rasmussen


Dato : 25-11-05 07:22

On Thu, 24 Nov 2005 23:37:51 +0100, Erik Ginnerskov wrote:

>
> Jeg prøvede at sætte denne linje ind efter linje 111:
>
> $femail=str_replace("@","@",$femail);
>
> Jeg får ingen fejlmeldinger. Der sker bare ikke den ønskede replace, @
> bliver stadig indskrevet i datafilen.
Prøv denne lille test:
<?php
$s = "test@test.dk";
$s1 = str_replace("@", "&#64;", $s);
echo "Før: $s, efter: $s1\n";
?>
Det virker efter hensigten hos mig.
Du er sikker på, at det du skriver til datafilen, også indeholder
variablen $femail efter rettelsen?

--
Hilsen/Regards
Michael Rasmussen
http://keyserver.veridis.com:11371/pks/lookup?op=get&search=0xE3E80917


Erik Ginnerskov (25-11-2005)
Kommentar
Fra : Erik Ginnerskov


Dato : 25-11-05 23:30

Michael Rasmussen wrote:

> Prøv denne lille test:
> <?php
> $s = "test@test.dk";
> $s1 = str_replace("@", "&#64;", $s);
> echo "Før: $s, efter: $s1\n";

Så får jeg en udskrift på siden, der i kildekoden ser sådan ud:

Før: test@test.dk, efter: test&#64;test.dk

> Du er sikker på, at det du skriver til datafilen, også indeholder
> variablen $femail efter rettelsen?

Det går jeg ud fra. E-mail-adressen bliver skrevet i et felt, de har tildelt
navnet name="femail".

Når datafilens indhold udskrives til gæstebogen, sker det godt nok med denne
kodelinje:

echo "Den $tanggal skrev $email<br>\n";

.... hvor $tanggal er en variabel indeholdende en datotidsgruppe. Jeg har
også prøvet at omdøbe den variabel, der skal have erstattet et tegn, til
$email, men det hjælper heller ikke.

Er det overhovedet det rigtige sted i koden, jeg har indsat den
replace-kommando, når det skal ske inden formularens indhold skrives til
datafilen?

if (!empty($ferr)){
disperr($ferr);
} else {
$ftanggal=date("d. M. Y - H:i");
splitwordx($_POST[fname],30,10);
$femail=str_replace("@","&#64;", $femail);
splitwordx($_POST[femail],50,50);
splitwordx($_POST[fsubject],50,50);
splitwordx($_POST[fcomment],70,70);
$fcomment=substr($_POST[fcomment],0,$maxchar);
$contents_new="|line|".$ftanggal;

http://hjemmesideskolen.dk/test/guestbook.phps eller
http://hjemmesideskolen.dk/test/guestbook.txt

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://ginnerskov.dk
http://html-faq.dk/



Michael Rasmussen (26-11-2005)
Kommentar
Fra : Michael Rasmussen


Dato : 26-11-05 00:16

On Fri, 25 Nov 2005 23:30:10 +0100, Erik Ginnerskov wrote:

>
> Så får jeg en udskrift på siden, der i kildekoden ser sådan ud:
>
> Før: test@test.dk, efter: test&#64;test.dk
>
Så har du set, at det virker, hvorfor grunden til at det ikke virker, må
relatere sig til din fil.
>
>
> Er det overhovedet det rigtige sted i koden, jeg har indsat den
> replace-kommando, når det skal ske inden formularens indhold skrives
> til datafilen?
>
> if (!empty($ferr)){
> disperr($ferr);
> } else {
> $ftanggal=date("d. M. Y - H:i");
> splitwordx($_POST[fname],30,10);
> $femail=str_replace("@","&#64;", $femail);
Hvilket output får du, hvis du gør følgende her:
echo $femail;
> splitwordx($_POST[femail],50,50);
Måske du skal flytte linjen med str_replace til efter ud har kaldt
splitwordx - det ser ud til, at splitwordx ændrer i teksten.

--
Hilsen/Regards
Michael Rasmussen
http://keyserver.veridis.com:11371/pks/lookup?op=get&search=0xE3E80917


Erik Ginnerskov (26-11-2005)
Kommentar
Fra : Erik Ginnerskov


Dato : 26-11-05 00:51

Michael Rasmussen wrote:

> Hvilket output får du, hvis du gør følgende her:
> echo $femail;
>> splitwordx($_POST[femail],50,50);

Det giver ikke noget output

> Måske du skal flytte linjen med str_replace til efter ud har kaldt
> splitwordx - det ser ud til, at splitwordx ændrer i teksten.

Det har jeg også prøvet. Jeg får heller ikke her noget replaced.

if (!empty($ferr)){
disperr($ferr);
} else {
$ftanggal=date("d. M. Y - H:m:s");
splitwordx($_POST[fname],30,10);
echo $femail;
splitwordx($_POST[femail],50,50);
$femail=str_replace("@","&#64;", $femail);
splitwordx($_POST[fsubject],50,50);
splitwordx($_POST[fcomment],70,70);
$fcomment=substr($_POST[fcomment],0,$maxchar);
$contents_new="|line|".$ftanggal;

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://ginnerskov.dk
http://html-faq.dk/



Erik Ginnerskov (26-11-2005)
Kommentar
Fra : Erik Ginnerskov


Dato : 26-11-05 01:17

Michael Rasmussen wrote:

> Hvilket output får du, hvis du gør følgende her:
> echo $femail;

jeg har nu prøvet en lille ændring:

echo $_POST[femail];

Så får jeg et output svarende til den indtastede email-adresse.

> Måske du skal flytte linjen med str_replace til efter ud har kaldt
> splitwordx - det ser ud til, at splitwordx ændrer i teksten.

Tilsvarende prøvede jeg at rette i replace-kommandoen:

$_POST[femail]=str_replace("@","&#64;", $_POST[femail]);

Så skete der mirakler. Det virker. Tak for at du ledte mig på vej.

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://ginnerskov.dk
http://html-faq.dk/



Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408526
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste