Permalänk
Inaktiv

Vad ska jag lägga till. PHP

Tja!

Jag har fått i uppgift att göra en gästbok i min webbdesgin kurs. Jag har fått ett php dokument
med php funktionerna för att använda en gästbok och för att kunna lägga till användare på sidan. Men det
ända jag vill göra är gästboken.
Koden i php dokumentet är: '

<?php
function connectToDatabase(){
//Kopplar upp till databasen
$conn = mysql_connect("domän", "användare", "lösenord");
//Väljer vilken databas
mysql_select_db("databas", $conn);

}

function addMessage($name, $message){
//Lägger till meddelanden i databasen
$sql2 = "INSERT INTO messages (name, message) VALUES ('$name', '$message');";
mysql_query($sql2) or die("Kunde inte köra frågan addMessage");

}
function listMessage(){
//Plockar ut alla meddelanden ur databasen
$sql = "SELECT * FROM messages ORDER BY date DESC;";
$result = mysql_query($sql) or die("Kunde inte köra frågan, listMessage");
return $result;
}
function removeMessage($id){
//Plockar ut alla meddelanden ur databasen
$sql = "DELETE FROM messages WHERE id='$id';";
$result = mysql_query($sql) or die("Kunde inte köra frågan, removeMessage");
}

?>
Hur aktiveras tillexempel funktionen connectToDatabase?

Jag vet hur jag skriver in uppgifterna till databasen, och vilka uppgifter som behövs.
Men det är nu jag fastnar, om jag tex har en webbsida på www.domän.se/index.php . Är det i index.php dokumentet
som alla funktioner ska ligga i?
Och hur ska formulärfälten se ut?

(En vild gissning)
<form method="post" action="index.php">
<input type="text" name="name">
<input type="text" name="message">
<input type="submit">
</form>

<div >
här ska meddelanden visas, en function ifrån php?
</div>

Tack till dig som är PHP kunnig och vill förklara lite snabbt och enkelt så jag vet hur jag ska bära mig åt!

Permalänk
Medlem

Detta är hur jag skulle ha gjort.
1) Jag skulle ha lagt alla funktioner i en separat fil som du kan kalla functions.php till exempel. Sedan skulle jag ha inkluderat denna fil på varje sida.

2) När formuläret skickas så skulle jag undvika att skicka formuläret till samma sida (index.php i detta fall) då dubbletter av samma inlägg kan då uppkomma genom att användaren råkar uppdatera sidan igen. Därför skulle jag skicka iväg användaren till en sida som t.ex. heter add_message.php. Där läggs inlägget till i databasen och användaren förs sedan automatiskt tillbaks till index-sidan.

Här under har du en lösning. Kan inte svära på att den fungerar helt och hållet då jag slängde ihop lösningen lite snabbt. Säg till om det inte är något som fungerar så får vi försöka lösa det då

Koden för index-sidan:

<html> <head <?php require_once('functions.php'); ?> </head> <body> <form method="post" action="add_message.php"> <input type="text" name="name"> <input type="text" name="message"> <input type="submit" name="message_submit"> </form> <table> <?php connectToDatabase(); $data = listMessage(); while($row = mysql_fetch_array($data)) { ?><tr><td><?php echo $row[0] ?></td><td><?php echo $row[1] ?></td></tr><?php } mysql_close(); ?> </table> </body> </html>

Koden för add-message.php

<?php require_once('functions.php'); if(isset($_POST['message_submit']) && isset($_POST['name']) && isset($_POST['message'])) { connectToDatabase(); addMessage($_POST['name'],$_POST['message']); mysql_close(); $home_url = 'http://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . '/index.php'; header('Location: ' . $home_url); exit; } else { $home_url = 'http://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . '/index.php'; header('Location: ' . $home_url); exit; } ?>

Permalänk
Inaktiv
Skrivet av knuspaflex:

Detta är hur jag skulle ha gjort.
1) Jag skulle ha lagt alla funktioner i en separat fil som du kan kalla functions.php till exempel. Sedan skulle jag ha inkluderat denna fil på varje sida.

2) När formuläret skickas så skulle jag undvika att skicka formuläret till samma sida (index.php i detta fall) då dubbletter av samma inlägg kan då uppkomma genom att användaren råkar uppdatera sidan igen. Därför skulle jag skicka iväg användaren till en sida som t.ex. heter add_message.php. Där läggs inlägget till i databasen och användaren förs sedan automatiskt tillbaks till index-sidan.

Här under har du en lösning. Kan inte svära på att den fungerar helt och hållet då jag slängde ihop lösningen lite snabbt. Säg till om det inte är något som fungerar så får vi försöka lösa det då

Koden för index-sidan:

<html> <head <?php require_once('functions.php'); ?> </head> <body> <form method="post" action="add_message.php"> <input type="text" name="name"> <input type="text" name="message"> <input type="submit" name="message_submit"> </form> <table> <?php connectToDatabase(); $data = listMessage(); while($row = mysql_fetch_array($data)) { ?><tr><td><?php echo $row[0] ?></td><td><?php echo $row[1] ?></td></tr><?php } mysql_close(); ?> </table> </body> </html>

Koden för add-message.php

<?php require_once('functions.php'); if(isset($_POST['message_submit']) && isset($_POST['name']) && isset($_POST['message'])) { connectToDatabase(); addMessage($_POST['name'],$_POST['message']); mysql_close(); $home_url = 'http://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . '/index.php'; header('Location: ' . $home_url); exit; } else { $home_url = 'http://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . '/index.php'; header('Location: ' . $home_url); exit; } ?>

Ett STORT tack till dig "knuspaflex" Är inte så haj på php, men nu har jag någonting att plocka ihop
och pilla med, och en chans att lyckas
Som sagt, uppskattar svaret!

Permalänk
Medlem
Skrivet av 940606:

Ett STORT tack till dig "knuspaflex" Är inte så haj på php, men nu har jag någonting att plocka ihop
och pilla med, och en chans att lyckas
Som sagt, uppskattar svaret!

Studera hur han gjorde och klipp bara inte in det

Visa signatur

▩ Monitor: ASUS Swift 27" @ 1440p/165Hz ▩ CPU: Ryzen 7700X ▩ Cooling: Corsair H170i ELITE 420mm ▩ GPU: MSI 3080 Ti SUPRIM X ▩ Memory: Corsair 32GB DDR5 Vengeance ▩ Motherboard: ASUS Crosshair X670E Hero ▩ M.2: Samsung 980 Pro ▩ PSU: Corsair HX1200 ▩ Chassi: Corsair 7000X ▩ Geekbench 6: 2903 ▩ Time Spy: 19 340

📷 Mina fotografier
👍 SweClike - Synligare färg på dina likes

Permalänk
Medlem
Skrivet av flashen:

Studera hur han gjorde och klipp bara inte in det

Det är ju långt ifrån vad han borde göra. Detta är ju trotts allt en skolkurs, så visst att han ber om hjälp men vi ska ju inte göra arbetet åt honom. Tyckte det skulle räckt att bara säga hur han skulle göra så han fick klura lite själv. Lite opedagogiskt att bara ge honom färdig kod...