Avatar billede kristinex Nybegynder
01. august 2002 - 22:38 Der er 5 kommentarer og
1 løsning

programmeringsfejl i gæstebog (PHP) ???

Hej,

Er der nogen der kan fortælle mig hvad der er galt med denne programmering:

Kig på : http://www.friserverplads.dk/ladieslounge

Skriptet lyder som følgende:

<?


############### Begin GuestBook Script #####################################

##The first 3 lines use a regular expression to match a pattern then replace it with nothing.  The only reason for this is so we only allow necessary characters to be entered into the guestbook. This also takes out slashes which are sometimes added in the post headers to make the string friendly.  You can erase or take these lines out if you want.

    $Name = ereg_replace("[^A-Åa-å0-9 ]", "", $Name);
    $Email = ereg_replace("[^A-Åa-å0-9 \@\.\-\/\']", "", $Email);
    $Comments = ereg_replace("[^A-Åa-å0-9 \@\.\-\/\']", "", $Comments);

    $Website = eregi_replace("http://", "", $Website);
    $Website = ereg_replace("[^A-Za-z0-9 \@\.\-\/\'\~\:]", "", $Website);

    $Name = stripslashes($Name);
    $Email = stripslashes($Email);
    $Website = stripslashes($Website);
    $Comments = stripslashes($Comments);

####################################################################################
########### Reading and Writing the new data to the GuestBook Database #############

if ($Submit == "Yes") {
#Next line tells the script which Text file to open.
    $filename = "GuestBook.txt";

#Opens up the file declared above for reading

    $fp = fopen( $filename,"r");
    $OldData = fread($fp, 80000);
    fclose( $fp );

#Gets the current Date of when the entry was submitted
    $Today = (date ("l dS of F Y ( h:i:s A )",time()));

#Puts the recently added data into html format that can be read into the Flash Movie.

    $Input = "Name: <b>$Name</b><br>Email: <b><u><a href=\"mailto:$Email\">$Email</a></b></u><br>Website: <b><u><a href=\"http://$Website\" target=\"_blank\">$Website</a></b></u><br>Comments: <b>$Comments</b><br><i><font size=\"-1\">Date: $Today</font><br><br>.:::.";

#This Line adds the 'GuestBook=' part to the front of the data that is stored in the text file.  This is important because without this the Flash movie would not be able to assign the variable 'GuestBook' to the value that is located in this text file

    $New = "$Input$OldData";

#Opens and writes the file.

    $fp = fopen( $filename,"w+");
    fwrite($fp, $New, 80000);
    fclose( $fp );
}
####################################################################################
########## Formatting and Printing the Data from the Guestbook to the Flash Movie ##

#Next line tells the script which Text file to open.
    $filename = "GuestBook.txt";

#Opens up the file declared above for reading

    $fp = fopen( $filename,"r");
    $Data = fread($fp, 80000);
    fclose( $fp );

#Splits the Old data into an array anytime it finds the pattern .:::.
    $DataArray = split (".:::.", $Data);

#Counts the Number of entries in the GuestBook
    $NumEntries = count($DataArray) - 1;

    print "&TotalEntries=$NumEntries&NumLow=$NumLow&NumHigh=$NumHigh&GuestBook=";
    for ($n = $NumLow; $n < $NumHigh; $n++) {
    print $DataArray[$n];
        if (!$DataArray[$n]) {
        Print "<br><br><b>No More entries</b>";
        exit;
        }
    }
   


####################################################################################
###############  End GuestBook Script
?>

På forhånd tak :0)
Avatar billede tipsen Nybegynder
01. august 2002 - 23:25 #1
Tror ikke umiddelbart du kan bruge danske bogstaver i en regular expression:

$Name = ereg_replace("[^A-Åa-å0-9 ]", "", $Name);

-så det burde kikse eller give uventede resultater - hvad skal de forøvrigt gøre godt for - det virker lidt høkeragtigt...

NB: Det link du sendte giver adgang til en (meget pink) chat...
Avatar billede mixeren Nybegynder
01. august 2002 - 23:29 #2
Nå så var det ikke bare mig der ikke kunne se den rigtige side...
Avatar billede kristinex Nybegynder
01. august 2002 - 23:34 #3
Så vidt jeg kan se, er det ikke de danske bogstaver der giver problemer, men antallet af entries.

Ja, siden er meget pink - men det er nu ikke ligefrem en chat!!

tipsen>> Til formålet - er danske bogstaver ikke høkeragtigt.
Avatar billede tipsen Nybegynder
02. august 2002 - 00:40 #4
kristine: normalt vil man bruge a-z - det er fint nok fordi de karakterer ligger i rækkefølge i ansi-tegntabellen og derfor er det logisk for computeren hvilke bogstaver der ligger i mellem de to! æ, ø og å ligger derimod kastet ind med en møggreb og ligger hulter til bulter! Dette betyder at alle tegn mellem a og å accepteres, hvilket vistnok er ca. 150 forskellige tegn - deriblandt en masse specialtegn!

Jeg er ikke særlig erfaren med regular expressions, men det er sådan jeg tror de fungerer...

Det er forøvrigt nemt nok at teste, hvis nogen gider slå ansi-værdierne op i en tabel - så kan man se hvilke tegn der ligger mellem a og å og se om accepteres af en ereg().

Jeg vil gætte på at den snarere skal se ud noget i retning af dette:

$Name = ereg_replace("[^A-Za-z,æ,ø,å,Æ,Ø,Å,0-9 ]", "", $Name);

-men jeg er langt fra sikker...

(Er det noget du har fundet med a-z og selv rettet til a-å?)
Avatar billede tipsen Nybegynder
02. august 2002 - 00:41 #5
[*godnat*] - vender tilbage i morgen!
Avatar billede kristinex Nybegynder
02. august 2002 - 14:48 #6
Jeg har selv løst problemet!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester