Gå til innhold

trenger hjelp med php tekst


Anbefalte innlegg

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
Videoannonse
Annonse

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 av xatic
Lenke til kommentar

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 av warpie
Lenke til kommentar

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 av Thomas.
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...