• Hallo liebe Userinnen und User,

    nach bereits längeren Planungen und Vorbereitungen sind wir nun von vBulletin auf Xenforo umgestiegen. Die Umstellung musste leider aufgrund der Serverprobleme der letzten Tage notgedrungen vorverlegt werden. Das neue Forum ist soweit voll funktionsfähig, allerdings sind noch nicht alle der gewohnten Funktionen vorhanden. Nach Möglichkeit werden wir sie in den nächsten Wochen nachrüsten. Dafür sollte es nun einige der Probleme lösen, die wir in den letzten Tagen, Wochen und Monaten hatten. Auch der Server ist nun potenter als bei unserem alten Hoster, wodurch wir nun langfristig den Tank mit Bytes vollgetankt haben.

    Anfangs mag die neue Boardsoftware etwas ungewohnt sein, aber man findet sich recht schnell ein. Wir wissen, dass ihr alle Gewohnheitstiere seid, aber gebt dem neuen Board eine Chance.
    Sollte etwas der neuen oder auch gewohnten Funktionen unklar sein, könnt ihr den "Wo issn da der Button zu"-Thread im Feedback nutzen. Bugs meldet ihr bitte im Bugtracker, es wird sicher welche geben die uns noch nicht aufgefallen sind. Ich werde das dann versuchen, halbwegs im Startbeitrag übersichtlich zu halten, was an Arbeit noch aussteht.

    Neu ist, dass die Boardsoftware deutlich besser für Mobiltelefone und diverse Endgeräte geeignet ist und nun auch im mobilen Style alle Funktionen verfügbar sind. Am Desktop findet ihr oben rechts sowohl den Umschalter zwischen hellem und dunklem Style. Am Handy ist der Hell-/Dunkelschalter am Ende der Seite. Damit sollte zukünftig jeder sein Board so konfigurieren können, wie es ihm am liebsten ist.


    Die restlichen Funktionen sollten eigentlich soweit wie gewohnt funktionieren. Einfach mal ein wenig damit spielen oder bei Unklarheiten im Thread nachfragen. Viel Spaß im ngb 2.0.

Bilder einsetzen in Html Seite

devrim

Aktiver NGBler

Registriert
15 Juli 2013
Beiträge
1.072
Ort
/dev/null
Es geht um die Seite arenahilfe.de

Ich würde dort gerne Bilder einsetzen. Könnte mir da jemand helfen?

[src=php]<?php
require_once("Connection.php");

$conn = Connection::getInstance();

function td($content) {
return "<td>" . $content . "</td>";
}

function input($value, $name, $placeholder) {
return "<div class='input-control text'><input type='text' value='" . $value . "' name='" . $name . "' placeholder='" . $placeholder . "' /></div>";
}

function hidden($content) {
return "<span class='hidden'>" . $content . "</span>";
}

function input_hidden($name, $content) {
return "<input name='" . $name . "' type='hidden' value='" . $content . "' />";
}

$logged_in = false;
if($_COOKIE["logged_in"] === "true") $logged_in = true;
elseif(isset($_POST["username"]) && isset($_POST["password"])) {
$user = $conn->query("SELECT password FROM user WHERE username = :username", array("username" => $_POST["username"]));
$user = $user->fetch(PDO::FETCH_ASSOC);
if(sha1($_POST["password"]) == $user["password"]) {
setcookie("logged_in", "true");
$logged_in = true;
}
}
if(isset($_GET["delete"])) {
$conn->query("DELETE FROM clash WHERE id = :id", array("id" => $_GET["id"]));
} elseif(isset($_POST["id"]) && (isset($_POST["user"]) && $_POST["user"] != "") && (isset($_POST["guild"]) && $_POST["guild"] != "")) {
if($_POST["id"] == 0) {
$conn->query("INSERT INTO clash (user, guild, continent, notice) VALUES (:name, :guild, :continent, :notice)",
array("name" => $_POST["user"], "guild" => $_POST["guild"], "continent" => $_POST["continent"], "notice" => $_POST["notice"]));
} else {
$conn->query("UPDATE clash SET user = :user, guild = :guild, continent = :continent, notice = :notice WHERE id = :id",
array("user" => $_POST["user"], "guild" => $_POST["guild"], "continent" => $_POST["continent"], "notice" => $_POST["notice"], "id" => $_POST["id"]));
}
}

if(isset($_GET["logout"])) {
setcookie("logged_in", "false");
$logged_in = false;
}

$entries = $conn->queryReturnArray("SELECT * FROM clash");
?>
<html>
<head>
<meta charset="UTF-8" />
<title>Clash</title>

<link href="css/metro.min.css" rel="stylesheet">
<link href="css/metro-icons.min.css" rel="stylesheet">
<link href="css/metro-schemes.min.css" rel="stylesheet">

<link href="css/custom.css" rel="stylesheet">

<script src="js/jquery-2.1.4.min.js" language="javascript"></script>
<script src="js/metro.min.js" language="javascript"></script>
<script src="//cdn.datatables.net/1.10.8/js/jquery.dataTables.min.js" language="javascript"></script>
<script language="javascript">
$(function() {
$("#dataTable").DataTable({
"language": {
"lengthMenu": "Zeige _MENU_ Einträge pro Seite",
"zeroRecords": "Keine Einträge vorhanden",
"info": "Zeige Seite _PAGE_ von _PAGES_",
"infoEmpty": "Keine Einträge vorhanden",
"infoFiltered": "(gefiltert von _MAX_ Einträgen)",
"search": "Suche: ",
"paginate": {
"first": "Erste",
"previous": "<<",
"next": ">>",
"last": "Letzte"
}
}
});
});
</script>
<link rel="shortcut icon" href="favicon.ico">
</head>
<body>
<div class="page-content container" style="margin-top: 30px">
<?php if((isset($_POST["username"]) || isset($_POST["password"])) && !$logged_in) { ?>
<h1 style="color: #AA0000;">Falsche Daten!</h1>
<?php }
if($logged_in) { ?>
<a href="?logout" class="button">Ausloggen</a><br /><br />
<table id="dataTable" class="dataTable hovered bordered border">
<thead>
<th>User</th>
<th>Gilde</th>
<th>Kontinent</th>
<th>Bemerkung</th>
<th> </th>
</thead>
<tfoot>
<th>User</th>
<th>Gilde</th>
<th>Kontinent</th>
<th>Bemerkung</th>
<th> </th>
</tfoot>
<tbody>
<?php
foreach($entries as $entry) {
echo "<tr><form action='index.php' method='POST'>";
echo input_hidden("id", $entry["id"]);
echo td(hidden($entry["user"]) . input($entry["user"], "user", "Username"));
echo td(hidden($entry["guild"]) . input($entry["guild"], "guild", "Gilde"));
echo td(hidden($entry["continent"]) . input($entry["continent"], "continent", "Kontinent"));
echo td(hidden($entry["notice"]) . input($entry["notice"], "notice", "Bemerkung"));
echo "<td><button class='button' type='submit'>Update</button><a href='?delete&id=" . $entry["id"] . "' class='button'>Löschen</a></td>";
echo "</form></tr>";
}
echo "<tr><form action='index.php' method='POST'>";
echo input_hidden("id", 0);
echo td(input("", "user", "Username"));
echo td(input("", "guild", "Gilde"));
echo td(input("", "continent", "Kontinent"));
echo td(input("", "notice", "Bemerkung"));
echo "<td><button class='button' type='submit'>Einfügen</button></td>";
echo "</form></tr>";
?>
</tbody>
</table>
<?php } else { ?>
<button class="button" onclick='var dialog = $("#login_dialog").data("dialog"); dialog.open()'>Login</button><br /><br />
<table id="dataTable" class="dataTable hovered bordered border">
<thead>
<th>User</th>
<th>Gilde</th>
<th>Kontinent</th>
<th>Bemerkung</th>
<th> </th>
</thead>
<tfoot>
<th>User</th>
<th>Gilde</th>
<th>Kontinent</th>
<th>Bemerkung</th>
<th> </th>
</tfoot>
<tbody>
<?php
foreach($entries as $entry) {
echo "<tr>";
echo input_hidden("id", $entry["id"]);
echo td($entry["user"]);
echo td($entry["guild"]);
echo td($entry["continent"]);
echo td($entry["notice"]);
echo td("");
echo "</tr>";
}
echo "<tr><form action='index.php' method='POST'>";
echo input_hidden("id", 0);
echo td(input("", "user", "Username"));
echo td(input("", "guild", "Gilde"));
echo td(input("", "continent", "Kontinent"));
echo td(input("", "notice", "Bemerkung"));
echo "<td><button class='button' type='submit'>Einfügen</button></td>";
echo "</form></tr>";
?>
</tbody>
</table>
<?php } ?>
</div>
<div data-role="dialog" id="login_dialog" class="padding20 dialog" data-close-button="true" data-overlay="true" data-overlay-color="op-dark">
<h1 class="text-light">Login</h1>
<hr class="thin" />
<br />
<form action="index.php" method="POST">
<div class="input-control text">
<input type="text" name="username" placeholder="Nutzername" />
</div>
<br />
<div class="input-control password">
<input type="password" name="password" placeholder="Passwort" />
</div>
<br />
<button class="button" type="submit">Einloggen</button>
</form>
</div>
</body>
<a href="http://www.andyhoppe.com/" title="Besucherzaehler"><img
src="http://c.andyhoppe.com/1439753883" style="border:none" alt="Besucherzaehler" /></a>
</html>[/src]
 

Anhänge

  • Neue Bitmap.jpg
    Neue Bitmap.jpg
    30,3 KB · Aufrufe: 173
Zuletzt bearbeitet:

musv

Bekannter NGBler

Registriert
15 Juli 2013
Beiträge
3.458
Ort
/dev/null
Was ist jetzt Deine konkrete Frage?

Btw: Kritik an Deinem Kot:
  • Auch in PHP kann man MVC bzw. Model View halbwegs umsetzen. PHP-Funktionen, die ganze HTML-Fragmente zurückgeben, gehen eigentlich gar nicht. Mach stattdessen HTML-Formulare, in denen du PHP-Funktionsaufrufe einbettest und PHP-Klassen für das Model und die Geschäftslogik.
  • GetInstance() riecht nach Singletons. Eine global verfügbare Klasse mit innerem Zustand kannst du auch über eine statische Klasse realisieren.
  • Du gibst im Header keinerlei HTML-Version an, was auf HTML5 schließen lässt. Es fehlt der Doctype. Anhand des Quellcodes könnte man aber X-HTML vermuten.
  • Table-Layout kann man machen. Allerdings sind Tabellen Tabellen. Zur Anordnung von Bildern wären wohl Divs besser gesehen.
 

Jester

★★★★☆ (Kasparski)

Registriert
1 Dez. 2014
Beiträge
6.066
Ort
Code Azure
Davon ausgehend, dass Du eine Fremdsoftware verwendest und die nicht umkrempeln willst/kannst, gibt es auch eine unschöne, aber einfache Lösung.

Du kannst um die bestehende Tabelle eine 9-zellige (3x3) Tabelle bauen, wobei die bestehende Tabelle in die horizontal und vertikal mittlere Zelle gesetzt wird.

Gruß, J.
 

devrim

Aktiver NGBler

Registriert
15 Juli 2013
Beiträge
1.072
Ort
/dev/null
  • Thread Starter Thread Starter
  • #4
Was ist jetzt Deine konkrete Frage?

Btw: Kritik an Deinem Kot:
  • Auch in PHP kann man MVC bzw. Model View halbwegs umsetzen. PHP-Funktionen, die ganze HTML-Fragmente zurückgeben, gehen eigentlich gar nicht. Mach stattdessen HTML-Formulare, in denen du PHP-Funktionsaufrufe einbettest und PHP-Klassen für das Model und die Geschäftslogik.
  • GetInstance() riecht nach Singletons. Eine global verfügbare Klasse mit innerem Zustand kannst du auch über eine statische Klasse realisieren.
  • Du gibst im Header keinerlei HTML-Version an, was auf HTML5 schließen lässt. Es fehlt der Doctype. Anhand des Quellcodes könnte man aber X-HTML vermuten.
  • Table-Layout kann man machen. Allerdings sind Tabellen Tabellen. Zur Anordnung von Bildern wären wohl Divs besser gesehen.

Das z.B. ich verstehe kein Wort davon.

Ich dachte das jetzt einer sagt, gib mal in zeile 50 das ein für das bild und in 60 für das andere.
Mein Gedanke ist, das es kein grosser Akt sein kann ein Bild einzufügen.
 

godlike

Warp drölf
Veteran

Registriert
13 Juli 2013
Beiträge
14.332
Ort
Topkekistan
Nun ja, du kannst nach <body> auch einfach ein Bild setzen. Ganz normal per <img src="pfad/blah.jpg">. Und das Selbe am Ende. Also vor </body>. Links und rechts neben der Tabelle wird schon komplizierter. Sowas könntest du per float lösen.
 

devrim

Aktiver NGBler

Registriert
15 Juli 2013
Beiträge
1.072
Ort
/dev/null
  • Thread Starter Thread Starter
  • #7
eraser ich bin froh das ein user hier mir die Tabelle gemacht hat. Ich kenne mich null, aber so richtig null mit aus.
 

eraser

Stinkstiefel

Registriert
21 Juli 2013
Beiträge
3.775
Deshalb habe ich dir auch die Seite verlinkt. Dort steht sogar mit Beispielen, wie man seinen Code sicherer gestalten kann. Den aus deinem Beispiel solltest du definitiv nicht online stellen.
 

musv

Bekannter NGBler

Registriert
15 Juli 2013
Beiträge
3.458
Ort
/dev/null
Ich kenne mich null, aber so richtig null mit aus.
Wer hat Dich dann an die Aufgabe rangesetzt?

Ok, es ist nur 'ne Webseite.

Der Quelltext ist leider ein Musterbeispiel dafür, warum PHP so verflucht wird. Ich hab früher mal richtig gern in PHP Webseiten gebaut. Macht man das richtig sauber, dann gibt's wenig Unterschiede zu C++, Java & Co. Leider macht PHP es einem aber auch richtig einfach, richtig dreckigen Quellcode zu produzieren (= Deine Seite).

Tu der Welt einen Gefallen: Lern entweder programmieren, oder setz jemanden ran, der wenigstens die Grundlagen davon beherrscht.
 

accC

gesperrt

Registriert
14 Juli 2013
Beiträge
5.250
Das z.B. ich verstehe kein Wort davon.

Ich dachte das jetzt einer sagt, gib mal in zeile 50 das ein für das bild und in 60 für das andere.
Mein Gedanke ist, das es kein grosser Akt sein kann ein Bild einzufügen.

Natürlich ist das nicht so schwer und um so schlimmer ist, dass du es nicht selbst hinbekommst.
Dir könnte hier jeder so ziemlich alles hin schreiben und du müsstest wohl davon ausgehen, dass das, das ist, was du möchtest.
Und.. letztlich haftest du für alles, was auf deinem Webspace/Server passiert. Deshalb ist es wichtig, dass du verstehst, was du tust. :unknown:

Die Kritik von musv an dem Code ist berechtigt. Eine saubere Trennung zwischen Model, View und Controller macht aus diversen Gründen Sinn. Schon allein für Entwickler, die den Code lesen und verstehen müssen. Dazu hat er dir sogar mindestens einen sehr ausführlichen Artikel verlinkt. Auch die anderen Punkte sind nicht verkehrt. Zum fehlenden DocType, müsste sowieso Quirksmode verwendet werden.
Wenn du wirklich keinen der von musv angeführten Punkte verstehst, dann solltest du dich mit den Grundlagen von Webdesign, PHP und SQL auseinandersetzen.
 

devrim

Aktiver NGBler

Registriert
15 Juli 2013
Beiträge
1.072
Ort
/dev/null
  • Thread Starter Thread Starter
  • #11
Ich habe mich damit auseinandergesetzt. Mit der Folge, das ich die Seite jetzt gelöscht habe.
Um ehrlich zu sein kann ich jetzt keine Grundlagenforschung betreiben.

Würde ich soetwas längerfristig machen, dann würde ich mich damit auseinandersetzen. Aber mir scheint es gerade so, als ob ich Meeresbiologie studieren müsste
um einmal einen Fisch zu essen.

Ich bin zur Zeit mit Arduino und C++ am üben und muss parallel dazu noch Pyhton wegen FHEM und meiner Hausautomatisierung in den Griff kriegen.
Und wenn ich dann jetzt noch mitkriege, das mir hier skripte untergejubelt werden wo Tür und Tor offen stehen, dann höre ich lieber auf.
 

accC

gesperrt

Registriert
14 Juli 2013
Beiträge
5.250
Klein anfangen und eins nach dem anderen.
Wenn du unbedingt eine Webseite brauchst, dann setz dir bspw. Wordpress auf. Du kannst dann vielleicht nicht alles perfekt 1 zu 1 so gestalten, wie du es möchtest, aber immerhin kannst du dir sicher sein, dass das CMS einigermaßen sicher ist. Von Plugins und Themes mal abgesehen.
 
Oben