Avatar billede kelleolsen Nybegynder
27. august 2009 - 14:57 Der er 28 kommentarer og
1 løsning

FCKeditor -> MySQL

Hej.

Look at this: http://kelledesign.wep.dk/

Som i kan se gør den jo ikke noget når man trykker "submit".

Men jeg skal have lavet sådan at når jeg trykker "submit" gemmer den det jeg har lavet i editoren i databasen, så jeg kan hive det ud igen. Men hvordan skal min tabel se ud?

Kan jeg godt bare bruge en:

CREATE TABLE editor(
  nummer INT PRIMARY KEY AUTO_INCREMENT,
  text MEDIUMTEXT;
);

Er det fint eller?
Avatar billede nissen2630 Novice
27. august 2009 - 15:46 #1
din Form forsøger at kalde en fil der hedder 'sampleposteddata.php'

Den er der ikke
Avatar billede kelleolsen Nybegynder
27. august 2009 - 16:04 #2
Se hvad jeg spørger efter???????

Dette er bare et eksempel????

Skal jo bare vide det med tabellen
Avatar billede nissen2630 Novice
27. august 2009 - 16:24 #3
Typisk mig at læse lidt hurtigt :-(

Men tag et kig på denne side:
http://www.msbware.com/p/view_article/article_id/110
Avatar billede jensgram Nybegynder
27. august 2009 - 16:28 #4
CREATE TABLE editor(
  nummer INT PRIMARY KEY AUTO_INCREMENT,
  text MEDIUMTEXT;
);

Ja, det kan du. Men det er jo ikke til at sige, om det er tilstrækkeligt til dine behov: Skal det fremgå hvem der har oprettet hver entry? Hvem der har opdateret den? Hvornår?

Men som udgangspunkt: Ja, du vil sagtens kunne gemme tekst i en sådan tabel.
Avatar billede Slettet bruger
27. august 2009 - 17:11 #5
Husk at escape dataene før du propper dem ind i databasen. Ellers kan du blive udsat for SQl-injections: http://en.wikipedia.org/wiki/SQL_injection

Dette gøres i PHP med funktionen mysql_real_escape_string(): http://us2.php.net/manual/en/function.mysql-real-escape-string.php
Avatar billede kelleolsen Nybegynder
27. august 2009 - 17:32 #6
Oka tak :),

Men nogle som ved det med tabellen? Hvordan den skal se ud?
Avatar billede kelleolsen Nybegynder
27. august 2009 - 17:36 #7
Hvordan skal den der "mysql_real_escape_string():" sættes ind? Hvor?
Avatar billede kelleolsen Nybegynder
27. august 2009 - 18:15 #8
Hvis jeg har min editor her:

<?php
include_once("fckeditor/fckeditor.php") ;
?>
<html>
<head>
  <title>FCKeditor - Sample</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
  <form action="sendtomysql.php" method="post" target="_blank">
<?php
$oFCKeditor = new FCKeditor('FCKeditor1') ;
$oFCKeditor->BasePath = '/fckeditor/' ;
$oFCKeditor->Value = '<p>This is some <strong>sample text</strong>. You are using <a href="http://www.fckeditor.net/">FCKeditor</a>.</p>' ;
$oFCKeditor->Create() ;
?>
    <br>
    <input type="submit" value="Submit">
  </form>
</body>
</html>

Hvordan skal min sendtomysql.php så se ud?

Min Database ser ud således: Host: db4free.net:3306  ;  brugernavn: kelledesign  ;  pass er hemmeligt  ;  database: kelledesign  ;  og den skal indsættes i en tabel som hedder editor og den ser således ud:

editor (
id INT PRIMARY KEY AUTO_INCREMENT
editor MEDIUMTEXT)
Avatar billede jensgram Nybegynder
27. august 2009 - 20:28 #9
Noget a la - utestet og uden fejlhåndtering!

sendtomysql.php:

<?php

if (isset($_POST['FCKeditor1']) && !empty($_POST['FCKeditor1'])) {
    // Opret DB-conn her - se php.net

    $sql = sprintf('INSERT INTO editor (editor) VALUES ("%s")', mysql_real_escape_string($_POST['FCKeditor1']));
    mysql_query($sql);
}

?>
Avatar billede kelleolsen Nybegynder
28. august 2009 - 14:49 #10
Hvis jeg skal lave en tabel hvor den kan smide der ind, er min så god nok?

Altså den skal automatisk give den et nummer når et nyt bliver uploadet?
Avatar billede Slettet bruger
28. august 2009 - 21:20 #11
Jep, din tabel er fuldstændig glimrende.
Avatar billede kelleolsen Nybegynder
29. august 2009 - 20:33 #12
Har i et script til en forespørgsel så det som jeg havde skrevet i editoren kommer frem, så den viser den seneste som er langt ind ? :)
Avatar billede Slettet bruger
29. august 2009 - 22:07 #13
Ja, det kan jeg da hurtigt bikse sammen:

<?php
$sql = "SELECT max(id) as id, editor FROM editor";
$query = mysql_query($sql);
$resultat = mysql_fetch_assoc($query);
echo $resultat['editor'];
?>
Avatar billede kelleolsen Nybegynder
09. september 2009 - 13:29 #14
Så henter den det som første gang blev lagt ind, kan jeg se. For hvis jeg går ind og lavet en skriver noget andet og trykker submit, så skriver den stadig det som jeg første gang skrev?
Avatar billede kelleolsen Nybegynder
09. september 2009 - 13:31 #15
Prøv at se http://kelledesign.wep.dk/ og skriv et eller andet og tryk submit. Så gå ind på http://kelledesign.wep.dk/forside.php, så kommer der det frem som jeg skrev aller første gang nemlig: ddgdg

Jeg vil gerne have at den henter det nyeste af det nyeste. Er der fejl i min mysql eller?
Avatar billede jensgram Nybegynder
09. september 2009 - 18:27 #16
Prøv lige:

SELECT editor FROM editor ORDER BY id DESC LIMIT 1
Avatar billede Slettet bruger
09. september 2009 - 20:12 #17
Ja, jensgram har ret. Det er en meget mere effektiv måde at gøre det på.
Avatar billede kelleolsen Nybegynder
09. september 2009 - 21:26 #18
SELECT editor FROM editor ORDER BY id DESC LIMIT 1

Har meget meget lidt forstand på mysql, så hvorhenne, og istedet for hvad?
Avatar billede Slettet bruger
09. september 2009 - 23:04 #19
<?php
$sql = "SELECT editor FROM editor ORDER BY id DESC LIMIT 1";
$query = mysql_query($sql);
$resultat = mysql_fetch_assoc($query);
echo $resultat['editor'];
?>
Avatar billede kelleolsen Nybegynder
10. september 2009 - 12:48 #20
Fedt :) Tusind tak. Den der side der åbner sig når jeg trykker submit, kan man ikke gøre sådan at den skriver "Done"

Et eller andet med echo "<p>Done</p>" vel? Men hvor?

<?php

if (isset($_POST['FCKeditor1']) && !empty($_POST['FCKeditor1'])) {

    mysql_connect('db4free.net:3306', 'kelledesign', 'Henriette');
    mysql_select_db('kelledesign');

    $sql = sprintf('INSERT INTO editor (editor) VALUES ("%s")', mysql_real_escape_string($_POST['FCKeditor1']));
    mysql_query($sql);
}

?>
Avatar billede jensgram Nybegynder
10. september 2009 - 13:41 #21
<?php

if (isset($_POST['FCKeditor1']) && !empty($_POST['FCKeditor1'])) {

    mysql_connect('db4free.net:3306', 'kelledesign', 'Henriette');
    mysql_select_db('kelledesign');

    $sql = sprintf('INSERT INTO editor (editor) VALUES ("%s")', mysql_real_escape_string($_POST['FCKeditor1']));
    if (mysql_query($sql)) {
        echo 'London, baby!';
    }
}

?>
Avatar billede jensgram Nybegynder
10. september 2009 - 13:42 #22
PS: Du skal nok skifte DB-password, hvis du ikke allerede har gjort det :)
Avatar billede kelleolsen Nybegynder
10. september 2009 - 13:53 #23
Haha, gør jeg :) men det var jo også bare en test det der :)
Avatar billede jensgram Nybegynder
10. september 2009 - 14:00 #24
Ok - det kunne jo være en smutter.
Avatar billede Slettet bruger
10. september 2009 - 17:53 #25
Du følte ikke at mit svar var til hjælps?
Avatar billede kelleolsen Nybegynder
10. september 2009 - 17:59 #26
Øh jo :) Jeg er ny på det her eksperten.dk og forstår det ikke helt. Det med point osv. Kan jeg overføre point til dig på en måde? :)
Avatar billede jensgram Nybegynder
10. september 2009 - 20:16 #27
Jeg opretter en pointdeler. 2 sec.
Avatar billede jensgram Nybegynder
10. september 2009 - 20:18 #28
Avatar billede Slettet bruger
10. september 2009 - 22:32 #29
Ny har jensgram været så venlig at dele pointene med mig.

Når et spørgsmål her på eksperten er blevet besvaret, beder man dem der har hjulpet en med at komme problemet til livs om at lægge et svar. Derefter uddeler man point.
Pointene behøver ikke at blive fordelt lige, så du kan godt give én bruger 15 point, og en anden 45.
Hvis der ikke har været nogle brugbare svar lægger man selv et svar hvori man forklarer hvad resultatet blev, accepterer sit eget svar og beholder pointene.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester