11. oktober 2005 - 20:35
Der er
35 kommentarer og 1 løsning
Opslagstavle i php
Hej.
Jeg søger en Opslagstavle eller hvad man skal kalde det?
Sådan en som de har hos
http://www.gruppeeksamen.dk/. Hvor man skriver sit navn, også går det ned og ligger sig i en boks.
En der kan lave eller finde en system der ligner det meget?
Annonceindlæg fra Lector
12. oktober 2005 - 08:03
#1
Jeg kan godt lave det! :o) Men vil du ikke hellere selv lave det?
12. oktober 2005 - 16:17
#2
Det er egentlig meget simpelt.. Du smider nogle oplysninger ind i en database, ved hjælp af en form.. og lister den paa siden med et udtræk fra databasen..
12. oktober 2005 - 17:04
#3
Ja, du kan evt tage udgangspunkt i en tagwall.
12. oktober 2005 - 21:00
#4
Jo ville jeg gerne hvis jeg kunne . :) Men det kan jeg ikke. Gider du hjælpe?
12. oktober 2005 - 21:03
#5
Kan du selv kode php og html? Jeg vil helst ikke give færdige koder! (nogle gange smutter det dog) :o)
12. oktober 2005 - 21:14
#6
Kan godt html, og er begyndt og læse lidt på php. Men kan ikke så godt php. :s
12. oktober 2005 - 21:28
#7
Ok! Jeg vil gerne tage det step by step! (det bliver dog når jeg har tid) :o) Men du skal starte med at lave den form du gerne vil have! F.eks. input = navn input = email input = alder textarea = besked Eller hvad du kunne finde på, når den er på plads, så skal vi have designet en database. Og tilsidst noget php kode som smider indholdet fra formen i databasen og endvidere viser den til folket.
12. oktober 2005 - 23:00
#8
<input type="text" name="navn" size="20"> <br> <br> <input type="text" name="email" size="20"><br> <br> <input type="text" name="alder" size="20"><br> <br> <input type="text" name="alder" size="20"><br> <br> <textarea name="besked<BR>" rows="1" cols="20"></textarea> <br> <input type="submit" value="Send"> Sådan f.eks ?
13. oktober 2005 - 08:09
#9
Jep! Så skal du lige huske <form action="action.php" method="post"> i toppen og </form> under! Så sker der det, at når du trykker SEND, smider den alle data til siden: action.php
13. oktober 2005 - 18:43
#10
<form action="action.php" method="post"> <body> <input type="text" name="navn" size="20"> <br> <br> <input type="text" name="email" size="20"><br> <br> <input type="text" name="alder" size="20"><br> <br> <input type="text" name="alder" size="20"><br> <br> <textarea name="besked<BR>" rows="1" cols="20"></textarea> <br> <input type="submit" value="Send"> </body> Sådan . :)
13. oktober 2005 - 21:05
#11
Smukt! :o) Så skal vi lave en tabel (går ud fra du har adgang til en mysql-database) tabelnavn: opslagstavle id mediumint (autoincrement) navn varchar(50) email varchar(255) alder tinyint -unsigned (går ikke ud fra nogle bliver mere end 255) besked text PS: Du har 2 alder i din form...
13. oktober 2005 - 22:06
#12
SQL-forespørgsel : [Ret] [Fremstil PHP-kode] CREATE TABLE `opslagstavle` ( `id` MEDIUMINT NOT NULL , `navn` VARCHAR( 50 ) NOT NULL , `email` VARCHAR( 255 ) NOT NULL , `alder` TINYINT UNSIGNED NOT NULL , `besked` TEXT NOT NULL ); Sådan?
14. oktober 2005 - 06:22
#13
Husk autoincrement på dit ID, du finder det under funktion/function. Een ellers ser det korrekt ud! :o)
14. oktober 2005 - 06:22
#14
Een = Men
14. oktober 2005 - 16:30
#15
SQL-forespørgsel : [Ret] [Fremstil PHP-kode] CREATE TABLE `opslagstavle` ( `id` MEDIUMINT NOT NULL AUTO_INCREMENT , `navn` VARCHAR( 50 ) NOT NULL , `email` VARCHAR( 225 ) NOT NULL , `alder` TINYINT UNSIGNED NOT NULL , `besked` TEXT NOT NULL , PRIMARY KEY ( `id` ) ); Sådan? :)
14. oktober 2005 - 16:53
#16
Så skal vi have gang i php kode! :o) Du kan starte med at oprette filen: action.php Og smide dette indhold i den: <?php echo "<pre>\n"; print_r($_POST); echo "</pre>\n"; ?> Og prøv så at udfyld din form og tryk SEND
14. oktober 2005 - 17:15
#17
Så kommer dette: Array ( [navn] => Rasmus [email] => rasmus@randersen.dk [alder] => 0 [besked] => Test )
14. oktober 2005 - 22:25
#18
Lækkert! Så retter du aktion.php til: <?php include("connect.php"); $navn = mysql_escape_string($_POST["navn"]); $email = mysql_escape_string($_POST["email"]); $alder = mysql_escape_string($_POST["alder"]); $besked = mysql_escape_string($_POST["besked"]); mysql_query("INSERT INTO opslagstavle(id,navn,email,alder,besked) VALUES ('','".$navn."','".$email."',".$alder.",'".$besked."')") or die("Invalid query: " . mysql_error()); header("location: " . $_SERVER["HTTP_REFERER"]); ?>
14. oktober 2005 - 22:38
#19
PS: Den sidste kode her ovenover, er dog ikke helt fuldendt! Vi vil nemlig godkende en email som f.eks. email.dk Hvilket jo ikke er en korrekt email. Så det må vi kigge på senere... :o)
14. oktober 2005 - 23:15
#20
Invalid query: Access denied for user: 'randersen.dk@localhost' (Using password: NO) Okay, det lyder lækkert.
14. oktober 2005 - 23:32
#21
Fandt selv ud af det. :) Så skal jeg bare vide hvordan man "Printer" det ud fra databasen? :)
15. oktober 2005 - 09:50
#22
Du kan lave det på siden med din form på. Så alt evt står under eller over. Du kan ihf bruge denne kode: <?php include("connect.php"); $query = mysql_query("SELECT * FROM opslagstavle ORDER BY id"); if(mysql_num_rows($query)>0) { while($row = mysql_fetch_assoc($query)) { echo $row["navn"] . " - " . $row["email"] . " - " . $row["alder"] . "<hr>"; echo $row["besked"] . "<hr>"; } } else { echo "Ingen opslag..."; } ?> Du skal no overveje at gemme emailen, så den ikke er offentlig tilgængelig! (så bliver dine brugere bare misbrugt til spam) Vi kan evt også overveje at tilføje et datetime felt i din tabel, så kan du se hvornår et opslag er lavet.
15. oktober 2005 - 13:32
#23
Virker fint. Hvordan gemmer jeg så emailen? Kan man ikke også godt smække en ip på, så man kan ban' en hvis det er? . :)
15. oktober 2005 - 13:45
#24
Ip og tid = jep! :o) Så retter du scriptet: <?php include("connect.php"); $navn = mysql_escape_string($_POST["navn"]); $email = mysql_escape_string($_POST["email"]); $alder = mysql_escape_string($_POST["alder"]); $besked = mysql_escape_string($_POST["besked"]); mysql_query("INSERT INTO opslagstavle(id,navn,email,alder,besked) VALUES ('','".$navn."','".$email."',".$alder.",'".$besked."')") or die("Invalid query: " . mysql_error()); header("location: " . $_SERVER["HTTP_REFERER"]); ?> til: <?php include("connect.php"); $navn = mysql_escape_string($_POST["navn"]); $email = mysql_escape_string($_POST["email"]); $alder = mysql_escape_string($_POST["alder"]); $besked = mysql_escape_string($_POST["besked"]); mysql_query("INSERT INTO opslagstavle(id,navn,email,alder,besked, datotid, ip) VALUES ('','".$navn."','".$email."',".$alder.",'".$besked."',NOW(),inet_aton($_SERVER["REMOTE_ADDR"]))") or die("Invalid query: " . mysql_error()); header("location: " . $_SERVER["HTTP_REFERER"]); ?> Husk at tilføj felterne: datotid - datotime ip - bigint Når du så trækker ip ud, skal du bruge: inet_ntoa(ip) AS nyIp og så bruge: echo $row["nyIp"];
15. oktober 2005 - 14:16
#25
Når jeg insætter den nye scriptet går den bare i stå.
Du kan selv se på
http://www.randersen.dk/privat/test/opslag.htm action.php ser sådan ud:
<?php
include("connect.php");
$navn = mysql_escape_string($_POST["navn"]);
$email = mysql_escape_string($_POST["email"]);
$alder = mysql_escape_string($_POST["alder"]);
$besked = mysql_escape_string($_POST["besked"]);
mysql_query("INSERT INTO opslagstavle(id,navn,email,alder,besked, datotid, ip) VALUES ('','".$navn."','".$email."',".$alder.",'".$besked."',NOW(),inet_aton($_SERVER["REMOTE_ADDR"]))") or die("Invalid query: " . mysql_error());
header("location: " . $_SERVER["HTTP_REFERER"]);
?>
16. oktober 2005 - 13:20
#26
Prøv at slet header... Og skriv: echo "Indsættelsen gik godt";
16. oktober 2005 - 16:07
#27
den går stadig kold.
16. oktober 2005 - 16:11
#28
Tilføj lige: echo "<pre>"; print_r($_POST); echo "</pre>"; exit(); under <?php i din action.php fil.
16. oktober 2005 - 16:32
#29
Er sket. men den står bare stadig stille. :S
16. oktober 2005 - 16:36
#31
<?php echo "<pre>"; print_r($_POST); echo "</pre>"; exit(); include("connect.php"); $navn = mysql_escape_string($_POST["navn"]); $email = mysql_escape_string($_POST["email"]); $alder = mysql_escape_string($_POST["alder"]); $besked = mysql_escape_string($_POST["besked"]); mysql_query("INSERT INTO opslagstavle(id,navn,email,alder,besked, datotid, ip) VALUES ('','".$navn."','".$email."',".$alder.",'".$besked."',NOW(),inet_aton($_SERVER["REMOTE_ADDR"]))") or die("Invalid query: " . mysql_error()); echo "Indsættelsen gik godt"; ?>
16. oktober 2005 - 16:40
#33
<html> <head> <meta name="GENERATOR" content="Microsoft FrontPage 5.0"> <meta name="ProgId" content="FrontPage.Editor.Document"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <Dette er sat sammen af Rasmus Andersen.> <title>Bornholm</title> </head> <form action="action.php" method="post"> <body> <input type="text" name="navn" size="20"> <br> <br> <input type="text" name="email" size="20"><br> <br> <input type="text" name="alder" size="20"><br> <br> <textarea name="besked" rows="1" cols="20"></textarea> <br> <input type="submit" value="Send"> </body> </html>
16. oktober 2005 - 16:46
#34
Det forstår jeg godt nok ikke! Prøv lige at fang mig på msn: jakobdo (at) hot-FJERN-mail (dot) com
16. oktober 2005 - 18:06
#35
Et svar!
16. oktober 2005 - 18:21
#36
takker for point!
Vi tilbyder markedets bedste kurser inden for webudvikling