"We are back" « oc.at

Help: fckeditor, ausgabe in PHP

GrOnD 18.05.2008 - 17:02 2347 23
Posts

grond

---------
Registered: Aug 2004
Location: 8401
Posts: 3198
hallo Leute
ich hab wiedereinmal ein problem, diesmal eher mehr denk/programmier problem, es handelt sich um den FCKeditor:

also
ich hab 3 tabellen :
1 gesamt tabelle hier sind zb. die Home.php, ich.php drinnen und mehrere die werden dynamisch aufgerufen
1 fürs gästebuch
1 für Freunde (bilder etc)

3 Dateien die mir probleme machen bzw eher ein
edit.php -> führt FCKeditor aus und hier um den Text zu verändern
Code: PHP
  <?php
		include("connect.php");
		$tabelle="hp";
		$id = $_GET['id'];
        $sql = "SELECT * FROM $tabelle WHERE `id` = '$id'";
        $query = mysql_query($sql);
        $ausgabe = mysql_fetch_array($query);
        include("./fckeditor/fckeditor.php") ;
        $oFCKeditor = new FCKeditor('inhalt') ;
        $oFCKeditor->Width = '800';
        $oFCKeditor->Height = '400';
        $oFCKeditor->BasePath = './fckeditor/' ;
        $oFCKeditor->Value = $ausgabe['inhalt'];
        $oFCKeditor->Create() ;
	?>
    <input type="hidden" name="id" value="<?php echo $id;?>">
    <p align="center"><input type="submit" value="Aendern" name="aendern">
    <?php
	if (isset($_POST['aendern']))
	{
	echo update();
	}
	?>
    </form>
	</div>
</body>
</html>
<?PHP
function update()
{
  	$inhalt = $_POST['inhalt'];
	$id = $_POST['id'];
	$sql = "UPDATE editor SET `inhalt` = '$inhalt' WHERE `id` = '$id' LIMIT 1";
	$query = mysql_query($sql);
	echo "<meta http-equiv=\"refresh\" content=\"0;URL=ausgabe.php\">";  
	echo "<a href= 'ausgabe.php'>Zur Uebersicht</a>";
}
?>

Ausgabe.php-> für die Homepage zum öffnen der Seiten
Code: PHP
		<?php
			include("connect.php");
			$tabelle= "hp";
			$sql = "SELECT * FROM $tabelle WHERE editor= 'J' ORDER BY id ASC";
			$query = mysql_query($sql);
			if (!$query) 
		   	die('Ungültige Abfrage: ' . mysql_error()); 

			while($ausgabe = mysql_fetch_object($query))
			{
		        echo "
                    <tr>
                        <td style=\"border-bottom:1px solid black;\">" . $ausgabe->titel. "</th>
                        <td style=\"border-bottom:1px solid black;\" align=\"center\">

                        	<a href=\"./admin/editor/anzeigen.php?id=$ausgabe->id\" target=\"_blank\">anzeigen</a> |
                        	<a href=\"./admin/editor/edit.php?id=$ausgabe->id\">ändern</a></th>
                    </tr>
				";
			}
		?> 

und eine Anzeigen.PHP um den Text anzuzeigen
Code: PHP
 
	<?php
			include("connect.php");
			$tabelle="hp";
			$id = $_GET['id'];
			
			$sql = "SELECT * FROM $tabelle WHERE `id` = '$id' LIMIT 1";
			$query = mysql_query($sql);
			
			$ausgabe = mysql_fetch_array($query);
			
			 echo $ausgabe['datei']; ?>


Mein Problem wenn ich auf "anzeigen" geh, zeigt es mir nicht die datei an mit Ihrem Inhalt sondern es schreibt nur zB. "home.php" hin.

Also ich möchte den Inhalt der Datei ausgeben um den verändern zu können.
Verlinkt ist der Editor mit der Gesamt-Tabelle
Im Endeffekt muss ich nur den Code der Anzeigen.PHP verändern, nur hab ich keine Ahnung wie das geht.

mfg & TIA GrOnD
Bearbeitet von grond am 23.05.2008, 10:05

that

Hoffnungsloser Optimist
Avatar
Registered: Mar 2000
Location: MeidLing
Posts: 11343
Du schreibst ins Feld "inhalt", gibst aber den Inhalt des Feldes "datei" aus.

grond

---------
Registered: Aug 2004
Location: 8401
Posts: 3198
ok das haut jetzt hin trotzdem möchte ich anzeigen/ausgeben lassen was IN der zb Home.php ist, geht das irgendwie?

aja so passts dann oder
Code: PHP
 
    <?php
		include("connect.php");
		$tabelle="hp";
		$id = $_GET['id'];
        $sql = "SELECT * FROM $tabelle WHERE `id` = '$id'";
        $query = mysql_query($sql);
        $ausgabe = mysql_fetch_array($query);
        include("./fckeditor/fckeditor.php") ;
        $oFCKeditor = new FCKeditor('datei') ;
        $oFCKeditor->Width = '800';
        $oFCKeditor->Height = '400';
        $oFCKeditor->BasePath = './fckeditor/' ;
        $oFCKeditor->Value = $ausgabe['datei'];
        $oFCKeditor->Create() ;
	?>
    <input type="hidden" name="id" value="<?php echo $id;?>">
    <p align="center"><input type="submit" value="Aendern" name="aendern">
    <?php
	if (isset($_POST['aendern']))
	{
	echo update();
	}
	?>
    </form>
	</div>
</body>
</html>
<?PHP
function update()
{
  	$datei = $_POST['datei'];
	$id = $_POST['id'];
	$sql = "UPDATE hp SET `datei` = '$datei' WHERE `id` = '$id' LIMIT 1";
	$query = mysql_query($sql);
	echo "<meta http-equiv=\"refresh\" content=\"0;URL=ausgabe.php\">";  
	echo "<a href= 'ausgabe.php'>Zur Uebersicht</a>";
}
?>

that

Hoffnungsloser Optimist
Avatar
Registered: Mar 2000
Location: MeidLing
Posts: 11343
Zitat
1 gesamt tabelle hier sind zb. die Home.php, ich.php drinnen und mehrere die werden dynamisch aufgerufen

Was heißt, die Dateien sind in der Tabelle "drin"?

Zitat
trotzdem möchte ich anzeigen/ausgeben lassen was IN der zb Home.php ist, geht das irgendwie?

Wieso willst du PHP-Code anzeigen lassen?

Poste mal die Struktur deiner "hp"-Tabelle und erkläre, wo du gedenkst, den Content abzuspeichern - in der Datenbank oder im Filesystem.

grond

---------
Registered: Aug 2004
Location: 8401
Posts: 3198
ahm sry hab mich falsch ausgedrückt, ich will zb den text der in home.php steht anzeigen/verändern lassen, nicht den php code, also zb:
hallo auf meiner homepage.."

also der aufbau meiner HP tabelle:
1. ID
2. Titel (name der schaltflächen)
3. Datei (.php welche aufgerufen wird)
4. Bild

dann hab ich noch 2 tabellen (gästebuch u. freunde) mit
1. id
2. titel
3. beschreibung
4. bild etc

der content sollte schon in der datenbank gespeichert werden, hab noch nie etwas anderes gemacht

that

Hoffnungsloser Optimist
Avatar
Registered: Mar 2000
Location: MeidLing
Posts: 11343
Wenn du den Content in der Datenbank speichern willst, solltest du auch irgendwo ein Feld in einer Tabelle dafür haben. :)

Was ist "home.php"? Eine PHP-Datei? Wenn nicht, was dann?

grond

---------
Registered: Aug 2004
Location: 8401
Posts: 3198
ja ist ne ganz normale php datei

hmm ja ich glaub, dass was ich wollte haut nur mit einer tabelle und nicht über mehrere tabellen hin ( weil in der einen tabelle sind alle verlinkt) und in der anderen sollte es dann abgespeichert werden, bzw von dort hergeholt werden

jives

And the science gets done
Avatar
Registered: Sep 2001
Location: Baden
Posts: 3548
Entweder ich versteh da was ganz falsch, oder du hast einen ziemlichen Denkfehler in deinem Konzept.

Im Feld "Datei" sollte nicht der echte Inhalt des (oder der Pfad zum) php-Script(s) stehen, sondern nur der Inhalt, den der Benutzer sehen soll.

Du könntest jetzt natürlich für jede Seite die der Benutzer sehen kann ein php-Script machen, dass ein Record mit einer fixen id liest und den Inhalt im entsprechenden Feld ausgibt, aber das ist ja nicht wirklich schön.

Mein Vorschlag: Du machst ein Script (output.php z.B.), an das du - je nachdem welche Seite der Benutzer sehen will - eine id weitergibst (SQL Injections udgl. dabei nicht vergessen). Das Script holt sich dann den entsprechenden Eintrag aus der DB, parsed ihn und gibt ihn aus.

grond

---------
Registered: Aug 2004
Location: 8401
Posts: 3198
@ jives
ja es ist von anfang an ein denkfehler drinnen, nur der lässt sich jetzt schwer beheben und ich hab gedacht es würde auch anders hinauen..
danke trotzdem für den vorschlag, nur kann ich ihn net wirklich umsetzen :/

jives

And the science gets done
Avatar
Registered: Sep 2001
Location: Baden
Posts: 3548
Warum nicht? Die Strukturen scheinen ja schon vorhanden zu sein...
Gehen denn beide Vorschläge nicht?

grond

---------
Registered: Aug 2004
Location: 8401
Posts: 3198
es geht nicht darum ob die vorschläge gehen (schätze schon), ich kanns einfach noch nicht programmieren ..(lern erst seit ca 1 jahr in der schule=nicht viel..)

jives

And the science gets done
Avatar
Registered: Sep 2001
Location: Baden
Posts: 3548
Also mit dem was du oben hast, bist du ja schon sehr, sehr knapp dran.
Da fehlt wirklich nicht mehr viel - aber wenn dus nicht versuchst, bzw. uns nicht sagst, wos noch hapert, können wir halt auch nicht helfen ;)

grond

---------
Registered: Aug 2004
Location: 8401
Posts: 3198
ja ich weiß
nur was brauch ich dann in so einer "output.php"- wie mache ich eine SQL Injections, wie parse ich es an eine db dann weiter?

prayerslayer

Oar. Mh.
Avatar
Registered: Sep 2004
Location: vorm Sucher
Posts: 4073
Zitat von GrOnD
ja ich weiß
nur was brauch ich dann in so einer "output.php"- wie mache ich eine SQL Injections, wie parse ich es an eine db dann weiter?

sql injections willst du nicht machen, sondern verhindern :)

http://www.google.com/search?source...Suche&meta=

jives

And the science gets done
Avatar
Registered: Sep 2001
Location: Baden
Posts: 3548
So ist es. Aber wenn du den Ausdruck schon nicht kennst, hättest ihn ins Google klopfen können, anstatt einfach aufzugeben...


Was dein Ausgabescipt genau braucht, kommt drauf an was du vorhast. Im einfachsten Fall bekommt es eine Record-ID, holt sich den Inhalt aus der DB (das kannst und machst du ja schon) und gibt ihn per echo() aus.

Dein Editor(-script) schreibt dann einfach den Inhalt des Editor-Textfelds in die DB.

Du hast ja scheinbar schon eine funktionierende DB, einen funktionierenden Editor und eine Verknüpfung zwischen den beiden - was fehlt jetzt denn noch? Oder wo genau ist jetzt das Problem?


Oder willst du die php-Datei (also das Script selbst) editieren?
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz