webForumDet fria alternativet

Hjälp med gästbok

PHPur PHP

16 svar · 580 visningar · startad av HeIISpawn

Medlem sedan dec. 20028 inlägg
Frågan#1

Hej, jag håller på att lära mig PHP och jag har fått lite problem med en gästbok som jag försöker göra.

Jag har gjort så att den hämtar $namn och $kommentar från en tabell i sql men nu vet jag inte hur jag ska göra för att besökare ska kunna skriva i gästboken, antar att man använder en form och sedan insert i tabellen på något sätt. Tabellen heter tomsta_gb.

Här är koden:

*<?php

$conn = pg_connect ("dbname=itda01c user=tomsta password=xxxxxx");

$query = pg_exec($conn, "SELECT \* FROM tomsta_gb");

$antalposter = pg_NumRows($query);

echo ("
	\<HTML\>
		\<TITLE\>Gästbok\</TITLE\>
	\<BODY bgcolor=black text=orange\>
	\<H1\>\<font size=2 face=verdana\> Gästbok \</H1\>\</font\>
	
	\<TABLE\>
		\<TR\>\<TH\>Namn:\<TH\>Kommentar:\</TR\>
");

for ($i=0 ; $i \< $antalposter ; $i++) {
	$namn=pg_Result($query,$i,namn);
	$kommentar=pg_Result($query,$i,kommentar);
	echo ("
		
		\<TR\>\<TD\>$namn\<TD\>$kommentar\</TR\>
	");
}

echo ("
	\</TABLE\>
	\</HTML\>
");

$x = pg_close($conn);	

?>*

Här finns ärGästboken

Hoppas ni kan hjälpa mig lösa problemet :)

Medlem sedan maj 2002647 inlägg
#2

Du använder som du säger ett formulär där besökaren fyller i den info du vill att den ska fylla i. (e.g <input type="text" name="rubrik">) sedan så skickar du datan till t.ex insert.php m.h.a:

method="POST" action="insert.php"

i <form>-taggen

insert.php:

$sql = "INSERT INTO tomsta_gb (rubrik) VALUES ('".$_POST['rubrik']."')";
$result = mysql_db_query("din_tabell","$sql");

Sedan får du bygga om denna kod så att den passar dig.

Medlem sedan dec. 20028 inlägg
#3

Tack

Tack för hjälpen jag förstår nog vad du menar tror jag men inte riktigt hur jag ska göra det.

Här är min kod nu:

gb.php

*<?php

$conn = pg_connect ("dbname=itda01c user=tomsta password=XXXXX");

$query = pg_exec($conn, "SELECT \* FROM tomsta_gb");

$antalposter = pg_NumRows($query);

echo ("
	\<HTML\>
		\<TITLE\>Gästbok\</TITLE\>
	\<BODY bgcolor=black text=orange\>
	\<H1\>\<font size=2 face=verdana\> Gästbok \</H1\>\</font\>
	
   \<form method="POST" action="insert.php"\>
        \<input type="text" name="namn" size="15"\>
        \<input type="text" name="kommentar" size="40"\>
    \</form\>
	
	\<TABLE\>
		\<TR\>\<TH\>Namn:\<TH\>Kommentar:\</TR\>
");

for ($i=0 ; $i \< $antalposter ; $i++) {
	$namn=pg_Result($query,$i,namn);
	$kommentar=pg_Result($query,$i,kommentar);
	echo ("
		
		\<TR\>\<TD\>$namn\<TD\>$kommentar\</TR\>
	");
}

echo ("
	\</TABLE\>
	\</HTML\>
");

$x = pg_close($conn);	

?>*

insert.php

<?php
$sql = "INSERT INTO tomsta_gb (namn) VALUES ('".$_POST['namn']."''".$_POST['kommentar']."')";
$result = mysql_db_query("tomsta_bg","$sql");
?>

Och som du kan se på http://it.hule.harryda.se/itda01c/tomsta/databas/gb/gb.php
så får jag detta felet: Parse error: parse error in /home/itda01c/tomsta/databas/gb/gb.php on line 16

"Line 16" är där form taggen börjar.

Hoppas du har lust och hjälpa mig lite mer :)

Medlem sedan apr. 2001762 inlägg
#4

Gör en \ (backslash) före varje " inom echo(" .... \" ... form... \"");

hoppas du förstår :)

Medlem sedan dec. 20028 inlägg
#5

..

Förstår inte vad du menar... :)
Ska jag göra en backslash innan varje citattecken i hela koden inom echo?

Medlem sedan apr. 2001762 inlägg
#6
echo (" 
<HTML> 
<TITLE>Gästbok</TITLE> 
<BODY bgcolor=black text=orange> 
<H1><font size=2 face=verdana> Gästbok </H1></font> 

<form method=\"POST\" action=\"insert.php\"> 
<input type=\"text\" name=\"namn\" size=\"15\"> 
<input type=\"text\" name=\"kommentar\" size=\"40\"> 
</form> 

<TABLE> 
<TR><TH>Namn:<TH>Kommentar:</TR> 
");

Så där tänkte jag :)

Medlem sedan dec. 20028 inlägg
#7

m

Tack för hjälpen nu funkar det, nästan iallafall :)

Medlem sedan dec. 20028 inlägg
#8

Får detta medelandet när jag försöker skriva i gästboken:

*Warning: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) in /home/itda01c/tomsta/databas/gb/insert.php on line 5

Warning: MySQL Connection Failed: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) in /home/itda01c/tomsta/databas/gb/insert.php on line 5

Warning: MySQL: A link to the server could not be established in /home/itda01c/tomsta/databas/gb/insert.php on line 5*

Så här ser Insert.php ut:
<?php
$conn = pg_connect ("dbname=itda01c user=tomsta password=XXX");
$sql = "INSERT INTO tomsta_gb (namn) VALUES ('".$_POST['namn']."''".$_POST['kommentar']."')";
$result = mysql_db_query("tomsta_bg","$sql");
?>

Line 5 är:
$result = mysql_db_query("tomsta_bg","$sql");

Ps. glömde nämna innan att det är mysql jag använder inte sql, vet faktist inte skillnaden men kanske värt att nämna :)

Medlem sedan mars 2002112 inlägg
#9
$anslut =@mysql_connect("localhost","user","pass")or die("Kunde inte ansluta");

Ska de inte se ut nåt sånt där?

Medlem sedan maj 2002647 inlägg
#10

Ska det inte vara "tomsta_gb"?

Medlem sedan dec. 20028 inlägg
#11

Var har jag inte skrivit tomsta_gb?

Medlem sedan maj 2002647 inlägg
#12

I texten ovan... det var kanske jag som skrev fel men i din kod så står det "tomsta_bg"

Medlem sedan aug. 20002 975 inlägg
#13

HeIISpawn skrev:

glömde nämna innan att det är mysql jag använder inte sql, vet faktist inte skillnaden men kanske värt att nämna :)

På sidan gb.php använder du kod för att koppla upp dig mot en Postgre-databas och det verkar ju funka.

Sedan på sidan insert.php gör du en databasanslutning mot Postgre, och försöker sedan spara till den som om den var mysql.

Antingen så är det Postgre (Vilket verkar troligast, annars så fungerar postgre-funktioner mot Mysql) och då ska du använda Postgrefunktioner mot databasen, eller så är det mysql och då ska du använda mysql-funktioner.

Sedan så ser SQL-frågan lite tokig ut. Prova det här i insert.php:

$conn = pg_connect ("dbname=itda01c user=tomsta password=XXX"); 
$sql = "INSERT INTO tomsta_gb (namn,kommentar) VALUES ('".$_POST['namn']."','".$_POST['kommentar']."')";
pq_exec($sql);

Är väldigt nyfiken på om du verkligen kör Mysql, för annars så fungerar tydligen Postgre-funktionerna mot Mysql.
Skulle du köra mysql så bör du byta ut funktionerna mot motsvarande för Mysql.

Medlem sedan maj 2002647 inlägg
#14

Det var bra att du nämnde... jag tänkte inte ens på det... :D

Medlem sedan dec. 20028 inlägg
#15

...

Tack för hjälpen alla :)

Jag kör Postgre ja, sorry för min dumhet :r

jag har lyckats fixa så att gästboken funkar nu, är mkt stolt, fastän ni typ har gjort den åt mig så har jag lärt mig mycket :e

Titta på den här: Gästboken

Medlem sedan apr. 2001762 inlägg
#16

Du borde göra så senaste kommentaren hamnar högst upp ;)

Medlem sedan dec. 20028 inlägg
#17

Japp, har fixat det :)
http://it.hule.harryda.se/itda01c/tomsta/

255 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
130 ms — hämta forumlista (db)
122 ms — hämta statistik (db)
129 ms — hämta tråd, inlägg och bilagor (db)