Avatar billede unsafe Nybegynder
07. april 2005 - 00:30 Der er 5 kommentarer og
1 løsning

Lille problem med preg_replace

Jeg har gjordt det muligt at man kan skrive [bruger] og så giver den link til den profil.

Men når jeg eksempelvis poster det i et svar i mit forum ([bruger]) så vises linket godt nok men så hvis man poster et svar efter poster med [bruger] så viser den de nyeste beskeder i toppen når jeg har bedst den om noget andet i min query. Forviret?

Her er min kode.

$html = preg_replace("/\[(.+?)\]/", "<a href=profiler.php?bruger=$1>$1</a>", $html);

Hvis i ikke forstår mig kan i i logge ind i mit forum www.efy.dk/forum som bruger: Test & pass: test.

Og så selv prøve i en tråd. jaer.
Avatar billede barklund Nybegynder
07. april 2005 - 00:44 #1
Hm, det giver ikke megen mening - må vi se dit script?
Avatar billede detox Nybegynder
07. april 2005 - 00:53 #2
Lad os se: 'profiler.php'
Avatar billede unsafe Nybegynder
07. april 2005 - 01:19 #3
:O huh?

Profiler.php var bare et link, intet at gøre med det.

Prøv at logge ind og:
1. skrive et svar i en tråd så i kan se at jeg for sorteret dem med (ASC)
2. post et svar det indeholder [noget_her]
3. post et til svar, bare en tester. Så kan i se at det fra at postene ordnes (ASC) Til (DESC)

Arg, er svært at forklare :/
Avatar billede detox Nybegynder
07. april 2005 - 01:47 #4
Jamen så må vi jo se på forum.php.
Avatar billede unsafe Nybegynder
07. april 2005 - 13:47 #5
Jaer, smiden den lige så. Bare 400 liner eller såden noget :S

<?php
include("includes/mysql.php");
include("includes/functions.php");

if(!$_GET["forum"])
{
header("Location: index.php");
}

if(!$_GET["action"])
{

include("includes/top.php");

?>

<a href="forum.php?forum=<?=$_GET["forum"];?>&action=opret_traad" class="block">Opret tråd</a><br>

<table width="100%" class="maintable">
<tr>
<td width="40%" class="headline">Tråd</td>
<td width="30%" class="headline">Forfatter</td>
<td width="15%" class="headline">Dato</td>
<td width="15%" class="headline">Svar</td>
</tr>

<?php

$conn = mysql_query("SELECT * FROM forum_traad WHERE forum_id = '$_GET[forum]' ORDER BY id DESC");
while($rs = mysql_fetch_array($conn)) {

$conn2 = mysql_query("SELECT * FROM forum_svar WHERE traad_id = '$rs[id]' ORDER BY id DESC");
$rs2 = mysql_fetch_array($conn2);

$conn3 = mysql_query("SELECT * FROM forum_users WHERE id = '$rs[user_id]' ORDER BY id DESC");
$rs3 = mysql_fetch_array($conn3);

$conn8 = mysql_query("SELECT * FROM forum_traad WHERE forum_id = '$_GET[forum]'");
$rs8 = mysql_fetch_array($conn8);

if(mysql_num_rows($conn8) != "0") {

?>

<tr>
<td width="40%" class="forums"><a href="forum.php?forum=<?=$_GET[forum];?>&action=traad&id=<?=$rs["id"];?>"><?=$rs["overskrift"];?></a></td>
<td width="30%" class="forums"><?=$rs3["username"];?></td>
<td width="15%" class="forums"><?=$rs["date"];?></td>
<td width="15%" class="forums"><?=mysql_num_rows($conn2);?></td>
</tr>

<?php

} else {

?>

<tr>
<td width="100%" class="forums" colspan="4">Ingen tråde i dette forum.</td>
</tr>

<?php

}

}

?>
</table>

<?php

include("includes/bottom.php");

} elseif($_GET["action"] == "opret_traad")
{

session_start();

if(!$_SESSION["username"] AND !$_SESSION["password"])
{
header("Location: login.php");
}

if($_SERVER["REQUEST_METHOD"] == "POST")
{

$conn = mysql_query("SELECT * FROM forum_users WHERE username = '$_SESSION[username]'");
$rs = mysql_fetch_array($conn);

mysql_query("INSERT INTO forum_traad (user_id, overskrift, besked, date, forum_id)
values('".$rs["id"]."',
'".$_POST["overskrift"]."',
'".$_POST["besked"]."',
'".date("Y-m-j H:i:s")."',
'".$_GET["forum"]."')");

header("Location: forum.php?forum=$_GET[forum]");

}

include("includes/top.php");

$conn = mysql_query("SELECT * FROM forum_forum WHERE id = '$_GET[forum]'");
$rs = mysql_fetch_array($conn);

?>


<table width="100%" class="maintable">
<tr>
<td width="20%" class="headline">Smilies</td>
<td width="80%" class="headline">Ny tråd i kategori: <?=$rs["forum"];?></td>
</tr>
<tr>

<td width="20%" class="forums">

<?php include("includes/smilies.php"); ?>

</td>
<td width="20%" class="forums">
<form method="post" action="<?=$PHP_SELF?>">
<table width="100%">
<tr>
<td class="text"><b>Emne</b></td>
<td><input type="text" name="overskrift"> <span class="red">*</span><br>
<input type="button" value="F" style="font-weight: bold" onclick="setSmilie('[fed][/fed]');">
<input type="button" value="K" style="font-style: italic" onclick="setSmilie('[k][/k]');">
<input type="button" value="U" style="text-decoration: underline" onclick="setSmilie('');">
<input type="button" value="S" onclick="setSmilie('[s][/s]');">
<input type="button" value="Link" onclick="setSmilie('Http://');">
<input type="button" value="Liste" onclick="setSmilie('[liste]\n[p]Punkt[/p]\n[p]Punkt[/p]\n[p]Punkt[/p]\n[/liste]');">
<input type="button" value="Kode" onclick="setSmilie('[kode][/kode]');">
</td>
</tr>
<td class="text"><b>Besked</b></td>
<td><textarea cols="50" rows="15" name="besked"></textarea> <span class="red">*</span><br>
<input type="submit" value="Opret tråd"></td>
</tr>
</table>
</form>

<br>

Felter med <span class="red">*</span> <u>SKAL</u> udfyldes.

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


<?php

include("includes/bottom.php");

} elseif($_GET["action"] == "traad")
{

session_start();

if(!$_SESSION["username"] AND !$_SESSION["password"])
{
header("Location: login.php");
}

if($_SERVER["REQUEST_METHOD"] == "POST")
{

$conn = mysql_query("SELECT * FROM forum_users WHERE username = '$_SESSION[username]'");
$rs = mysql_fetch_array($conn);

mysql_query("INSERT INTO forum_svar (user_id, overskrift, besked, date, traad_id, forum_id)
values('".$rs["id"]."',
'".$_POST["overskrift"]."',
'".$_POST["besked"]."',
'".date("Y-m-j H:i:s")."',
'".$_GET["id"]."',
'".$_GET["forum"]."')");

mysql_query("UPDATE forum_users SET posts = ".("$rs[posts]+ 1")." WHERE username = '$_SESSION[username]'");

header("Location: forum.php?forum=$_GET[forum]&action=traad&id=$_GET[id]");

}

include("includes/top.php");

$conn = mysql_query("SELECT * FROM forum_traad WHERE id = '$_GET[id]'");
$rs = mysql_fetch_array($conn);

$conn2 = mysql_query("SELECT * FROM forum_users WHERE id = '$rs[user_id]'");
$rs2 = mysql_fetch_array($conn2);

$conn3 = mysql_query("SELECT * FROM forum_users WHERE username = '$_SESSION[username]'");
$rs3 = mysql_fetch_array($conn3);

?>

<table width="100%" class="maintable">
<tr>
<td width="20%" class="headline">Forfatter</td>
<td width="80%" class="headline"><?=$rs["overskrift"];?></td>
</tr>
<tr>
<td width="20%" class="forums"><b><a href="profiler.php?id=<?=$rs2["id"];?>"><?=$rs2["username"];?></a></b>
<?php if (file_exists("images/avatar/" . $rs2["id"] . ".gif")) {?>
<br>
<img src="images/avatar/<?=$rs2["anavn"];?>">
<?php } ?>
<br><br>
Antal posts: <?=$rs2["posts"]?></td>
<td width="80%" class="forums">Skrevet: <?=$rs["date"];?><hr size="1" color="#7f7f7f" align="left" width="80%">
<?echo nl2br(smilies(url2link(email2link(nohtml($rs[besked]))))) ?></td>
</tr>
<tr>
<td width="20%" class="forums"><a href="#top">Gå til toppen af siden</a></td>
<td width="80%" class="forums"><a href="profiler.mail.php?id=<?=$rs2["id"];?>"><img border="0" src="images/other/besked.gif"></a> | <a href="profiler.php?id=<?=$rs2["id"];?>"><img border="0" src="images/other/profiler.gif"></a><?php if($rs3["is_admin"] == "yes") {?> | <a href="forum.php?forum=<?=$_GET["forum"];?>&action=del&traadid=<?=$rs["id"];?>"><img border="0" src="images/other/slet.gif"></a><?php } ?></td>
</tr>
</table>

<br><br>

<?php

$conn3 = mysql_query("SELECT * FROM forum_svar WHERE traad_id = '$_GET[id]'");
$rs3 = mysql_fetch_array($conn3);

?>

<?php if(mysql_num_rows($conn3) == 0) { ?>


<table width="100%" class="maintable">
<tr>
<td width="100%" class="forums">Der er endnu ingen svar til denne tråd.</td>
</tr>
</table>

<br><br>

<?php } else {

$conn4 = mysql_query("SELECT * FROM forum_svar WHERE traad_id = '$_GET[id]'");
while($rs4 = mysql_fetch_array($conn4)) {

$conn5 = mysql_query("SELECT * FROM forum_users WHERE id = '$rs4[user_id]'");
$rs5 = mysql_fetch_array($conn5);

$conn6 = mysql_query("SELECT * FROM forum_users WHERE username = '$_SESSION[username]'");
$rs6 = mysql_fetch_array($conn6);

?>

<table width="100%" class="maintable">
<tr>
<td width="20%" class="kategori">Forfatter</td>
<td width="80%" class="kategori"><?=$rs4["overskrift"];?></td>
</tr>

<tr>
<td width="20%" class="forums"><b>
<a href="profiler.php?id=<?=$rs5["id"];?>"><?=$rs5["username"];?></a></b>
<?php if (file_exists("images/avatar/" . $rs5["id"] . ".gif")) {?>
<br>
<img src="images/avatar/<?=$rs5["anavn"];?>">
<?php } ?>
<br><br>
Antal posts: <?=$rs5["posts"]?></td>
<td width="80%" class="forums">
Skrevet: <?=$rs4["date"];?> | <input type="button" onclick="setSmilie('[quote]\n<?=$rs4[besked];?>\n[/quote]\n\n');" value="Quote">
<hr size="1" color="#7f7f7f" align="left" width="80%">
<?echo nl2br(smilies(url2link(email2link(nohtml($rs4[besked]))))) ?>
</td>
</tr>
<tr>
<td width="20%" class="forums"><a href="#top">Gå til toppen af siden</a></td>
<td width="80%" class="forums"><a href="profiler.mail.php?id=<?=$rs5["id"];?>"><img border="0" src="images/other/besked.gif"></a> | <a href="profiler.php?id=<?=$rs5["id"];?>"><img border="0" src="images/other/profiler.gif"></a><?php if($rs6["is_admin"] == "yes") {?> | <a href="forum.php?forum=<?=$_GET["forum"];?>&action=del&svarid=<?=$rs4["id"];?>"><img border="0" src="images/other/slet.gif"></a><?php } ?></td>
</tr>
</table>

<br><br>

<?php

}
}

?>

<table width="100%" class="maintable">
<tr>
<td width="20%" class="headline">Smilies</td>
<td width="80%" class="headline">Besvar tråden: <?=$rs["overskrift"];?></td>
</tr>
<tr>

<td width="20%" class="forums">

<?php include("includes/smilies.php"); ?>

</td>
<td width="20%" class="forums">
<form method="post" action="<?=$PHP_SELF?>">
<table width="100%">
<tr>
<td class="text"><b>Emne</b></td>
<td><input type="text" name="overskrift"> <span class="red">*</span><br>
<input type="button" value="F" style="font-weight: bold" onclick="setSmilie('[fed][/fed]');">
<input type="button" value="K" style="font-style: italic" onclick="setSmilie('[k][/k]');">
<input type="button" value="U" style="text-decoration: underline" onclick="setSmilie('');">
<input type="button" value="S" onclick="setSmilie('[s][/s]');">
<input type="button" value="Link" onclick="setSmilie('Http://');">
<input type="button" value="Liste" onclick="setSmilie('[liste]\n[p]Punkt[/p]\n[p]Punkt[/p]\n[p]Punkt[/p]\n[/liste]');">
<input type="button" value="Kode" onclick="setSmilie('[kode][/kode]');">
</td>
</tr>
<td class="text"><b>Besked</b></td>
<td><textarea cols="50" rows="15" name="besked" id="besked"></textarea> <span class="red">*</span><br>
<input type="submit" value="Besvar tråd"></td>
</tr>
</table>
</form>

<br>

Felter med <span class="red">*</span> <u>SKAL</u> udfyldes.

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

<?php

include("includes/bottom.php");

} elseif($_GET["action"] == "del")
{

if(!$_SESSION["username"] AND !$_SESSION["password"])
{
header("Location: login.php");
}

include("includes/top.php");

$conn = mysql_query("SELECT * FROM forum_users WHERE username = '$_SESSION[username]'");
$rs = mysql_fetch_array($conn);

if($rs["is_admin"] == "yes")
{

if($_GET["traadid"])
{

mysql_query("DELETE FROM forum_svar WHERE traad_id = '$_GET[traadid]'");

mysql_query("DELETE FROM forum_traad WHERE id = '$_GET[traadid]'");

echo "<span class=green>Tråden er slettet</span><br><br>
<i>Sender dig tilbage...</i>";
echo "<meta http-equiv='refresh' content='2; URL=forum.php?forum=$_GET[forum]' />";

} elseif($_GET["svarid"]) {

mysql_query("DELETE FROM forum_svar WHERE id = '$_GET[svarid]'");

echo "<span class=green>Svaret er slettet</span><br><br>
<i>Sender dig tilbage...</i>";
echo "<meta http-equiv='refresh' content='2; URL=java script:history.go(-1)' />";

}

} else {

echo "<span class=red><br>Du kan ikke slette stråde og/eller svar da du ikke er administrator</span><br><br>
<i>Sender dig tilbage...</i>";
echo "<meta http-equiv='refresh' content='2; URL=java script:history.go(-1)' />";

}

include("includes/bottom.php");

}

?>
Avatar billede unsafe Nybegynder
07. april 2005 - 20:14 #6
Lige meget. fandt ud af det.
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