24. august 2006 - 11:29
Der er
9 kommentarer og 1 løsning
Fest tilmelding
Jeg står og skal holde en fest, og istedet for folk tilmelder sig pr tlf ville det være smart med en online tilmelding. Den skal bare være super simpel minus grafik or lir. De tilmeldte skal bare vises nedenunder tilmeldingen. Der skal stå følgende: Navn: Spiser: Overnatter: [Tilmeld fest] Hvordan laver jeg dette simpelt, er blank...
Annonceindlæg fra Novataris
24. august 2006 - 14:16
#1
Hvor ligger dit niveau? mht. HTML, PHP & MySQL?
25. august 2006 - 16:08
#2
Her er en lille ting jeg lavede for lang tid siden, da jeg skulle bruge noget lignende: <?php $udfil = "tilmeldte.txt"; // SKAL VÆRE SKRIVBAR! session_start(); function getComments() { if (!file_exists($udfil)) { touch($udfil); } $cmnts = unserialize( file_get_contents( $udfil ) ); if ( !empty( $cmnts) && count( $cmnts ) > 0 ) { $cnt = ""; foreach ( $cmnts as $cmnt ) { $cnt = "<div class='navn'>» <b>$cmnt[name]</b> (overnatter"; if ( $cmnt['overnatter'] == 0 ) $cnt .= "ikke"; $cnt .= ") skrev $cmnt[date]</div><div class='cmnt'>$cmnt[post]</div>\n" . $cnt; } echo $cnt; } else { echo "<p><b>Der er ingen kommentarer endnu! Vær den første! ;)</b></p>\n"; } $navn = ( empty( $_COOKIE['navn'] ) ? '' : " value='$_COOKIE[navn]'" ); echo "<form action='index.php' method='post'><b>Navn: <input name='navn' type='text' maxlength='20' size='20'$navn><br>\n<b><input name='overnat' type='checkbox' value='1'> Overnatter<br>\n<b>Kommentar:</b><br><textarea name='post' style='width: 400px; height: 75px'></textarea><input type='submit' value='Fyr den af'></form>"; } function head() { ?> <html> <head> <title>Fest</title> <style> body { background-color: white; color: black; font-family: verdana, arial, helvetica, sans-serif; font-size: 12px; text-align: center; } #cont { margin: auto; width: 700px; padding: 10px; border: 1px solid #522; text-align: left; background-color: #fff; } .navn { border: 1px dotted #5a5; margin-top: 5px; background-color: #eef; padding: 5px; } .cmnt { background-color: #eee; margin-bottom: 15px; padding: 5px; border-left: 1px dotted #bbb; border-right: 1px dotted #bbb; border-bottom: 1px dotted #bbb; } textarea, input { border: 1px solid #ccc; } textarea:hover, input:hover { background-color: #ffc; } button { border: 1px solid black; } </style> </head> <body> <div id="cont"> <? } function foot() { ?> </div> </body> </html> <? } if ( empty( $_SESSION['grl'] ) && empty( $_POST['postpass'] ) ) { head(); ?> <form method="post"> Indtast password <input name="postpass" id="postpass" type="password" maxlength="10" style="width: 100px"> <button>Vis</button> </form> <script type="text/javascript"> document.getElementById("postpass").focus(); </script> <? foot(); exit; } if ( empty( $_SESSION['grl'] ) && !empty( $_POST['postpass'] ) && strtolower( $_POST['postpass'] ) == 'grl' ) { $_SESSION['grl'] = 1; header("location: index.php"); exit; } elseif ( empty( $_SESSION['grl'] ) ) { head(); echo "<h1>Du skal indtaste den korrekte kode!</h1><p>Tryk tilbage!</p>"; foot(); exit; } if ( !empty( $_POST['post'] ) ) { if (!file_exists($udfil)) { touch($udfil); } $navn = $_COOKIE['navn'] = $_POST['navn']; $cmnts = unserialize( file_get_contents( $udfil ) ); $cmnts[] = array( 'name' => $_POST['navn'], 'date' => date( "Y/m/d H:i" ), 'post' => $_POST['post'], 'overnatter' => ( !empty( $_POST['overnat'] ) ? 1 : 0 ) ); if ( $fp = fopen( $udfil, "w" ) ) { if ( flock( $fp, LOCK_EX ) ) { fwrite( $fp, serialize( $cmnts ) ); flock( $fp, LOCK_UN ); fclose( $fp ); header('location: index.php'); exit; } else { head(); echo "<h1>Fejl!</h1><p>Det lykkedes ikke at smide beskeden, tryk reload og sig ja til at sende informationen igen!</p>"; foot(); exit; } } else { head(); echo "<h1>Fejl!</h1><p>Det lykkedes ikke at smide beskeden, tryk reload og sig ja til at sende informationen igen!</p>"; foot(); exit; } } head(); ?> <h1>Festen!</h1> <p>Her kan du skrive lidt ;-)</p> <? getComments(); foot(); ?>
25. august 2006 - 16:09
#3
Skal lige siges at man skal skrive en kode "grl" uden gåseøjne for at komme til at se og kommentere siden - Det kan fjernes hvis det ikke er nødvendigt for dig ;)
25. august 2006 - 16:34
#4
Perfekt det var lige hvad jeg skulle bruge... Men får: Warning: touch(): Unable to create file because No such file or directory in /home/sites/site5/web/fest/index.php on line 11 Udfil tilmeldte.txt er tilstede og chmod til 777
25. august 2006 - 21:35
#5
Ah, function getComments() { Skal vist være: function getComments() { global $udfil; Eller også skal $udfil laves som en define (jeg havde bare et filnavn alle steder)...
25. august 2006 - 21:35
#6
Du får lige et svar også ;)
25. august 2006 - 22:29
#7
Hehe nu virker det, men filen ser bare sådan ud: a:4:{i:0;a:4:{s:4:"name";s:5:"kjklk";s:4:"date";s:16:"2006/08/25 16:31";s:4:"post";s:3:"jkl";s:10:"overnatter";i:1;}i:1;a:4 Så jeg kan jo ikke rigtig se hvem der har tilmeldt sig, på siden vises kun den sidste kommentar
26. august 2006 - 00:05
#8
Vises kun den sidste?! Det er en eller anden fejl... Kigger lige på det!
26. august 2006 - 00:19
#9
Ok, omstrukturerede en smule, her er resultatet: <?php $udfil = "tilmeldte.txt"; // SKAL VÆRE SKRIVBAR! session_start(); function getComments() { global $udfil; if (!file_exists($udfil)) { touch($udfil); } $cmnts = unserialize( file_get_contents( $udfil ) ); if ( !empty( $cmnts ) && count( $cmnts ) > 0 ) { $cnt = ""; foreach ( $cmnts as $cmnt ) { $cnt = "<div class='navn'>» <b>$cmnt[name]</b> (overnatter" . ( $cmnt['overnatter'] == 0 ? " <i>ikke</i>" : '' ) . ") skrev $cmnt[date]</div><div class='cmnt'>" . "$cmnt[post]</div>\n" . $cnt; } echo $cnt; } else { echo "<p><b>Der er ingen kommentarer endnu! Vær den første! ;)</b></p>\n"; } $navn = ( empty( $_COOKIE['navn'] ) ? '' : " value='$_COOKIE[navn]'" ); echo "<form action='$_SERVER[PHP_SELF]' method='post'><b>Navn: <input name='navn' type='text' maxlength='20' size='20'$navn><br>\n<b><input name='overnat' type='checkbox' value='1'> Overnatter<br>\n<b>Kommentar:</b><br><textarea name='post' style='width: 400px; height: 75px'></textarea><input type='submit' value='Fyr den af'></form>"; } function head() { ?> <html> <head> <title>Fest</title> <style> body { background-color: white; color: black; font-family: verdana, arial, helvetica, sans-serif; font-size: 12px; text-align: center; } #cont { margin: auto; width: 700px; padding: 10px; border: 1px solid #522; text-align: left; background-color: #fff; } .navn { border: 1px dotted #5a5; margin-top: 5px; background-color: #eef; padding: 5px; } .cmnt { background-color: #eee; margin-bottom: 15px; padding: 5px; border-left: 1px dotted #bbb; border-right: 1px dotted #bbb; border-bottom: 1px dotted #bbb; } textarea, input { border: 1px solid #ccc; } textarea:hover, input:hover { background-color: #ffc; } button { border: 1px solid black; } </style> </head> <body> <div id="cont"> <? } function foot() { ?> </div> </body> </html> <? } if ( empty( $_SESSION['grl'] ) && empty( $_POST['postpass'] ) ) { head(); ?> <form method="post"> Indtast password <input name="postpass" id="postpass" type="password" maxlength="10" style="width: 100px"> <button>Vis</button> </form> <script type="text/javascript"> document.getElementById("postpass").focus(); </script> <? foot(); exit; } if ( empty( $_SESSION['grl'] ) && !empty( $_POST['postpass'] ) && strtolower( $_POST['postpass'] ) == 'grl' ) { $_SESSION['grl'] = 1; header("location: $_SERVER[PHP_SELF]"); exit; } elseif ( empty( $_SESSION['grl'] ) ) { head(); echo "<h1>Du skal indtaste den korrekte kode!</h1><p>Tryk tilbage!</p>"; foot(); exit; } if ( !empty( $_POST['post'] ) ) { if (!file_exists($udfil)) { touch($udfil); } $navn = $_COOKIE['navn'] = $_POST['navn']; $cmnts = unserialize( file_get_contents( $udfil ) ); $cmnts[] = array( 'name' => $_POST['navn'], 'date' => date( "Y/m/d H:i" ), 'post' => $_POST['post'], 'overnatter' => ( !empty( $_POST['overnat'] ) ? 1 : 0 ) ); if ( $fp = fopen( $udfil, "w" ) ) { if ( flock( $fp, LOCK_EX ) ) { fwrite( $fp, serialize( $cmnts ) ); flock( $fp, LOCK_UN ); fclose( $fp ); header("location: $_SERVER[PHP_SELF]"); exit; } else { head(); echo "<h1>Fejl!</h1><p>Det lykkedes ikke at smide beskeden, tryk reload og sig ja til at sende informationen igen!</p>"; foot(); exit; } } else { head(); echo "<h1>Fejl!</h1><p>Det lykkedes ikke at smide beskeden, tryk reload og sig ja til at sende informationen igen!</p>"; foot(); exit; } } head(); ?> <h1>Festen!</h1> <p>Her kan du skrive lidt ;-)</p> <? getComments(); foot(); ?>
27. august 2006 - 14:09
#10
Perfekt. Tænkte nok der var en der havde haft samme ide engang...
Vi tilbyder markedets bedste kurser inden for webudvikling