webForumDet fria alternativet

Maltes forum

9 svar · 735 visningar · startad av Elisabeth 58

Elisabeth 58Medlem sedan nov. 20079 inlägg
#1

Hej allihop. Jag är urdålig på sånt här, dvs hur man skriver i forum och trådar och sökfunktion osv. Men här kommer frågan i alla fall. Malte skapade ett superbra forum som jag använder mej av. Ex här, Maltes alltså:
http://www.a-kok.com/php/forum.php

Men jag undrar hur man gör för att kunna lägga in en direktlänk som öppnas i nytt fönster -när man gör ett inlägg. Är dålig på php, och har ej fått till det. Ingen av de jag frågat tidigare heller.
Sen undrar jag också hur man får bort <br /> markeringen som kommer med i mejlen (utskick efter varje nytt inlägg i forumet)
Någon som fått till det hela? (Hela forumet finns att ladda ner på ovan angivna adress.)

mvh Elisabeth

überfuzzMedlem sedan apr. 2006409 inlägg
#2

Hmm, jag tycker att det är ganska svårt att förstå vad det är som sätter käppar i hjulet för dig. Det forum du länkade till verkar fungera bra.

Elisabeth 58Medlem sedan nov. 20079 inlägg
#3

Japp, det är ju Maltes forum. Jag laddade själv ner det och la ut på min domän. Det fungerar hur bra som helst, men jag saknar alltså funktionen att kunna skriva ut en webadress i ett inlägg, som ska öppnas upp i ett nytt fönster när man klickar på den. Likaså att emailutskicket man får hem i mejlboxen efter nytt foruminlägg har med en massa <br /> krumelurer i texten (vilket alltså inte syns direkt i forumet online)

jwradheMedlem sedan juni 2002711 inlägg
#4

Ja använder mig av detta

funktionen:

function linkURL($web)
{
		$web = preg_replace("/(?<=^|\s)(www\.([-a-zA-Z0-9_]+\.)*[-a-zA-Z0-9_]+\.[-a-zA-Z0-9_]{2,6}(\/[^\s]*)*)(?=\s|$)/", "http://$1", $web);		 
		$search = "/(?<=^|\s)(http:\/\/|https:\/\/|ftp:\/\/)(([-a-zA-Z0-9_]+\.)*[-a-zA-Z0-9_]+\.[-a-zA-Z0-9_]{2,6}(\/[^\s]*)*)(?=\s|$)/";
		$replace = "<a href=\"$1$2\" target='_blank'>$2</a>"; 
		$web = preg_replace($search, $replace, $web);	 
		return $web;
}

och sen detta för att sätta funktionen på texten på länken i:

linkURL($trad['text'])

Hoppas det va till nån hjälp!

Elisabeth 58Medlem sedan nov. 20079 inlägg
#5

Hej "jwradhe". Begriper ju inte var i scriptet jag ska peta in koden bara, för att kunna testa? Kan nada om php....
mvh E

så här ser Maltes "spara.php" ut (och jag förmodar att det är där det hela ska in)
_____________________________________________________________________

nä fy jag är verkligen en högs förvirrad person. Nu har jag testat 100 gr och har 101 "spara.php" filer. Givetvis la jag in fel. Ursäkta mej Malte.

Så här ska det va (hoppas jag).....

<?php
require ("config.php");
include "strfunc.inc.php";

if($RegGlobal == 0){
while (list ($key, $val) = each ($HTTP_POST_VARS)) {
$$key = $val; }
$REMOTE_ADDR = $HTTP_SERVER_VARS['REMOTE_ADDR'];
$HTTP_HOST = $HTTP_SERVER_VARS['HTTP_HOST'];
$PHP_SELF = $HTTP_SERVER_VARS['PHP_SELF'];
}

if (isset($tillbaka)){
header("Location: retur.php");
exit;
} elseif (!isset($HTTP_POST_VARS['namn'])){
header("Location: forum.php");
exit;
} elseif (empty($namn)||empty($nyttinlagg)||empty($amne)){
$poster=array(1,$namn,$epost,$amne,$nyttinlagg);
$return=implode("|",$poster);
if($RegGlobal == 1){
session_register("return");
} else {
session_start();
$HTTP_SESSION_VARS['return']=$return;
}
$url = "inlagg.php?retur=1&id=$index";
if(isset($sida)) $url.= "&sida=".$sida."#retur";
header("Location: $url");
exit;
}

$forumfil=$filkatalog."/forum.txt";
$inlaggfil=$filkatalog."/".$index.".txt";
$indexfil=$filkatalog."/index.txt";

$nyttinlagg=cleanText($nyttinlagg);
$namn=cleanText($namn);
$epost=cleanText($epost);
$amne=cleanText($amne);

$tid=time();

$id=$index;

if($index==0){

//Här börjar avsnitt för nytt inlägg

if (!file_exists($indexfil)){
if($fd=fopen($indexfil, "w")){
$index=10000001;
fwrite($fd,$index);
fclose ($fd);
} else $mail_inlagg[]=3;
} else {
if($fd=fopen($indexfil, "r+")){
$index=fread($fd,filesize($indexfil));
(int) $index=$index;
$index++;
rewind($fd);
ftruncate ($fd, 0);
fwrite($fd,$index);
fclose ($fd);
} else $mail_inlagg[]=3;
}

$poster=array($tid,$index,$amne,$namn,$tid,"0","\n");
$gpost=implode("|",$poster);

if (!file_exists($forumfil)){
if($fd=fopen($forumfil, "w")){
fwrite($fd, $gpost);
fclose ($fd);
} else $mail_inlagg[]=1;
} else {
if($fd=fopen($forumfil, "r+")){
$innehall = filesize($forumfil) > 0 ? fread ($fd, filesize ($forumfil)) : '';
$innehall=$gpost.$innehall;
rewind($fd);
fwrite($fd, $innehall);
fclose ($fd);
} else $mail_inlagg[]=1;
}

$poster=array($index,$amne,"0","\n");
$gpost=implode("|",$poster);
$poster=array($namn,$epost,$tid,$nyttinlagg,$REMOTE_ADDR,"\n");
$gpost.=implode("|",$poster);

$filnamn=$filkatalog."/".$index.".txt";
if($fd=fopen($filnamn, "w")){
fwrite($fd, $gpost);
fclose($fd);
} else $mail_inlagg[]=2;

//Här slutar avsnitt för nytt inlägg

} else {

// Här börjar avsnitt för svar på inlägg

$innehall=file($forumfil);
for ($i=0;$i<sizeof($innehall);$i++){
$innehall[$i]=explode("|",$innehall[$i]);
if ($innehall[$i][1]==$index){
$amne=$innehall[$i][2];
$innehall[$i][0]=$tid;
$temp=$innehall[$i][5];
$temp++;
$innehall[$i][5]=$temp;
}
$innehall[$i][6]="\n";
}
rsort($innehall);
for ($i=0;$i<sizeof($innehall);$i++) $innehall[$i]=implode("|",$innehall[$i]);

if ($fd=fopen($forumfil, "w")){
for ($i=0;$i<sizeof($innehall);$i++) fwrite($fd, $innehall[$i]);
fclose ($fd);
} else $mail_inlagg[]=1;

$poster=array($namn,$epost,$tid,$nyttinlagg,$REMOTE_ADDR,"\n");
$gpost=implode("|",$poster);
if ($fd2=(fopen($inlaggfil, "a"))){
fwrite($fd2, $gpost);
fclose($fd2);
} else $mail_inlagg[]=2;

} // slut avsnitt för svar på inlägg

$nyttinlagg = str_replace("<br>", "\n", $nyttinlagg);
$nyttinlagg = str_replace(""", "\"", $nyttinlagg);
if($id!=0){
$gpost="Svar ämne: ".$amne."\n";
} else $gpost="Nytt ämne: ".$amne."\n";
$gpost.="Inlägg av: ".$namn."\n";
$gpost.="Inlagg:\n".$nyttinlagg."\n";
$gpost.="\nFör att svara, gå till:\n";
$gpost.="http://".$HTTP_HOST.dirname($PHP_SELF)."/inlagg.php?id=".$index."\n\n";

if(isset($mail_inlagg)){
if(in_array(1)) $gpost.="OBS !!! Kunde ej spara till forum.txt\n";
if(in_array(2)) $gpost.="OBS !!! Kunde ej spara till id.txt\n";
if(in_array(3)) $gpost.="OBS !!! Kunde ej spara till index.txt\n";
}

if ($skickamail==1){
$huvud = "From: Mitt forum <".$mailavsandare.">\n";
$huvud .= "Return-Path: <".$mailavsandare.">\n";
mail($mailmottagare, "Nytt inlagg i Forumet", $gpost, $huvud);
}

if(isset($sida)){
$url = "inlagg.php?id=".$id."&sida=".$sida;
} else $url = "forum.php";

header("Location: $url");
?>

jwradheMedlem sedan juni 2002711 inlägg
#6

Hej Elisabeth_58!

function linkURL($web)
{
        $web = preg_replace("/(?<=^|\s)(www\.([-a-zA-Z0-9_]+\.)*[-a-zA-Z0-9_]+\.[-a-zA-Z0-9_]{2,6}(\/[^\s]*)*)(?=\s|$)/", "http://$1", $web);        
        $search = "/(?<=^|\s)(http:\/\/|https:\/\/|ftp:\/\/)(([-a-zA-Z0-9_]+\.)*[-a-zA-Z0-9_]+\.[-a-zA-Z0-9_]{2,6}(\/[^\s]*)*)(?=\s|$)/";
        $replace = "<a href=\"$1$2\" target='_blank'>$2</a>";
        $web = preg_replace($search, $replace, $web);    
        return $web;
}

Den koden kan ligga var som i filen där du skriver ut tråden(inom php taggar), sen i den tagen där du skriver ut texten sätter du funktionen på bara. tex linkURL($trad['text'])

Visa hur sidan där du skriver ut tråden&svar på så kan ja försöka baka in den åt dig.

Elisabeth 58Medlem sedan nov. 20079 inlägg
#7

Hej igen jwradhe. Som jag fattar det så ska det i såna fall ligga inbakat i "spara.php"-filen som jag kopierade in ovan. Försökte själv få till det, men det blev givetvis pannkaka av det hela.....Kan du se/förstå om det stämmer att den ska in där?
(övriga filer tillhörande Maltes forum finns som sagt att hämta på
http://www.a-kok.com/php/forum.php) Heder åt Malte -hans enkla forum utan mysql är så bra och enkelt och passar "gamla tanter" alldeles ypperligt.

jwradheMedlem sedan juni 2002711 inlägg
#8

Hej Elisabeth!

Nej ska inte in i spara, utan den ska in i koden där du skriver ut sakerna.
Tex visa_trad.php om du förstår, där du loopar ut trådtexten, samt svaren på tråden, där ska vi lägga in denna kod.

Tror sidan heter inlagg.php som ja fattar det.

jwradheMedlem sedan juni 2002711 inlägg
#9

Har kollat nu.

lägg detta på rad 107:

$fpost.="<br>\n<div class=\"meddelande\">".linkURL(wordwrap($inlagg[3], 60, "\n", 1))."</div>\n";

och sen detta vart du vill före inom php taggar.

function linkURL($web)
{
        $web = preg_replace("/(?<=^|\s)(www\.([-a-zA-Z0-9_]+\.)*[-a-zA-Z0-9_]+\.[-a-zA-Z0-9_]{2,6}(\/[^\s]*)*)(?=\s|$)/", "http://$1", $web);        
        $search = "/(?<=^|\s)(http:\/\/|https:\/\/|ftp:\/\/)(([-a-zA-Z0-9_]+\.)*[-a-zA-Z0-9_]+\.[-a-zA-Z0-9_]{2,6}(\/[^\s]*)*)(?=\s|$)/";
        $replace = "<a href=\"$1$2\" target='_blank'>$2</a>";
        $web = preg_replace($search, $replace, $web);    
        return $web;
}

Och så kanske det funkar :)

Elisabeth 58Medlem sedan nov. 20079 inlägg
#10

Hej igen. Jag fortsätter att fråga....ingen som har löst detta ännu, eller tidigare -och vill dela med sej av sin kunskap? Hittills givna förslag har jag inte fått att fungera.
Gör man forumet lösenordsskyddat så går det ju bara finfint att ha "direkt-länk-funktion" i inläggen. Gäller ju bara att veta "hur" det ska göras..
Ett enkelt, lättöverskådligt och superbra forum utan mysql. Kanske jag också saknar en sökfunktion -annars tiptop bortsett från länkningen och <br /> duttarna (se mitt första inlägg på denna sida)
mvh Elisabeth
vääldans nybörjare

134 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)