• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

Webseiten-Editor selber coden

StarDrink

Redstoneengineer
Registriert
9 September 2011
Beiträge
37
Diamanten
0
Minecraft
StarDrink
Huhu Zusammen,

Ich möchte euch in diesem Tutorial zeigen, wie ihr euren komplett eigenen Editor für eure Webseite erstellt. Nützlich ist dieser, damit man Dateien nicht immer neu hochladen muss, nur weil man einen Text verändert hat.

Was man braucht:
- Webseite
- Datenbank
- FTP-Server

Was muss ich machen?

Schritt 1:

- Wir legen uns eine Datenbank an, inder wir den Text speichern und wieder auslesen können:
Field: site VARCHAR 100 | In "site" legen wir unsere Seite zum bearbeiten fest
Field: text VARCHAR 999 | In "text" wird unser Text gespeichert, den wir im Editor angeben.




Schritt 2:

- Wir erstellen uns eine Datei. Bei mir heißt diese Editor.php -> damit speichern und bearbeiten wir später den Text

In den Body-Bereich kommt nun unser PHP-Code

PHP:
			<form action="editor.php" method="post">   [b][COLOR="#FF8C00"]Legt die Aktion nach dem Senden des Formulars fest[/COLOR][/b]
				<p style="margin-left: 100px;">
					<select name="site">     [b][COLOR="#FF8C00"]Nur wichtig zum Auswählen der Seite[/COLOR][/b]
						<option> </option>
						<option>Home</option>
					</select>
						<input type='submit' name='search' value='Auswählen' />
				</p>
			</form>
			<?php
				if(isset($_POST["search"]))  [B][COLOR="#FF8C00"]Legt fest, wass passiert wenn man "Auswählen" drückt[/COLOR][/B]
				{
					$st = $_POST["site"];
					mysql_connect("SERVER", "BENUTZERNAME", "PASSWORT");[B][COLOR="#FFA500"] Erstellt Verbindung zur Datenbank[/COLOR][/B]
					mysql_select_db("DATENBANK"); [B][COLOR="#FFA500"]Wählt die Datenbank aus[/COLOR][/B]
					$sqlab = "SELECT site, text FROM editor"; [B][COLOR="#FFA500"]Lädt den vorherigen Text sowie Seite[/COLOR][/B]
					$sqlab .= " WHERE site = '$st'";
					$res = mysql_query($sqlab);
					$dsatz = mysql_fetch_assoc($res); [B][COLOR="#FFA500"] Führt den Auftrag durch[/COLOR][/B]
					
					echo "<form action='editor.php' method='post'>";
					echo "<p style='margin-left: 5px;'><textarea cols='70' rows='20' name='text'>";
					echo "" . $dsatz["text"] . "";
					echo "</textarea></p>";
					echo "<p style='margin-left: 5px;'><input type='submit' name='send' value='Text ändern'/></p>";
					echo "</form>";  [B][COLOR="#FFA500"]Erneutes Formular zum Ändern des Textes[/COLOR][/B]
				}
				else
				{
				}
				
				if(isset($_POST["send"])) [B][COLOR="#FFA500"] Legt fest was passiert wenn man den Text absendet[/COLOR][/B]
				{
					mysql_connect("SERVER", "BENUTZERNAME", "PASSWORT");  [B][COLOR="#FFA500"]Verbindet erneut zur Datenbank[/COLOR][/B]
					mysql_select_db("DATENBANK"); [B][COLOR="#FFA500"]Wählt erneut Datenbank aus[/COLOR][/B]
						
						$st = $_POST["site"]; [B][COLOR="#FFA500"]Erstellt Abkürzungen für site und text, später einfacher[/COLOR][/B]
						$tx = $_POST["text"];
						
							$sqlab = "UPDATE editor Set text = '$tx'";  [B][COLOR="#FFA500"]Updated den bisherigen Text[/COLOR][/B]
							
							mysql_query($sqlab); [B][COLOR="#FFA500"]Führt den Auftrag durch[/COLOR][/B]
						
								$num = mysql_affected_rows();
								if ($num>0) 
							{
								echo "<p>Seite aktualisiert.</p>"; [B][COLOR="#FFA500"]Zeigt Meldungen ob erfolgreich oder nicht[/COLOR][/B]
							?>
							<script type="text/javascript">

								window.location.href = "editor.php"; [B][COLOR="#FFA500"]Weiterleitung, sonst wird die Meldung von Anfang an                      gezeigt[/COLOR][/B]

							</script>
							<?php
						}
						else
						{
							echo "<p>Seite nicht aktualisiert.</p>"; [B][COLOR="#FFA500"]Fehlermeldung falls nicht erfolgreich[/COLOR][/B]
						}
					}
					else
					{
					}
				?>

Schritt 3:

Auf unsere Seite "Home" binden wir im Body einen PHP-Code ein, der diesen Text abfragt:


PHP:
			<?php
				mysql_connect("SERVER","BENUTZERNAME","PASSWORT"); [B][COLOR="#FFA500"]Verbindet zur Datenbank[/COLOR][/B]
				mysql_select_db("DATENBANK"); [B][COLOR="#FFA500"]Wählt Datenbank aus[/COLOR][/B]
				
					$sqlab = "SELECT text FROM editor WHERE site = 'Home'"; [B][COLOR="#FFA500"]Fragt den Text ab[/COLOR][/B]
					$res = mysql_query($sqlab);  [B][COLOR="#FFA500"]Führt den Auftrag durch[/COLOR][/B]
					$dsatz = mysql_fetch_assoc($res);
					
						echo "<p style='margin-left: 8px;'><font face='Arial'>"
							. $dsatz["text"] . [B][COLOR="#FFA500"]Zeigt den Text an[/COLOR][/B]
					"</font></p>";
			?>


Schritt 4:

Wir fügen einen Beispiel-Text ein. Unser Editor UPDATED nur, ist kein Text vorhanden, kann er nichts updaten.

Wir klicken in unsere Datenbank auf "Insert" oder "Einfügen". Bei Site geben wir Home an und bei Text irgendetwas, es ist wichtig das etwas da steht das unser Editor updaten kann.


Dann sind wir auch schon fertig. Das ganze wars ;-)

Bei Fragen könnt ihr mir eine PN schreiben.

MFG,
Marco
 
Zuletzt bearbeitet von einem Moderator:

Crafter6432

Workaholic
Registriert
22 Dezember 2011
Beiträge
681
Diamanten
1
Dein Editor läd den Text aber auch immer neu hoch und bietet keine Features wie Autocompletion oder Syntax Highlighting, außerdem haben gute IDEs sowieso eine Autoupload Funktion.
 
H

Hecke29

Guest
Marco[gm];117698 schrieb:
Code:
<form action="editor.php" method="post">  
				<p style="margin-left: 100px;">
					<select name="site">  
						<option> </option>
						<option>Home</option>
					</select>
						<input type='submit' name='search' value='Auswählen' />
				</p>
			</form> [COLOR="#FF0000"]CSRF (eher unwichtig)[/COLOR]
			<?php
				if(isset($_POST["search"]))  
				{
					$st = $_POST["site"];
					mysql_connect("SERVER", "BENUTZERNAME", "PASSWORT");
					mysql_select_db("DATENBANK"); 
					$sqlab = "SELECT site, text FROM editor"; 
					$sqlab .= " WHERE site = '$st'"; [COLOR="#FF0000"]SQL-Injection; Unvollständiges SQL[/COLOR]
					$res = mysql_query($sqlab);
					$dsatz = mysql_fetch_assoc($res); 
					
					echo "<form action='editor.php' method='post'>";
					echo "<p style='margin-left: 5px;'><textarea cols='70' rows='20' name='text'>";
					echo "" . $dsatz["text"] . "";
					echo "</textarea></p>"; [COLOR="#FF0000"]XSS[/COLOR]

					echo "<p style='margin-left: 5px;'><input type='submit' name='send' value='Text ändern'/></p>";[COLOR="#FF0000"]CSRF (eher unwichtig)[/COLOR]

					echo "</form>";  
				}
				else
				{
				}
				
				if(isset($_POST["send"])) 
				{
					mysql_connect("SERVER", "BENUTZERNAME", "PASSWORT"); 
					mysql_select_db("DATENBANK"); 
						
						$st = $_POST["site"]; 
						$tx = $_POST["text"];
						
							$sqlab = "UPDATE editor Set text = '$tx'";  
[COLOR="#FF0000"]SQL-Injection; Fehlerhaftes SQL Statement: Es updated [B]ALLE[/B] einträge in der kompletten Tabelle... ergibt natürlich Sinn, wenn auf allen Seiten der Website das gleiche steht; SQL-Statement unvollständig[/COLOR]
							
							mysql_query($sqlab); 
						
								$num = mysql_affected_rows();
								if ($num>0) 
							{
								echo "<p>Seite aktualisiert.</p>"; [B][COLOR="#FFA500"]Zeigt Meldungen ob erfolgreich oder nicht[/COLOR][/B]
[COLOR="#FF0000"]Achso, klar, wenn mehr als 1 Zeile geupdated wurde, ist auch alles ok...[/COLOR]

							?>
							<script type="text/javascript">

								window.location.href = "editor.php"; 

							</script>
							<?php
						}
						else
						{
							echo "<p>Seite nicht aktualisiert.</p>"; 
						}
					}
					else
					{
					}
				?>

Code:
			<?php
				mysql_connect("SERVER","BENUTZERNAME","PASSWORT"); 
				mysql_select_db("DATENBANK"); 
				
					$sqlab = "SELECT text FROM editor WHERE site = 'Home'"; 

					$res = mysql_query($sqlab); 
					$dsatz = mysql_fetch_assoc($res);
					
						echo "<p style='margin-left: 8px;'><font face='Arial'>"
							. $dsatz["text"] . 
[COLOR="#FF0000"]XSS für alle! yay[/COLOR]
					"</font></p>";
			?>

Bitte benutz doch
Code:
-Tags oder [PHP]Tags.

Und generell: Das heißt, wenn ich die editor.php aufrufe, kann ich einfach Texte bearbeiten ohne mich zu authentifizieren? Das ist ja super. Dann kann ich von überall darauf zugreifen :)
 
Zuletzt bearbeitet von einem Moderator:

StarDrink

Redstoneengineer
Registriert
9 September 2011
Beiträge
37
Diamanten
0
Minecraft
StarDrink
Bitte benutz doch
Code:
-Tags oder [PHP]Tags.

Und generell: Das heißt, wenn ich die editor.php aufrufe, kann ich einfach Texte bearbeiten ohne mich zu authentifizieren? Das ist ja super. Dann kann ich von überall darauf zugreifen :)[/QUOTE]

Das ist eigentlich dazu gebaut das man es mit einem Adminbereich verbindet. Dann wäre da eine Session und das wärs dann mit dem authentifizieren ;-)

MFG,
Marco

P.S: Dieser Editor ist nur für Anfänger, "größere" Editoren bieten natürlich Autocompletion sowie Upload und mehr Features.
 
C

Cabraca

Guest
So, da ich heute etwas mehr Zeit hab mal ein paar Worte von mir.
Ich weiß nicht was du mit diesem, nennen wir es mal, Tutorial bezwecken willst aber in meinen Augen ist es einfach nur eins: Gefährlich.
Der Code den du gepostet hast ist mehr als Fehlerhaft wie hecke schon gezeigt hat.
Dass sich derjenige, der das Tutorial liest, selbst um die Authentifizierung kümmern muss steht auch nirgendwo.
Du schreibst selbst "Dieser Editor ist nur für Anfänger", vergisst aber dabei, dass Anfänger keinen Weitblick haben und das so ohne Auth ins netzt Stellen.
Das was du hier geschrieben hast ist ein Beispiel für Anfänger, ein Beispiel wie man es am besten nicht macht.
Aus diesem Grund habe ich den Thread in den OffTopic Bereich verschoben.

MFG Cab
 

RageGuyKai

Minecrafter
Gesperrt
Registriert
2 September 2013
Beiträge
10
Diamanten
0
Minecraft
RageGuyKai
Eigene Editoren sind nur für Fortgeschrittene Web-Entwickler gedacht, deshalb sollten die meisten Leute Wordpress, Joomla oder hastenichtgesehen verwenden, da diese extrem viele Funktionen haben, wie User-Verwaltung, Designs, Plugins, Widgets, usw, usw.
Dein Code ist zwar schön und gut, spiegelt aber für mich bloß dein Können in mySQL-Schreiben und mySQL-Lesen wieder.

Wenn ich zum Beispiel Webseiten designe, also nur Desing, keine Scripts, benutze ich Adobe Muse.
Für die Scripts benutze ich Adobe Dreamweaver.
Die Software habe ich natürlich gekauft, da ich zu 100% gegen cracked bin.
 
Oben