Avatar billede hobbittend Novice
09. april 2008 - 13:09 Der er 11 kommentarer og
1 løsning

No database selected.

Hey alle sammen.. Er der nogen der kan se hvad der er galt her?

Det skal være en gæstebog (dvs. jeg skal bruge det til et kommentarfelt)
jeg har brugt følgende som guide: http://www.phpuniverset.dk/show_artikels.phtml?ArtikelID=50&artikel=Lav.din.helt.egen.g%C3%A6stebog!

Her er et eksempel: http://hobbit.freehostia.com

Her er koden:
"

<!--
Vi laver gæstebogen i en fil.
Vi laver 2 link, et til hvor man skrive i gæstebogen, og et til hvor man kan se i gæstebogen.
Med php kan man bruge $_GET til at lave flere sider med i EN fil.
Det er meget smart :-).
-->
<a href="index.php?valg=skriv">Skriv en kommentar</a> - <a href="index.php?valg=kig">Kig i gæstebogen</a><br><br>

<?php // PHP starter.
if($_GET[valg] == "skriv") { // Vi tester med if om brugeren har trykket på 'skriv i gæstebogen' hvis brugeren ikke har det viser den ikke.
// afslutter PHP, nu kan vi skrive html igen
?>

<!--
Her laver vi en html form, hvor action er = index.php?valg=skrivok
Når brugeren har trykket på submit knappen går den til index.php?valg=skrivok
Og vi laver sådan at når brugeren trykker kommer den hen til en $_GET ligesom ovenover.
-->
<form action="index.php?valg=skriv" method="POST">
<b>Navn:</b> <br>
<input type="text" name="navn" size="20" />
<br>
<b>Kommentar:</b><br>
<textarea name="besked" rows="7" cols="24"></textarea><br>
<input type="submit" value="Komment&eacute;r">
</form>

<?php
}
if($_GET[valg] == "skrivok") {


if($_POST[navn] == "") {
echo("Du skal udfylde feltet <b>Navn</b>");
} else { //

if($_POST[besked] == "") {
echo("Du skal skrive en kommentar ");
} else { //

$dato = date('d/m/Y H:i:s');
$ip = $_SERVER[REMOTE_ADDR];
$navn = htmlspecialchars($_POST[navn]); //
$besked = htmlspecialchars($_POST[besked]); //

if(!get_magic_quotes_gpc()) { // Vi laver en sikkerheds foranstaltning. Den vil jeg ikke til at fortælle om, hvis du er interesseret i at vide hvad den gør kan du søge på php.net
$navn = addslashes($navn);
$besked = addslashes($besked);
}

include("db_connection.php"); // Vi inkludere php filen db_connection.php i vores fil, den sørge for der er forbindelse til databasen.
mysql_query("INSERT INTO gaestbog (dato, ip, navn, besked) VALUES ('$dato', '$ip', '$navn', '$besked')") or die(mysql_error()); // Vi sætter alle brugerens POSTER ind i databasen.
echo("Tak for din kommentar!");
}
}
} // Vi afslutter alle vores '{' med '}'

if($_GET[valg] == "kig") {

include("db_connection.php");
$hent = mysql_query("SELECT * FROM gaestbog ORDER BY id DESC") or die(mysql_error()); // vi henter dataene fra databasen
if(mysql_num_rows($hent)) { // tester om der er noget i databasen.
while($vis = mysql_fetch_array($hent)) { // vi bruger while til at sørge for at den henter ALLE dataene ud fra databasen, vi gemmer alle dataene i virablen $vis
?>
<table border="0" width="100%">
<tr>
<td>
<table border="0" width="100%">
<tr>
<td><b><? echo $vis[navn]; ?></b> Skriver den. <i><? echo $vis[dato]; ?></i> :</td>
</tr>
<tr>
<td><? echo nl2br($vis[besked]); ?></td>
</tr>
</table>
</td>
</tr>
</table>
<hr style="border: 1px dotted #000080" color="#000080">
<?
}
} else {
echo("Der blev intet fundet i databasen.");
}
}
?>

"
Avatar billede dkfire Nybegynder
09. april 2008 - 13:26 #1
Hvordan ser din db_connection.php fil ud ??
Avatar billede hobbittend Novice
09. april 2008 - 18:26 #2
Den ser sådan her ud:

<?
mysql_connect("HOST", "BRUGER", "KODE");
mysql_select_db("DB_BRUGER");
?>
Avatar billede dkfire Nybegynder
09. april 2008 - 18:56 #3
prøv at ændre det til:
<?
mysql_connect("HOST", "BRUGER", "KODE") or die(mysql_error());
mysql_select_db("DB_BRUGER") or die(mysql_error());
?>
Avatar billede hobbittend Novice
09. april 2008 - 19:39 #4
Nu skriver den i stedet:


;?
Access denied for user 'denjen5_db'@'%' to database 'gaestbog'


Hvad skal man skrive i mysql_select_db ?? Det er den database man vil bruge, ikke? Dvs. den der hedder gaestbog i det her tilfælde.
Avatar billede dkfire Nybegynder
09. april 2008 - 19:43 #5
Du skal skrive den database son du har fået oplyst af din host.
Jeg tvivler på at din database hedder gaestbog
Avatar billede hobbittend Novice
10. april 2008 - 12:21 #6
Det har jeg så ændret på nu. Det ser ud som om at den connecter til databsen, og oplyser mig ganske rigtigt om at der ikke ligger noget i databasen.
Det jeg skriver kommer simpelthen ikke i den. Nogen bud på hvorfor?
Avatar billede fant0mas Nybegynder
10. april 2008 - 13:29 #7
index.php?valg=skriv

if($_GET[valg] == "skrivok") {

Kan du finde holger?
Avatar billede dkfire Nybegynder
10. april 2008 - 15:07 #8
Jeg vil nok nærmere sige:
<!--
Her laver vi en html form, hvor action er = index.php?valg=skrivok
....
<form action="index.php?valg=skriv" method="POST">
....
if($_GET[valg] == "skrivok") {
....
Avatar billede hobbittend Novice
11. april 2008 - 13:38 #9
Tak for hjælpen indtil videre :)
Jeg håber i kan hjælpe mig lidt videre.

1: Når man trykker på "skriv kommentar" klager den allerede der over at man ikke har udfyldt feltet navn. Det skal først komme når man forsøger at afsende.

2: når man har skrevet, står der følgende over der hvor den siger "tak for din kommentar":
"
;?
?;

tak for din kommentar
"

Det samme gør sig gældende når man skal læse allerede skrevede kommentarer..

Nogen der kan hjælpe?
Avatar billede dkfire Nybegynder
11. april 2008 - 23:01 #10
Kunne det tænkes det havde noget med din db_connection.php fil at gøre.
Avatar billede hobbittend Novice
13. april 2008 - 19:17 #11
Ja.. Nummer to er løst.. Hvad med nummer 1?
Avatar billede dkfire Nybegynder
14. april 2008 - 13:36 #12
Jeg ligger lige et svar her, da vi har fået løst dit oprindelige problem.
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