Gæstebog i PHP og MySQL

Her kan du få hjælp og stille spørgsmål til PHP!
Besvar
JvdB100
Begynder
Indlæg:18
Tilmeldt:29. mar 2016, 15:51
Gæstebog i PHP og MySQL

Indlæg af JvdB100 » 20. maj 2016, 17:59

Hej NemProgrammering,
Jeg har lavet en gæstebog i PHP, men den virker ikke. Jeg har skrevet af fra en YouTube video (https://www.youtube.com/watch?v=fjb_XnxAoYg) hvor den virker. Kan nogen hjælpe mig?? Koden er:

<!DOCTYPE html>

<html>
<head>
<title>Raglas - G&aelig;stebog</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" type="text/css" href="Styling af links.css">
</head>
<body>

<tr>

<td style="border-style: solid; border-width: medium">
<center>

<a href="http://raglas.dk/Gaestebog.php" style="Linkstyling">Vis tidligere indl&aelig;g</a><br/><a href="http://raglas.dk/Gaestebog.php?gb=true">Skriv et indl&aelig;g</a><hr>

<?php
if(isset($_GET['gb'])) {
echo"
<form action='' method='POST'>
Fornavn:<br>
<input type='text' name='name' autofocus=''><br>
Email:<br>
<input type'email' name='email'></br>
Besked:<br>
<textarea cols='20' rows='5' name='message'></textarea><br>
<input type='submit' name='submitBtn' value='OK'
</form>
";
if(isset($_POST['submitBtn'])){
//variables
$navn = $_POST['navn'];
$email = $_POST['email'];
$besked = $_POST['besked'];
$dato = date("Y-m-d");
//insert this to the table
//connect to db
include("db.php");
//sql
$sql = "INSERT INTO indlæg (navn, email, besked, dato) VALUES ('$navn','$email','$besked','$dato')";
$stmt = $db->query($sql);
$$stmt->execute();
echo "Tak for dit indl&aelig;g!";
}
}else{
//include our database connection so we can fetch data from our table 'Indlæg'
include("db.php");
//sql
$sql = "SELECT * FROM Indlæg ORDER By id DESC";
$stmt = $db->query($sql);
$stmt->execute;
$stmt->setFetchMode(PDO::FETCH_ASSOC);
if ($stmt->rowCount() > 0){
while($row = $stmt->fetch()){
echo "
<b>Indl&aelig;: </b>".$row['id']."<br>
<b>Navn: </b>".$row['name']."<br>
<b>E-mail: </b>".$row['email']."<br>
<b>Besked:</b><br>
<p>
".$row['besked']."
</p>
".$row['dato']."
<hr>
";

}

}

}
?>

</center>

</td>

</tr>

</body>
</html>

Hvis det skulle være til nogen hjælp er linket til gæstebogen http://raglas.dk/Gaestebog.php.
På forhånd tak!
Hilsen Joep

Brugeravatar
scootergrisen
Moderator
Moderator
Indlæg:709
Tilmeldt:21. jun 2012, 23:40
Kontakt:

Re: Gæstebog i PHP og MySQL

Indlæg af scootergrisen » 22. maj 2016, 14:23

action attributten er tom i form elementet.
Du kan finde fejl i HTML koden med https://validator.w3.org/
Du kan godt skrive æøå direkte i filen.

JvdB100
Begynder
Indlæg:18
Tilmeldt:29. mar 2016, 15:51

Re: Gæstebog i PHP og MySQL

Indlæg af JvdB100 » 4. jun 2016, 18:19

Mange tak for hjælpen,
Jeg har fået den til at virke (raglas.dk/Gaestebog.php)!!! Nu kommer der bare to indlæg ind i stedet for et, men så kan jeg jo bare slette det ene!
Mvh Joep

Brugeravatar
scootergrisen
Moderator
Moderator
Indlæg:709
Tilmeldt:21. jun 2012, 23:40
Kontakt:

Re: Gæstebog i PHP og MySQL

Indlæg af scootergrisen » 6. jun 2016, 12:37

Vis din kode så kan vi finde fejlen.

Hvis du ikke har nogen beskyttelse på din formular så vil du på et tidspunkt få en masse spam i din gæstebog når botter finder den.

JvdB100
Begynder
Indlæg:18
Tilmeldt:29. mar 2016, 15:51

Re: Gæstebog i PHP og MySQL

Indlæg af JvdB100 » 6. jun 2016, 16:32

Hej scootergrisen,
Her er min kode:
<!DOCTYPE html>
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
-->
<HTML lang="da">
<head>
<title> Raglas - G&aelig;stebog </title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<META name="keywords" content="Glaskunst, til salg, glas til salg, glas, glas kunst til salg" />
<META name="description" content="Glaskunst sælges" />
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico"/>
<link rel="stylesheet" type="text/css" href="Styling af links.css">
<link rel="stylesheet" type="text/css" href="Styling af tekst.css">
<link rel="stylesheet" href="Styling af links.css" type="text/css"/>
<link rel="stylesheet" href="Background image.css" type="text/css"/>

</head>
<body>
<table style="border-style: solid; border-width: medium; margin-left: auto; margin-right: auto; margin-bottom: auto; margin-top: auto; background-image: url(oranje.jpg);">

<tr style="margin-left: auto; margin-right: auto">

<td style="margin-left: auto; margin-right: auto"><h1><center> Raglas glas </center></h1><hr/></td>

</tr>

<tr>

<td style="border-style: solid; border-width: medium"><h2> <a href="index.html"> Forside </a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="Til salg.html"> Til salg </a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;G&aelig;stebog&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="Tak til.html"> Tak til </a> </h2><td/><br/>

</tr>

<tr>

<td style="border-style: solid; border-width: medium">
<center>

<a href="Gaestebog.php" style="Linkstyling">Vis tidligere indl&aelig;g</a><br/><a href="Gaestebog.php?gb=true">Skriv et indl&aelig;g</a><hr>

<?php

error_reporting(0);
if(isset($_GET['gb'])) {
echo"
<form action='' method='POST'>
Navn:<br>
<input type='text' name='name' autofocus=''><br>
Email (vises ikke):<br>
<input type'email' name='email'></br>
Besked:<br>
<textarea cols='40' rows='10' name='message'></textarea><br>
<input type='submit' name='submitBtn' value='OK'>
</form>
";
if(isset($_POST['submitBtn'])){
//variables
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$date = date("Y-m-d");
//insert this to the table
//connect to db
include("db.php");
//sql
$sql = "INSERT INTO entries (name, email, message, date) VALUES ('$name','$email','$message','$date')";
$stmt = $db->query($sql);
$stmt->execute();
echo "Tak for dit indl&aelig;g!";
}
}else{

include("db.php");
//sql
$sql = "SELECT * FROM entries ORDER By id DESC";
$stmt = $db->query($sql);
$stmt->execute;
$stmt->setFetchMode(PDO::FETCH_ASSOC);
if ($stmt->rowCount() > 0){
while($row = $stmt->fetch()){
echo "
<b>Navn: </b>".$row['name']."<br>
<b>Besked:</b><br>
<p>
".$row['message']."
</p>
".$row['date']."
<hr>
";

}

}

}
?>

</center>

</td>

</tr>

</table>

</body>
</HTML>

Jeg vil meget gerne have beskyttelse på den. Hvordan får jeg det?
Hilsen Joep

Brugeravatar
scootergrisen
Moderator
Moderator
Indlæg:709
Tilmeldt:21. jun 2012, 23:40
Kontakt:

Re: Gæstebog i PHP og MySQL

Indlæg af scootergrisen » 6. jun 2016, 17:30

Prøv at ret de fejl jeg har skrevet tidligere.
Også når du skriver kode herinde så sæt det i BBkoder.
Du kan redigere dine tidligere indlæg og gøre det... måske... hvis ikke de er låst mod redigering.

Prøv at kig i dine database for eksempel med phpMyAdmin også se om det også står dobbelt der.
Ellers må det være når du hente/viser databasens indhold at du gør det dobbelt hvis kun det står en gang i databasen.

Jeg bruger selv MySQLI objekt orienterede syntax.
Du kan prøve og skrive din kode om hvis du vil. Jeg har ikke testet koden men noget i denne stil.

Kode: Vælg alt

<?php

$server     = 'localhost';
$brugernavn = '';
$kodeord    = '';
$database   = 'mindatabase';

$indhold    = '';

$mysqli = new mysqli($server, $brugernavn, $kodeord, $database);

if ($mysqli->connect_errno > 0) {

    echo 'Kunne ikke forbinde MySQL serveren : ' . $mysqli->connect_errno . ' : ' . $mysqli->connect_error;

} else {

    if ($mysqli = $db->prepare("SELECT * FROM entries ORDER BY id DESC")) {

        $mysqli->execute();

        if ($mysqli->bind_result($name, $message, $date)) {

            while ($mysqli->fetch()) {

            $indhold .= ''
                . '<tr>'
                . '<td>' . $name . '</td>'
                . '<td>' . $message . '</td>'
                . '<td>' . $date . '</td>'
                . '</tr>';

            }

        } else {

            printf("Fejl: %s\n", $db->error);

        }

        $mysqli->close();

    }

}

?>
En beskyttelse kunne bestå i at brugeren bliver spurgt om noget som "Hvad er fem gange tre minus to" også skal brugeren så svarer korrekt på det.

JvdB100
Begynder
Indlæg:18
Tilmeldt:29. mar 2016, 15:51

Re: Gæstebog i PHP og MySQL

Indlæg af JvdB100 » 8. jun 2016, 17:37

Hej scootergrisen,
Hvordan sætter jeg det i BB-koder? Og er der en forskel på MySQLI og MySQL? I mine database står det også dobbelt.
Mvh Joep

Brugeravatar
scootergrisen
Moderator
Moderator
Indlæg:709
Tilmeldt:21. jun 2012, 23:40
Kontakt:

Re: Gæstebog i PHP og MySQL

Indlæg af scootergrisen » 8. jun 2016, 18:42

Du kan redigere dit indlæg også trykke på den knap hvor der står "Code" på over det felt du skriver i.
MySQLi er vist en udvidelse af MySQL.

john21wall
Begynder
Indlæg:1
Tilmeldt:9. jun 2016, 11:17
Kontakt:

Re: Gæstebog i PHP og MySQL

Indlæg af john21wall » 9. jun 2016, 15:24

Laver det om fik koden til at virke men kunne kun skrive træ indlæg i den, så nu søger jeg
en ny gæstebog.. nogen der kan lavce det til mig.... giver 100 point og mere til hvis det
er nødvendigt!!!!!

Besvar