Avatar billede albani Nybegynder
24. august 2004 - 13:21 Der er 8 kommentarer og
1 løsning

tagwall PHP fejl i line 16, hvorfor ?

jeg får en fejl i linie 16, hvorfor ?
Denne linie: function link($var) {

Kilden er her:

<?php
// Definer navn på txt-fil og tjek at den findes, og hvis ikke, så lav den.
$filnavn = "gaestebog.txt";

if(!file_exists($filnavn)) {

$fp = fopen($filnavn, 'w+');
if ($fp) {
fputs($fp, "");
fclose($fp);
    }
chmod($filnavn, 0777);
}
clearstatcache();

function link($var) {
// LJweb's tagster, som kan findes på "http://ljweb.biz" eller "http://lars.jensen.name"
// Spørg mig IKKE om hvordan den virker, men den virker! :O) (steffen)
  $var = " ".$var;
  $var = eregi_replace("([[:space:]{()\"'\[~#=;\&?\_-])((ftp|http|https|telnet|news|nttp|nntp|file):\/\/[a-z0-9~#%@\&\(\):;=\?\/\.,_-]+(\\[|\\]|[a-z0-9~#%@\&:;,=\?\/_\+-])+)", "\\1<A HREF=\"\\2\" TARGET=\"_blank\">\\2</A>", $var);
  $var = eregi_replace("([[:space:]{()\"'\[~#=;\&?\_-])(www\.[a-z0-9~#%@\&\(\):;=\?\/\.,_-]+[a-z0-9~#%@\&:;,=\?\/_\+-]+)", "\\1<A HREF=\"http://\\2\" TARGET=\"_blank\">\\2</A>", $var);

  $var = eregi_replace("([_\.0-9a-z-]+@([0-9a-z-]+)+\.[a-z]{2,4})","<A HREF=\"mailto:\\1\">\\1</A>", $var);

    return $var;

// Slut på tagster

}

// Er der klikket på submitknappen?
if (isset($_POST['navn'], $_POST['email'], $_POST['homepage'], $_POST['besked'])) {

//hvis textarea-feltet er tomt, er der ingen grund til at skrive noget i textfilen
    if(empty($_POST['besked'])) {
header("Location:". $_SERVER['PHP_SELF'] ."");
exit;
    }

//definerer $felter som et array, for nemmere at kunne "bearbejde" input
$felter = array();

// en foreach til at bearbejde inputs
// 1. Fjerne html tags
// 2. Fjerne alle | tegn da de bruges til at holde info adskilt
foreach($_POST as $value) {
$value = strip_tags($value);
$value = ereg_replace("(\|)", "", $value);


//Undgå at \ bliver sat før ' og " når der skrives til filen
$value = stripslashes($value);

// Bruger array'et $felter
// $felter[0] starter med første input felt, $_POST['navn'], o.s.v.
$felter[] = $value;
    }

//Omdan f.eks. æ til htmlkode, og gør brug af lj_web's tagster, function link()
$felter[0] = htmlentities($felter[0]);
$felter[1] = link(htmlentities($felter[1]));
$felter[2] = link(htmlentities($felter[2]));
$felter[3] = link(htmlentities($felter[3]));

// Erstatter entertryk fra textarea'et med en enkelt <br>-tag så linieskift osse vil blive vist
$felter[3] = ereg_replace("(\r\n|\n\r|\n|\r)+", "<br>", $felter[3]);


// Hvis navn $felter[0] ikke er indtastet, skriver vi anonym i stedet
    if(empty($felter[0])) {
$felter[0] = "Anonym";
    }

// finder tidspunkt
$tid=date("d-m-Y : H:i:s",time());

// Den streng som skal skrives til textfilen, startende med tidspunkt og afluttet med en ny linie
$str = $tid ."|". $felter[0] ."|". $felter[1] ."|". $felter[2] ."|". $felter[3] ."\n";   


// Åben txt-filen for skrivning
$fp = fopen($filnavn, 'a+');
if ($fp) {
fputs($fp, $str);
fclose($fp);

    }
//redirecte til filen selv
header("Location:". $_SERVER['PHP_SELF'] ."");
exit;
}
?><html><head><title>G&aelig;stebog</title>
<style type="text/css">
body, td, th {font-family: arial; font-size: 0.8em; color: black; background-color: #F7F4E8;}
a:link {color: #4f0000; text-decoration: underline;}
a:visited {color: black; text-decoration: underline;}
a:hover {color: #4f0000; text-decoration: none;}
a.menu:hover {color: #4f0000; text-decoration: none; background-color: #cfd192;}

.big {font-size: 2.4em;}
.input {color: black; background-color: #ffffff; font-family: arial; font-size: 0.9em; border-color: black; border-width: 1px;}
.submit {font-family: arial; font-size: 0.8em; border-width: 1px; border-color: black;}
.fra {background-color: #999966; color: white;}
.besked {background-color: #eaeaea;  color: black; padding-left: 16px; padding-left: 10px;}
</style>
</head>
<body>
<center>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<table border="0" width="70%" cellspacing="0" cellpadding="4"><tr>
    <td class="big" align="center">G&aelig;stebog</td>
</tr><tr>
    <td align="center" style="border-bottom: solid black; border-width: 1px;"><table border="0" cellspacing="0" cellpadding="4"><tr>

<td>Dit navn:<br>
<input type="text" name="navn" size="24" class="input"></td>
<td>Din email:<br>
<input type="text" name="email" size="24" class="input"></td>
</tr><tr>
<td colspan="2">Din hjemmeside:<br>
<input type="text" name="homepage" size="52" value="http://" class="input"></td>
</tr><tr>
<td colspan="2" align="center"><textarea cols="48" rows="8" name="besked" class="input"></textarea><br>
<input type="submit" value="Tilf&oslash;j indl&aelig;g" class="submit"></td>

</tr></table></td>

</tr><?php

$indhold = file($filnavn);

// for-løkke til at hente hver linie ud af txt-filen.
// Startende med sidste linie først! Tak til jakoba og tipsen fra eksperten for hjælp
for ($i = count($indhold)-1; $i >=0; $i--) {

// Del hver linie op efter " | " og "ignorer" nylinie tegn, "chop"
$vis = split("\|", chop($indhold[$i]));

// Lav output
echo"<tr>\n";
echo"    <td class=\"fra\" style=\"border-left: solid black; border-right: solid black; border-width: 1px;\">Indl&aelig;g af ". $vis[1] ." d. ". $vis[0] ." &nbsp; &nbsp; Email: ". $vis[2] ." &nbsp; &nbsp; ". $vis[3] ."</td>\n";
echo"</tr><tr>\n";
echo"    <td class=\"besked\" style=\"border-left: solid black; border-right: solid black; border-bottom: solid black; border-width: 1px;\">". wordwrap($vis[4], 100, " ", 1) ."</td>\n";
echo"</tr>";
    }
?></table>
</form>
</center>
</body></html>
Avatar billede dennismp Nybegynder
24. august 2004 - 13:24 #1
Hvad er fejlen?
Avatar billede albani Nybegynder
24. august 2004 - 13:27 #2
Fatal error: Cannot redeclare link() in /www/allanpedersen.dk/web/gaestebog.php on line 16
Avatar billede dennismp Nybegynder
24. august 2004 - 13:35 #3
Der findes allerede en funktion i php der hedder link http://php.net/link - kald funktionen noget andet så burde det virke.
Avatar billede shodan Nybegynder
24. august 2004 - 14:04 #4
du skal da også have defineret $var inden du bruger den
Avatar billede dennismp Nybegynder
24. august 2004 - 14:07 #5
Nej fordi det er jo en funktion han definerer - hvis du ser på de steder hvor han bruger link, så kan du se at den parameter han bruger er defineret på kaldstidspunktet.
Avatar billede albani Nybegynder
24. august 2004 - 14:19 #6
noget andet ? som... ?
Avatar billede dennismp Nybegynder
24. august 2004 - 14:36 #7
mylink(), htmllink(), htmllinkify(), minlinkfunktion() .. eller hvad du kan finde på :)
Avatar billede albani Nybegynder
24. august 2004 - 14:41 #8
er meget amatør når det gælder PHP... så undskyld hvis jeg virker lidt sløv i det... prøver...
Avatar billede albani Nybegynder
25. august 2004 - 09:48 #9
jeg fandt ud af det.... brugte et andet script...
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