peacee Skrevet 22. februar 2012 Del Skrevet 22. februar 2012 Hei, prøver å få laget en side som jeg kan skrive inn info på men også redigere det som jeg har skrivd tideligere eller slette. noen som kan hjelpe meg å få en knapp på for å redigere tideligere skrevet? Her er et bilde av hva jeg snakker om: Bilde bruker PHP koden: <html> <body> Saying: <form><input name=saying size=40></form> <?php $saying = $_GET[saying]; if ($saying == "RESET") { $fh = @fopen("data.txt","w") or die ("Can't open for reset"); } else { $fh = @fopen("data.txt","a") or die ("Can't open for write"); if ($saying) { fputs ($fh,"$saying\n"); } } fclose ($fh); ?> <hr> <?php function webout($value){ print nl2br(htmlentities("$value")); } $sofar = file ("data.txt"); array_walk($sofar,"webout"); ?> </body> </html> Lenke til kommentar
xatic Skrevet 23. februar 2012 Del Skrevet 23. februar 2012 (endret) hvis du bare skal legge til en knapp (som forsåvidt er HTML og ikke PHP) er det vel bare å legge til, <form><input name=saying size=40><input type="submit" value="edit"></form> Så lager du en ny side, sjekker om noen har trykket på knappen, henter ut informasjonen som er skrevet og legger teksten i ett nytt tekstfelt og lager en "lagre" knapp. Ville anbefalt deg og brukt en database til dette, ville gjort det mye lettere for deg selv :-) Endret 23. februar 2012 av xatic Lenke til kommentar
peacee Skrevet 23. februar 2012 Forfatter Del Skrevet 23. februar 2012 Kan jo egentlig bruke sql database da:P noen ide om hvordan jeg kan få til dette? er ikke helt expert på php og html koder Lenke til kommentar
slacky Skrevet 23. februar 2012 Del Skrevet 23. februar 2012 (endret) Når det kommer til så basic kode som dette så er google mye til hjelp. w3schools viser hvordan du "kommuniserer" med MySQL. Nå ser jeg helst at du redigerer førsteposten din og slenger code-tagg rundt det som er kode. Jeg vil også nevne at det å bruke 4 space for hver blokk er essensielt. Ellers så er det få som gidder ta seg tid til å lese koden. Det er også vanskelig å navigere seg rundt i koden så fort det blir mer en et par linjer. Samme regel står for HTML. I ditt tilfelle så blir f. eks noe slik... <html> <body> <form> Saying: <input type="text" name="saying" size="40"> <input type="submit" value="edit"> </form> <?php $saying = $_GET['saying']; if ($saying == "RESET") { $fh = @fopen("data.txt","w") or die ("Can't open for reset"); } else { $fh = @fopen("data.txt","a") or die ("Can't open for write"); if ($saying) fputs ($fh,"$saying\n"); } fclose ($fh); function webout($value) { print nl2br(htmlentities($value)); } echo "<hr />"; $sofar = file ("data.txt"); array_walk($sofar, "webout"); ?> </body> </html> Endret 23. februar 2012 av warpie Lenke til kommentar
Thomas. Skrevet 24. februar 2012 Del Skrevet 24. februar 2012 (endret) Først må du finne en måte å identisere brukerene på (f.eks lage et brukersystem med bruker-id'er). Laget raskt et komplett fungerende eksempel til deg, basert på IP (anbefales ikke). Her kan du legge til og redigere egne meldinger. MySQL basert. <?php mysql_connect('localhost', 'root', ''); mysql_select_db('ehe'); $fil = 'newEmptyPHP1.php'; define('__GET_ID', filter_input(INPUT_GET, 'e', FILTER_VALIDATE_INT)); $e = mysql_real_escape_string(__GET_ID); function showForm($i = 0, $var = '') { echo ((int)$i != 0) ? 'Oppdater:' : 'Skriv ny:'; echo '<form method="post"> Tekst: <input type="text" name="chat" value="' . (((int)$i != 0) ? $var : '') . '"> <input type="submit" name="submit" value="' . (((int)$i == 0) ? 'Chat' : 'Oppdater') . '"> </form>'; } if(__GET_ID && is_numeric(__GET_ID)) { $sql = mysql_query('SELECT * FROM chat WHERE id = ' . $e . ' AND brukerid = \'' . $_SERVER['REMOTE_ADDR'] . '\''); if(mysql_num_rows($sql) == 1) $ok = true; else $ok = false; if($ok) { while($row = mysql_fetch_array($sql)) showForm(1, $row['text']); } } else { showForm(); } if(isset($_POST['submit'])) { if(__GET_ID && is_numeric(__GET_ID)) { mysql_query('UPDATE chat SET text = \'' . mysql_real_escape_string(htmlspecialchars($_POST['chat'])) . '\' WHERE id = ' . __GET_ID . ' AND brukerid = \'' . $_SERVER['REMOTE_ADDR'] . '\''); } else { if(strlen($_POST['chat']) > 0) { mysql_query('INSERT INTO chat (brukerid, text) VALUES (\'' . $_SERVER['REMOTE_ADDR'] . '\', \'' . mysql_real_escape_string(htmlspecialchars($_POST['chat'])) . '\')'); } } header('Location: ' . $fil); } $sqlFetch = mysql_query('SELECT * FROM chat ORDER BY id DESC'); while($row = mysql_fetch_array($sqlFetch)) { echo $row['text'] . (($_SERVER['REMOTE_ADDR'] == $row['brukerid']) ? ' <a href="?e=' . $row['id'] . '">endre</a>' : '') . '<br>'; } -- -------------------------------------------------------- -- Host: 127.0.0.1 -- Server version: 5.1.53-community-log - MySQL Community Server (GPL) -- Server OS: Win64 -- HeidiSQL version: 7.0.0.4053 -- Date/time: 2012-02-24 15:18:36 -- -------------------------------------------------------- /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET NAMES utf8 */; /*!40014 SET FOREIGN_KEY_CHECKS=0 */; -- Dumping structure for table ehe.chat CREATE TABLE IF NOT EXISTS `chat` ( `id` int(10) NOT NULL AUTO_INCREMENT, `brukerid` varchar(255) COLLATE utf8_bin DEFAULT NULL, `text` text COLLATE utf8_bin, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin; -- Data exporting was unselected. /*!40014 SET FOREIGN_KEY_CHECKS=1 */; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; Endret 24. februar 2012 av Thomas. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå