Kan rode noget sammen lige nu og her
indsendsvar.php
<?php
//Konfiguration af database
$mysqlbrugernavn = "HSP";
$mysqlpassword = "HSP";
$mysqldatabase = "DatabaseNavn";
//Vidersendelsesadresse - Hvor skal brugeren hen bagefter?
$adresse = "http://www.hsp.dk";
//I langt de fleste tilfælde localhost, men hvis andet angivet af din host, skriv det her.
$mysqlhost = "localhost";
///////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////// Ændre ikke under denne linje ///////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////
if(isset($_POST['navn']) && isset($_POST['svar'])) {
//Forbinder til databasen
mysql_connect($mysqlhost, $mysqlbrugernavn, $mysqlpassword);
mysql_select_db($mysqldatabase);
//Bemærk brugen af mysql_real_escape_string så du ikke får nogle nasty MySQL Injections i din database fra nogle frække elever ;)
$navn = mysql_real_escape_string($_POST['navn']);
$besvarelse = mysql_real_escape_string($_POST['svar']);
//Indsætter besvarelsen i databasen
mysql_query("INSERT INTO Besvarelser (Navn, Svar, IP) VALUES ('" . $navn . "', '" . $besvarelse . "', '" . $_SERVER['REMOTE_ADDR'] . "')");
//Altid husk at lukke sin database pænt efter brug
mysql_close();
}
//Afslut altid ved at vidersende brugeren
header("location: " . $adresse);
?>
tjeksvar.php (dit "adminpanel")
<?php
//Loginoplysninger til "administration"
$brugernavn = "HSP";
$password = "HSP";
//Konfiguration af database
$mysqlbrugernavn = "HSP";
$mysqlpassword = "HSP";
$mysqldatabase = "DatabaseNavn";
//I langt de fleste tilfælde localhost, men hvis andet angivet af din host, skriv det her.
$mysqlhost = "localhost";
///////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////// Ændre ikke under denne linje ///////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////
//Begynder sessionen. Skal bruges for at kunne have sessions variabler senere.
session_start();
//Tjekker om brugeren er logget ind
if($_SESSION['login'] == sha1($brugernavn)) {
//Hvis brugeren ønsker at logge ud
if($_GET['logout'] == "true") {
$_SESSION['login'] = "";
session_destroy();
header("location:tjeksvar.php");
}
//Forbinder til databasen
mysql_connect($mysqlhost, $mysqlbrugernavn, $mysqlpassword);
mysql_select_db($mysqldatabase);
//Hvis brugeren ønsker at tømme databasen.
if($_GET['truncate'] == sha1(date("H-i-d-m-Y") . $brugernavn)) {
mysql_query("TRUNCATE Besvarelser");
header("location:tjeksvar.php");
}
echo "<html><head><title>Log venligst ind</title></head><body>";
echo "Besvarelser:<br />";
echo "<table border=\"1\">";
echo "<tr><td><b>Navn og Klasse</b></td><td><b>Svar</b></td><td><b>IP Adresse</b></td></tr>";
//Her konstrueres SQL kommandoen. Hvis man vælger at filtrere ud fra et specifikt svar vil den kun retunere indhold for det svar
if(isset($_GET['svar']) && $_GET['svar'] != "") {
$sql = "SELECT * FROM Besvarelser WHERE Svar = '" . mysql_real_escape_string($_GET['svar']) . "'";
} else {
$sql = "SELECT * FROM Besvarelser";
}
$result = mysql_query($sql);
//Hernede spyttes svarene ud til klienten
while($cRow = mysql_fetch_array($result)) {
echo "<tr><td>" . $cRow['Navn'] . "</td><td>" . $cRow['Svar'] . "</td><td>" . $cRow['IP'] . "</td></tr>";
}
echo "</table>";
echo "<br /><br />";
echo "<form action=\"tjeksvar.php\" method=\"get\">";
echo "<b>Vis kun med svar (blank for at vise alle):</b> <br /><input type=\"text\" name=\"svar\" /><br />";
echo "<input type=\"submit\" value=\"Filtrer!\" />";
echo "</form>";
echo "<br /> <br />";
echo "<a href=\"tjeksvar.php?logout=true\" alt=\"Log ud\">Log ud</a>";
echo "<br /> <br />";
//Grunden til jeg bruger sha1 hashing funktionen med dit brugernavn og dato / tid er for lidt ekstra sikkerhed (hvert "truncate link" er i forvejn kun valid hvis brugeren er logget ind, men nu er der altså også en tidsgrænse på :)
echo "<a href=\"tjeksvar.php?truncate=" . sha1(date("H-i-d-m-Y") . $brugernavn) . "\" alt=\"Slet alle besvarelser\" onclick=\"return confirm('Vil du virkelig slette ALLE besvarelser uden mulighed for gendannelse?');\">Slet alle besvarelser (!)</a>";
echo "</body></html>";
//Altid husk at lukke sin database pænt efter brug
mysql_close();
} elseif(isset($_POST['brugernavn'])) {
//Here logger vi brugeren ind
if($_POST['brugernavn'] == $brugernavn && $_POST['password'] == $password) {
$_SESSION['login'] = sha1($brugernavn);
}
header("location: tjeksvar.php");
} else {
//Viser loginformen
echo "<html><head><title>Log venligst ind</title></head><body>";
echo "<form action=\"tjeksvar.php\" method=\"post\">";
echo "<b>Brugernavn:</b><br /><input type=\"text\" name=\"brugernavn\" /><br />";
echo "<b>Password:</b><br /><input type=\"password\" name=\"password\" /><br />";
echo "<input type=\"submit\" value=\"Log ind\" />";
echo "</form>";
echo "</body></html>";
}
?>
Så er der i øvrigt lige en fejl i din HTML kode. Så jeg tillod at rette den. Fejlen bestod i at navne feltet ikke havde noget "name" så man ville ikke kunne læse den fra PHP
<div style="border:1px solid rgb(117,117,117);margin:0px;padding:0px;width:196px;height:196px"><div style="font-family:arial;font-size:13px;"><div style="padding:8px;font-weight:bold;background-color:rgb(256,186,46)">
<!-- Skriv månedens spørgsmål her: --!>
Hvilket stjernetegn er man, hvis man i januar godt kunne lide asier?
</div><form type="hidden" action="indsendsvar.php" method="post" style="margin-top:8px;padding:8px" enctype="multipart/form-data"><input type=hidden name="recipient" value="konkurrence.hg@gmail.com"><input style="float:left;margin-top:0px;clear:both" type="radio" name="svar" value="1">
<!-- Skriv svarmulighed 1 her: --!>
Stenbuk
<br><input style="float:left;margin-top:0px;clear:both" type="radio" name="svar" value="2">
<!-- Skriv svarmulighed 2 her: --!>
Vædder
<br><input style="float:left;margin-top:0px;clear:both" type="radio" name="svar" value="3">
<!-- Skriv svarmulighed 3 her: --!>
Får
<br><div style="margin-top:15px">Navn og klasse:</div><input style="float:left;width:110px;margin-top:5px" type=text value='' name="navn"><input style="float:right;margin-top:4" type="submit" value="Deltag"></form></div></div>
Og så til sidst... Du skal bare gå ind, vælge din database, og så udføre denne SQL kommando (sikkert et sted hvor der står Query) på den. Den vil oprette tabellen "Besvarelser" og så er det det.
CREATE TABLE `Besvarelser` (
`id` int(11) not null auto_increment,
`Navn` text,
`Svar` text,
`IP` text,
PRIMARY KEY (`id`)
)
Og det var alt. Så skal du bare uploade de to filer, og det er kun indsendsvar.php der behøves ligge i samme mappe som din indsendelsesform. Det er bare endnu en fordel ved at bruge en database, din "tjeksvar.php" kan ligge overalt. Og husk at sætte variablerne i toppen.
Håber det hjalp
Indlæg senest redigeret d. 17.01.2011 17:49 af Bruger #14381