Avatar billede matz Nybegynder
25. oktober 2006 - 11:03 Der er 14 kommentarer og
1 løsning

Hvordan får jeg brugernavn ind her

Jeg skal have brugernavn ind istedet for "navn" så den medtager brugernavnet fra den profil som er logget ind...Jeg har prøvet med:

<a href="vis_profil.php?profil='.$vis['navn'].'">'.$vis['navn'].'</a>

Koden:

<?php
// Her skal du bare indtaste din egne mysql oplysninger igen
include("connect.php");
?>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<link rel="STYLESHEET" type="text/css" href="stylesheet.css">
</head>

<body class="body" bgcolor="#FFFFCB">
<br>

<?php
$id = $_GET[id];

//Vi tjekker om der overhovedet er valgt et spørgsål
if(!empty($id)){

// Hvis der er valgt et så henter vi det valgte og udskriver det
$hent = mysql_query("SELECT * FROM forum WHERE id = '$id'") or die(mysql_error());
$vis = mysql_fetch_array($hent);
echo "<span class=\"h1\">Emne - $vis[overskrift]</span><br><br>";
echo "<table class=\"body\" bgcolor=\"#F9F4C5\" cellpadding=\"2\" cellspacing=\"1\" width=\"600\">";
echo "<tr><td class=\"body\" bgcolor=\"#F9F4C5\">";
echo "<b>Skrevet af:</b> $vis[forfatter] ";
echo " <b>Dato:</b> $vis[dato]";
echo "</td></tr><tr><td class=\"body\" bgcolor=\"#FFFFCB\" height=\"50\" valign=\"top\" border=\"1\">";
echo nl2br($vis[sporg]);
echo "</td></tr></table>";

echo "<br><span class=\"h1\">Svar</span><br><br>";

// Så henter vi alle dem fra forum_svar hvor 'nr' er lig med spørgsmålets id :)
$get = mysql_query("SELECT * FROM forum_svar WHERE nr = '$id' ORDER BY id DESC") or die(mysql_error());
while($show = mysql_fetch_array($get)){
echo "<table class=\"body\" bgcolor=\"#F9F4C5\" cellpadding=\"2\" cellspacing=\"1\" width=\"600\">";
echo "<tr><td class=\"body\" bgcolor=\"#F9F4C5\">";
echo "<b>Kommentar af:</b> $show[navn] ";
echo "<b> Dato:</b> $show[dato]";
echo "</td></tr><tr><td bgcolor=\"#FFFFCB\" height=\"50\" valign=\"top\" border=\"1\">";
echo nl2br(htmlspecialchars($show[svar]));
echo "</td></tr></table><br>";
}
echo "<br><br>";
?>
<span class="h1">Dit svar</span>
<!-- Læg mærke til at vi sender spørgsmålets id med i formen da vi skal bruge den senere -->
<form action="handle.php?mode=svar&id=<? echo $id; ?>" method="POST">
Navn:<br>
<input type="text" name="navn"><br>
Svar:<br>
<textarea rows="6" cols="35" name="svar"></textarea><br>
<input type="submit" value="Svar">
</form>

<?
} else {
echo "Du har ikke valgt noget spørgsmål<br><a href=\"forum.php\">Prøv igen</a>";
}
?>
Avatar billede sw_red_6 Nybegynder
25. oktober 2006 - 11:07 #1
der er ikke rigtig noget med profil her.
hvor er det du vil have det henne?
Avatar billede matz Nybegynder
25. oktober 2006 - 11:21 #2
Her f.eks:

echo "<b>Skrevet af:</b> $vis[forfatter] ";

Og jeg har selvfælgelig en vis_profil.php
Avatar billede sw_red_6 Nybegynder
25. oktober 2006 - 11:25 #3
hvad bruger du i vis_profil.php til at finde oplysningerne op brugeren?
Avatar billede matz Nybegynder
25. oktober 2006 - 11:33 #4
$db_profil = mysql_query("select * from brugere where brugernavn = '$_GET[profil]'");
Avatar billede sw_red_6 Nybegynder
25. oktober 2006 - 11:37 #5
prøv med det her:
echo "<b>Skrevet af:</b> <a href=\"vis_profil.php?profil=". $vis['forfatter'] ."\">$vis[forfatter]</a> ";

muligvis ikke nødvendigt med ". ." i linket, men hellere være sikker.
Avatar billede matz Nybegynder
25. oktober 2006 - 11:52 #6
Det virker... :)

men nu skal jeg have "navn" fra formularen:

<form action="handle.php?mode=opret" method="POST">
Navn:<br>
<input type="text" name="forfatter"><br>
Overskrift:<br>
<input type="text" name="overskrift"><br>
Spørgsmål:<br>
<textarea name="sporg" rows="6" cols="35"></textarea><br>
<input type="submit" value="Opret">
</form>

Den her kode siger så at man skal udfylde begge felter...hvordan får jeg det til at virke nu hvor navn skal væk:

if(!empty($navn) && !empty($svar)){
mysql_query("INSERT INTO forum_svar (navn, svar, dato, nr)VALUES('$navn', '$svar', '$dato', '$id')") or die(mysql_error());
header("location: laes.php?id=$id");
} else {
echo "Du skal udfylde begge felter";
Avatar billede matz Nybegynder
25. oktober 2006 - 11:56 #7
men nu skal jeg have "navn" væk fra formularen: skulle der stå
Avatar billede sw_red_6 Nybegynder
25. oktober 2006 - 12:28 #8
Prøv med det her:
<form action="handle.php?mode=opret" method="POST">
Overskrift:<br>
<input type="text" name="overskrift"><br>
Spørgsmål:<br>
<textarea name="sporg" rows="6" cols="35"></textarea><br>
<input type="submit" value="Opret">
</form>

og

f(!empty($svar)){
mysql_query("INSERT INTO forum_svar (navn, svar, dato, nr)VALUES('$navn', '$svar', '$dato', '$id')") or die(mysql_error());
header("location: laes.php?id=$id");
} else {
echo "Du skal udfylde feltet";
Avatar billede matz Nybegynder
25. oktober 2006 - 14:09 #9
Det virker :) Men jeg har et problem med det:

Hvis du kigger her så bliver "forfatter" ikke udskrevet - så den medtager det ikke...Du kan lige se forum.php:

<?php
// Her skal du bare indtaste din egne mysql oplysninger
include("connect.php");
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<link rel="STYLESHEET" type="text/css" href="stylesheet.css">
</head>

<body class="body" bgcolor="#FFFFCB">
<br>
<span class="h1">Forum - Fri debat</span><br><br>


<a href="opret_emne.php">Opret nyt emne</a><br><br>
<table width="500" cellpadding="2" cellspacing="1">
<tr>
<td class="body" bgcolor="#F9F4C5" width="25%">
<b>Spørgsmål</b>
</td><td class="body" bgcolor="#F9F4C5" width="25%">
<b>Forfatter</b>
</td><td class="body" bgcolor="#F9F4C5" width="25%">
<b>Dato</b>
</td><td class="body" bgcolor="#F9F4C5" width="25%">
<b>Svar</b>
</td></tr>
<?php
// Nu skal vi hente alle de spørgsmål der er stillet
$hent = mysql_query("SELECT * FROM forum ORDER BY id DESC") or die(mysql_error());
while($vis = mysql_fetch_array($hent)){
echo "<tr><td bgcolor=\"#FFFFCB\">";

//Vi laver et link til laes.php med spørgsmålets id :)
echo "<a href=\"laes.php?id=$vis[id]\">$vis[overskrift]</a>";
echo "</td><td class=\"body\" bgcolor=\"FFFFCB\">";
echo "<a href=\"vis_profil.php?profil=". $vis['forfatter'] ."\">$vis[forfatter]</a> ";
echo "</td><td class=\"body\" bgcolor=\"FFFFCB\">";
echo $vis[dato];
echo "</td><td class=\"body\" bgcolor=\"FFFFCB\">";

// Nu skal vi tælle hvor mange svar der er til hvert spørgsmål :)
$antal = mysql_query("SELECT COUNT(*) AS antal FROM forum_svar WHERE nr = '$vis[id]'") or die(mysql_error());
echo mysql_result($antal, 0);
echo "</td></tr>";
}
?>
</td>
</table>
</html>
Avatar billede sw_red_6 Nybegynder
25. oktober 2006 - 14:49 #10
hvad er det der ikke bliver vidst?
den her linie:
echo "<a href=\"vis_profil.php?profil=". $vis['forfatter'] ."\">$vis[forfatter]</a> "; ??
det kunne måske være fordi du ikke har en attribut der hedder forfatter på tabellen forum?
Avatar billede matz Nybegynder
25. oktober 2006 - 15:57 #11
Jo jeg har et felt i databasen der hedder forfatter, men den skal jo medtage brugernavnet når man er logget ind.

Jeg ved bare ikke hvorfor den ikke gør det.
Avatar billede sw_red_6 Nybegynder
25. oktober 2006 - 16:55 #12
$vis[forfatter] er jo navnet på den der skrev beskeden, ikke navnet på brugeren der er logget ind (ikke nødvendigvis), eller har jeg misforstået det?

Kan du ikke hive brugernavnet ud af en session eller sådan noget?
Avatar billede matz Nybegynder
25. oktober 2006 - 17:26 #13
Jo jeg bruger session, kan du vise mig hvordan det skal skrives ind i koden?
Avatar billede matz Nybegynder
25. oktober 2006 - 18:26 #14
Har fundet ud af det..bare læg et svar :)
Avatar billede sw_red_6 Nybegynder
26. oktober 2006 - 10:16 #15
godt du 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