Avatar billede matz Nybegynder
09. november 2006 - 19:19 Der er 5 kommentarer og
1 løsning

Problem med relation

Jeg har en gæstebog hvor den skal tage brugernavnet i den gæstebog der bliver skrevet i og ligge ned i et felt der hedder "brugers"

Altså brugernavnet skal udtrækkes fra en tabel "brugere" felt "brugernavn" .... til tabel "profilgb" felt "brugers".

Den vil godt vise hvem der har skrevet beskeden.

Koden:

<?
session_start();
ob_start();
//Ovenover starter vi sessions, gøre sådan at vi må bruge header længere nede af siden!
$brugernavn = $_SESSION['brugernavn'];
//Byt brugernavn ud med din session der indeholder brugerensnavn
include("connect.php");
//Udfyld dine MySQL oplysninger ovenover, det skulle ikke være det store problem hvis man bare har lidt forstand på PHP
$ip = $_SERVER["REMOT_ADDR"];
$tid = date('d-m-Y');
//Ovenover bliver ens ip og tid gemt i to variabler
$url_brugernavn = $_GET['brugernavn'];
//Ovenover tager vi indholdet fra ?brugernavn=xxx og gemmer det i en variabel


//Her skal du indsætte den kode du bruger til at tjekke om man er logget ind
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Bruger gæstebog</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="STYLESHEET" type="text/css" href="stylesheet.css">
</head>

<body class="body" bgcolor="FFFFCB">
<?
//Nedenunder skal vi have en formel som der vist ikke er det store besvær med
//Du skal også rette profilgb.php til dit filnavn!
?>
<br />
<b>Gæstebog</b>  <br />
<img src="hr.jpg" width="600" />
<form method="post" name="opretbesked" action="profilgb.php?profil=<? echo $_GET['brugernavn']; ?>">
Din besked:<br>
<textarea name="besked" style="width:300px; height:100px;"></textarea><br>
<input type="submit" value="Send besked" name="tjek">
</form>
<b>Beskeder skrevet i gæstebogen:</b>

<?
//Vi tjekker om man har trykket på button knappen og udfører derefter nogle handlinger
if ($_POST["tjek"]){
//Vi tjekker her om brugeren har skrevet en besked, hvis ikke udskriver den en fejlmeddelse
if ($_POST["besked"] == ""){
echo "Du har ikke skrevet nogen besked!";
}
else
{
//Her bliver man sendt til hvis man har skrevet en besked

//Nedenunder bliver $_POST["besked"] lavet til en almindelig variabel
$besked = $_POST["besked"];
//Nedenunder tjekker vi for om brugeren har indtastet noget der kan skade vores database, hvis personen har det bliver der indsat noget // så det er uskadelig
if(!get_magic_quotes_gpc()){
$besked = addslashes($besked);
}
//Nedenunder indsætter vi indholdet til vores database
mysql_query("INSERT INTO profil_gb(ip, tid, skrevetaf, brugers, besked) values('$ip', '$tid', '$brugernavn', '$url_brugernavn', '$besked')");
}
}
?>
<br><br>
<?
//Her henter vi beskederne fra den pågældende gæstebog
$hent_beskeder = mysql_query("SELECT * FROM profil_gb WHERE brugers = '".$url_brugernavn."'");
while($row = mysql_fetch_array($hent_beskeder))
{
?>
<table width="400" border="0" bgcolor="#F9F4C5">
  <tr>
    <td class="body">
<? echo '<b><a href="vis_profil.php?profil='.$row['skrevetaf'].'">'.$row['skrevetaf'].'</a></b>'; ?>
</td>
  </tr>
</table>
<?
//Ovenover udskriver vi den der har skrevet en besked i den pågældende gæstebog
echo nl2br(htmlspecialchars($row["besked"]));
//Ovenover sørger vi for at man ikke kan brug HTML og der er automatisk linjeskift
echo "<br><br>";
}
?>
</body>
</html>
<?
//Her indsætter du den slut koden der tjekker om man er logget ind
?>
Avatar billede zynzz Praktikant
09. november 2006 - 19:27 #1
Men altså den gemmer ikke noget i "brugers" ? hvis ja, så må du lige tjekke om der står ?brugernavn=xxx i browseren
Avatar billede udvikler Nybegynder
09. november 2006 - 19:34 #2
$query = mysql_query("SELECT * FROM brugere WHERE brugernavn = '$beskedid'") or die(mysql_error());
while ($row=mysql_fetch_array($query);

$navn = $row[brugernavn];

$profilid = id; //variablen for id'et

mysql_query("UPDATE `profilgb` SET `brugernavn` = '$navn' WHERE id = '$profilid'");
Avatar billede matz Nybegynder
09. november 2006 - 19:45 #3
udvikler >> Har du mlighed for at sætte det ind i koden for at illustrere det.
Avatar billede udvikler Nybegynder
09. november 2006 - 21:00 #4
Jamen altså, det skal bare indsættes der hvor der er brug for det? :-)

Den øverste del af koden skal indsættes et sted - faktisk ligemeget hvor, bare du connecter til MySQL før du indsætter den.

Den anden del af koden skal indsættes efter beskeden er skrevet.
Avatar billede matz Nybegynder
30. november 2006 - 10:07 #5
Vil du have points?
Avatar billede matz Nybegynder
03. august 2007 - 12:01 #6
.
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