Hjälp med PHP & HTML kodning sökes!

Permalänk
Medlem

Hjälp med PHP & HTML kodning sökes!

Hej!

Håller på att göra en html-hemsida, men har precis gjort en gästbok med php skript och med en mysql databas och undrar hur jag lägger in det i i min /guestbook.html sida, vet inte om php scriptet för gästboken riktigt fungrerar... första raderna fungerar men sen blir allting bara text på sidan.
Om det är någon som kan hjälpa, GÄRNA genom vent/skype/teamspeak så kontakta gärna mig via msn(thorse_21@hotmail.com) lr skype(thorsee)
Ganska brådskande!

tack på förhand
Thorse

Permalänk
Medlem

Prova att döpa om filen till guestbook.php

Permalänk
Medlem

har testat med det också, samma resultat...
gjort en ny sida från min template och de första raderna ser ut så här just nu:
<html>
<?php
echo "<h1>Guestbook</h1><hr></hr>";

och slutar med:
?>
</html>

Texten blir inte inte h1.

Om du har tid kan jag skicka skriptet?

Permalänk
Medlem

<html>
<?php
echo "<h1>Guestbook</h1><hr></hr>";

Är inte ens valid / riktig html kod.

adress till sidan ?

Visa signatur

* Lär dig använda SÖK funktionen först!
* Det heter verkar INTE värkar och rosa INTE råsa FFS.

Permalänk
Medlem

Nehe :/
precis börjat med det här så kan knappt något.

http://www.15productions.se/Guestbook.html

Permalänk
Medlem

Phpskriptet ser ut så här:
<?php

// PHP Guestbook using mySQL database

echo "<h1>Guestbook</h1><hr></hr>";

//connect to the database
$connect = mysql_connect("server","username","password") or die ("Error connecting to db");
//select talbe
mysql_select_db("15productions_se") or die ("Error selecing db");

//use query to get ALL data
$queryget = mysql_query("SELECT * FROM guestbook ORDER BY id ASC") or die("Error with query");

$querygetrownum = mysql_num_rows($queryget);
if ($querygetromnum==0)
echo "No posts have been made yet. Please be the first!";

while ($row = mysql_fetch_assoc($queryget))
{
//get row data and store in vars
$id = $row['id'];
$name = $row['name'];
$email = $row['email'];
$message = $row['message'];
$date = $row['date'];
$time = $row['time'];

if ($id%2)
$bgcolor = "#FFFFFF";
else
$bgcolor = "#elelel"

//process
echo "

<table bgcolor=''>
<tr>
<td>
<b>Posted by $name ($email) on $date at $time</b>
</td>
</tr>
<tr>
<td>
".nl2br(strip_tags($message))."
</td>
</tr>

</table>

";

}

echo "<h1>";

if ($_Post['submit'])
{

$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$date = date("Y-m-d");
$time = date("H:i:s");

if ($name&&$email&&$message)
{

$querypost = mysql_query("INSERT INTO GUESTBOOK VALUES ('','$name','$email','$message','$date','$time')");
echo "Please wait... <meta http-equiv='refresh' content='2'>";

}
else
echo "Please fill our all fields!";

}

echo "
<form action='index.php' method='POST'>
<table width='100%>
<tr>
<td width='18%' valign='top'>
Your name:
</td>
<td>
<input type='text' name='name' maxtlenght='25'>
</td>
</tr>

<tr>
<td valign='top'>
Your email:
</td>
<td>
<input type='text' name='email' maxtlenght='35'>
</td>
</tr>

<tr>
<td valign='top'>
Your message:
</td>
<td>
<textarea cols='20' rows='2' name='message' maxlenght='250'>
<p>
<input type='submit' name='submit' value='Post'>
</td>
</tr>

</table>
</form>

";

?>

Permalänk

det där är ju en blandning mellan php och hmtl i samma "dokument"

Permalänk
Medlem

ok?
fattar verkligen ingenting just nu, vad ska jag göra för att det ska fungera?

Permalänk
Medlem

du kan börja med att döpa om guestbook.html till guestbook.php annars kommer det inte att fungera alls. sen är det lite stavfel här och där på vissa taggar.

där det står $connect = mysql_connect("server","username","password") måste du fylla i dina användaruppgifter till din mysql databas

Permalänk
Medlem

Alltså, kör du ens detta på en server med php och mysql installerat eller försöker du köra det ifrån hårddisken?

Mvh

Visa signatur

AMD Ryzen R9 3900X | Gigabyte Aorus Ultra X570 | Corsair 64GB | RTX 3080 Ti

Permalänk
Medlem

Har verkligen servern PHP installerat ?
Som sagt, mysql_connect("server","username","password") <-- fyll i dina anv uppgifter, ex mysql_connect("localhost","thorse","heybaberiba")
guestbook.html ska heta guestbook.php

" det där är ju en blandning mellan php och hmtl i samma "dokument" " Ja, så ska det va el kan vara bara filändelsen är .php

Visa signatur

* Lär dig använda SÖK funktionen först!
* Det heter verkar INTE värkar och rosa INTE råsa FFS.

Permalänk
Medlem

ok!
Jodå mysql_connect är fixat, tog bara bort det från koden för att inte alla skulle ha acces:P Men iaf, när jag bara läggar upp php filen så funkar iaf början, den kan logga in och välja databas, men fastnar på queryget:
$queryget = mysql_query("SELECT * FROM guestbook ORDER BY id ASC") or die("Error with query");
nån som vet varför det inte funkar?
Jodå, servern ska ha php installerat. På databasen har jag gjort en table med de olika sakerna som ska store'as, inget mer jag behöver göra där va?

Permalänk
Medlem

Okej, kom på felet, va bara att jag skrivit Guestbook med litet g, men nu stannar den lite längre fram ist, får t.ex. inte fram där man kan skriva in sakerna.
Någon som ser några direkta fel i den resterande delen av koden?

while ($row = mysql_fetch_assoc($queryget))
{
//get row data and store in vars
$id = $row('id');
$name = $row('name');
$email = $row('email');
$message = $row('message');
$date = $row('date');
$time = $row('time');

if ($id%2)
$bgcolor = "#FFFFFF";
else
$bgcolor = "#elelel";

//process
echo "

<table bgcolor=''>
<tr>
<td>
<b>Posted by $name ($email) on $date at $time</b>
</td>
</tr>
<tr>
<td>
".nl2br(strip_tags($message))."
</td>
</tr>

</table>

";

}

echo "<h1>";

if ($_Post['submit'])
{

$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$date = date("Y-m-d");
$time = date("H:i:s");

if ($name&&$email&&$message)
{

$querypost = mysql_query("INSERT INTO GUESTBOOK VALUES ('','$name','$email','$message','$date','$time')");
echo "Please wait... <meta http-equiv='refresh' content='2'>";

}
else
echo "Please fill our all fields!";

}

echo "
<form action='index.php' method='POST'>
<table width='100%>
<tr>
<td width='18%' valign='top'>
Your name:
</td>
<td>
<input type='text' name='name' maxtlenght='25'>
</td>
</tr>

<tr>
<td valign='top'>
Your email:
</td>
<td>
<input type='text' name='email' maxtlenght='35'>
</td>
</tr>

<tr>
<td valign='top'>
Your message:
</td>
<td>
<textarea cols='20' rows='2' name='message' maxlenght='250'>
<p>
<input type='submit' name='submit' value='Post'>
</td>
</tr>

</table>
</form>

";

Permalänk
Medlem

Lägg till lite utskrifter i koden så att du ser vart det skiter sig..

Permalänk
Medlem

Har gjort det och fixat allt som jag kan nu. http://www.15productions.se/guestbooken.php
Men:
if ($id%2)
$bgcolor = "#FFFFFF";
else
$bgcolor = "#elelel";
funkar inte, meningen att vartannat inlägg ska få olika färger.
sen förstår jag inte varför inte:
<p>
<input type='submit' name='submit' value='Post'>
</td>
</tr>

</table>
</form>

";
funkar... varför blir det bara text?

Permalänk
Medlem

För att du inte använder dig av $bgcolor...
Kolla i koden. Ändra rad <table bgcolor=''> till <table bgcolor=\"$bgcolor\">

edit: sen ser jag att det står $bgcolor = '#elelel'; vilket troligtvis ska vara $bgcolor = '#e1e1e1';

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem

Sen kan jag uppmana dig att läsa på om SQL-injections som denna kod är väldigt sårbar för.

Phpportalen har en bra tråd om detta:
http://www.phpportalen.net/viewtopic.php?t=72202