Finger weg von SUPR!
Erklärung: Verkaufstemplate HTML
Finger weg von SUPR!
Erklärung: Verkaufstemplate HTML
Auch hier sei erwähnt: Finger weg von SUPR!
Erklärung: Verkaufstemplate HTML
Ich kann Ihnen helfen. Ich selbst habe lange danach gesucht, wie man einen Online-Shop erstellt. Dann hat mir ein Freund eine hervorragende Seite empfohlen, mit der Sie problemlos einen Webshop erstellen können SUPR . Es gibt viele verschiedene Designs, die Sie selbst auswählen können. Erfolge.
Warum sollte man sich für einen Shop entscheiden, der nicht mehr kann, wie ein Shopware, Magento oder OXID und dazu noch ohne freie CE daher kommt?!
Auf der Seite wird auch offiziell gelogen: Unter den Funktionen steht bei der Basic Variante unbegrenzte Produkte, in der Preisübersicht enthält das Basic-Paket allerdings nur 25 Produkte?!
Ich habe den Shop nicht getestet, aber meine persönliche Empfehlung, falls ein Shop suchender hier vorbei kommt: Finger weg von SUPR!
Selbst OpenCart und Presta sind mind. genau so gut aufgestellt.
Irgendwie funktioniert es aber.
Auweia... und das wie scheint egal zu sein? Das sind ja tolle Voraussetzungen...
Es wird keine Datei appContent.js verwendet. Kann das an den Eigenschaften von VS Code liegen?
Woher die kommt, kann ich Dir nicht sagen, aber Du solltest wissen, wie man die Debugger-Konsole liest.
Dort steht rechts, dass der Fehler in einer Datei appContent.js Zeile 54 auftritt. Also wir die Datei auch an irgendeiner Stelle verwendet.
In der appContent.js, Zeile 54 wird versucht, auf eine Eigenschaft eines Objektes zuzugreifen, das nicht existiert.
Vermutlich ist das Objekt fehlerhaft oder nicht instantiiert.
Beispiel:
LOL...
Der war gut... ![]()
Ich werfe mal zusätzlich die Frage in den Raum, aus welcher Quelle die Daten kommen. Vom Aufbau her ist das weit entfernt von einem sinnvollem Konstrukt.
Wären die Namen tatsächlich ein Schlüssel wie bei JSON, müsste man über das Objekt iterieren, um an den Key und das Value zu kommen.
Sinnvoll in Form von JSON wäre es bspw. so
{
"data":[
{
"name":"Peter",
"value":0.998
},
{
"name":"Uwe",
"value":0.872541254
},
{
"name":"Beate",
"value":0.72
},
{
"name":"Maria-Diana",
"value":0.854745
}
]
}
Alles anzeigen
So iterierst Du über das Array data, weißt aber, dass Du in jedem Objektelement die Schlüssel name und value hast.
Getestet:
Bei der Beispielseite erkenne ich keinen Grund dafür ein iframe zu verwenden.
Welchen Vorteil bietet Dir das an der Stelle?
Javascript benötigt man für die Anforderung nicht, aber um CSS kommst Du nicht rum. Allein das Spalten-Layout ist relativ simpel damit umsetzbar.
Das Flexmodell wäre aber natürlich die noch bessere Variante.
Grundsätzlich kannst Du Dich meiner Meinung nach davon verabschieden, vernünftige Websites nur mit HTML umzusetzen. CSS wird Dein ständiger Begleiter sein, das solltest Du Dir anschauen. JavaScript kommt dann als Kosmetik, liegt aber in Deiner Entscheidung.
Warum in einer Tabelle?
Grundsätzlich sollte das klappen, wenn man das Bild in einem Container hat und das Bild auf width:100%; setzt. Ggfl. noch max-width setzen, damit es nicht zu groß gezoomt wird. In einer Tabelle habe ich das allerdings noch nie probiert, daher musst Du das mal selber testen oder Dich von der Tabelle trennen.
Was ich noch nicht geprüft habe ist, ob pdo angriffsicher ist.
Grundsätzlich ja, es kommt halt nur drauf an, wie man es einsetzt. ![]()
Die pure Nutzung von PDO macht es vermutlich schon etwas sicherer, aber richtig sicher wird es erst, wenn der Entwickler es richtig einsetzt!
Trotzdem hat m.scatello recht, das ist bei so einer Datenmenge eigentlich keine Aufgabe für PHP.
Wenn Du schon von vServern sprichst, hast Du sicher auch Bash-Zugriff- Dann wäre Perl besser geeignet und performanter.
Deine Bedingung musst Du halt selber einbauen, es wird kaum ein Tutorial geben, das genau Deine Bedingungen berücksichtigt.
Zeig am besten, was Du für ein Tutorial verwendest, dann können wir Dir sicher sagen, wo Du was ergänzen musst.
JavaScript würde ich hier nicht als Grundlage nehmen. Das ist eine Art Grundfunktionalität, die sollte auch gewährleistet sein, wenn bspw. irgendwelche ScriptBlocker ihren Auftrag zu ernst nehmen.
Alles anzeigenHallo Arne
die Notize ist folgende
Notice: Undefined index: id in C:\MAMP\htdocs\admin\galerie.php on line 14
Notice: Undefined index: id in C:\MAMP\htdocs\admin\galerie.php on line 19
das er mir die Notizen anzeigt war bzw. ist mir klar. kann ja nicht zurück auf die Bildergalerie Seite. Was soll er rausholen wenn keine übergabe der id stattfindet.
und jetzt komme ich ja zu meinem Problem. wie kann ich es bewerkstelligen das er wieder zurück findet?
Ich hatte schon an session gedacht. aber keine Ahnung wie das gehen soll.
Session ist eine gute Entscheidung, aber wenn Du gar nicht weißt, wie die funktionieren, kannst Du auch bei URL-Parametern bleiben.
Übergebe an die foto.php zusätzlich die GalerieID oder ziehe Sie idealerweise auf der foto.php mit aus der DB ( halbwegs vernünftiges Datenbank-Design vorausgesetzt ) und nutze die für Deinen Zurück-Link.
Nur der Vollständigkeit halber: Bei Sessions müsstest Du in jeder Datei ein session_start(); an den Anfang des Script setzen und in der galerie.php dann die ID setzen, bspw.:
In der foto.php sieht Dein Zurück-Link dann so aus:
Hinweis: Du solltest Wert, die über manipulierbare Quellen/Wege an das Script übergeben werden entsprechend behandeln!
den jetzt wird mir eine leere Seite mit zwei Notizen angezeigt.
Wenn Du das Geheimnis lüften würdest, um welche Notices es sich handelt, wäre es sicher leichter für uns Dir zu helfen.
Dein Prinzip unterscheidet sich zielführend wenig von der richtigen Variante, nur dass Du wie gesagt sehr unflexibel bist.
Unflexibel in der Hinsicht, dass Du bspw. nicht auf URLs á la example.com/rgendwas/nochwas eingehst. Das wäre zwar mit einer Anpassung des Pattern relativ einfach anpassbar, aber Du musst dafür die .htaccess bearbeiten, was nicht zielführend sein kann für Produktivsysteme.
In Deiner index.php vermute ich mal eine Verarbeitung über $_GET, also tippe ich mal ganz stark darauf, dass die RewriteRule nur aus dem Grund mit dem Parameter seite arbeitet, weil Du meinst, dass Du nur so an den Parameter ran kommst. Tatsächlich sollte ( grad getestet, passt! ) das alles aber auch in $_SERVER['REQUEST_URI'] stehen.
Warum also mit Parametern arbeiten, wenn alles was man braucht schon da ist?
Das bezeichne ich als umständlich. Du magst das anders sehen, ist Dein Projekt, daher kann ich Dir nur sagen, wie man es richtig macht, aber das muss Dich nicht zwingen es nicht anders umständlicher umzusetzen.
Zur Erklärung:
Dein Code aus #5 mal als Vorlage kopiert
kann ich auch kurz und knapp so schreiben, um alle URL-Varianten abzudecken ( %{SCRIPT_URL} der Einfachheit im flg. gegen index.php ausgetauscht ):
Wenn ich mich nun einfach auf den REQUEST_URI beziehe, kann ich das so umschreiben:
Nun kann man schon erahnen, dass in REQUEST_URI wohl der URI inkl. aller Parameter steckt und diese nicht extra übergeben werden muss.
Also kann ich auch schreiben:
...und das führt uns schon in die Nähe des Post #2:
Was Dein Prinzip allerdings nicht berücksichtigt - egal, welche der bisher dargestellten Varianten Du nutzt - ist, dass alle Anfragen auf die index.php umgeleitet werden. Wenn Du Pech hast, landen diese Anfragen auch auf der index.php:
Um das zu umgehen, gibt man dem Webserver über sogenannte RewriteConditions bestimmte Regelkonditionen mit auf den Weg.
Umgangssprachlich zusammengefasst, wären das folgende Konditionen: Gilt nur für nicht physikalisch existente Dateien oder Verzeichnisse.
Die Kondition als Code müssen wir pro Kriterium setzen, also einmal für die Dateien: RewriteCond %{REQUEST_FILENAME} !-f und einmal für die Verzeichnisse: RewriteCond %{REQUEST_FILENAME} !-d.
Wer jetzt aufgepasst hat, erkennt schnell, dass wir mit den beiden Zeilen und der letzten Version dieser Erklärung am Ende auf das Resultat aus #2 kommen:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [QSA,L]
Bedeutet also im Grunde: Ist das angeforderte Ziel über das Dateisystem nicht lückenlos abbildbar, springe in die index.php. Darin wären Deine Fälle ebenso abgedeckt, wie jeder andere, reagieren tust Du in der index.php sowieso, Du nutzt Du halt nur z.Zt. noch $_GET, anstatt $_SERVER['REQUEST_URI'].
Es kann sogar sein, dass auch alles automatisch in $_GET steht, das kann ich allerdings nur vermuten, da ich das kaum nutze.
Du musst es aber natürlich nicht richtig machen, ich denke nur, dass Du relativ schnell Deinen Kram anpassen musst, wenn Du es nicht so machst.
Damit machst Du Dein System viel zu unflexibel und nur bedingt skalierbar.
Scheint Dir aber egal zu sein, dann sehen wir uns halt wieder, wenn die URL Dich mit neuen Varianten verwöhnt...
Da gibt es dich sicher APIs zu den entsprechenden Technologien. Das macht dann mehr Sinn, als was mit JS zu fummeln.
Muss ich hier eine eigene Regel erstellen, wenn ich kein Verzeichnis habe? Oder kann man das in eine Regel packen?
Genau das macht #2. Lies das verlinkte Tutorial, dann hilft Dir der Code auch sicher weiter.
Beispiel:
Eingabe in Browser-Adressleiste: https://www.example.com/irgendwas
Mit einer .htaccess wie in #2, wird die Anfrage wie gewünscht auf die index.php geleitet, da es kein Verzeichnis irgendwas gibt.
Da ich nicht wissen kann, wo Du den Inhalt der Seite irgendwas am Ende abgelegt hast, gehe ich mal exemplarisch davon aus, dass es eine Verzeichnisstruktur /views/pages/ gibt, wo die entsprechenden Inhalte als .html-Dateien vorliegen.
Mit der Annahme könnte ich dann in der index.php nach beispielhaftem Prinzip einfach den Dateiinhalt laden und ausgeben:
// creating path to content
$sContentPath = __DIR__ . '/views/pages/' . trim( $_SERVER['REQUEST_URI'], '/' ) . '.html';
// load content and send to output channel if file exists
if ( file_exists($sContentPath) )
echo file_get_contents( $sContentPath );
Ist lt. meinem Verständnis genau das, was Du benötigst und die übliche Vorgehensweise. Ansonsten musst Du Dein Anliegen nochmal genauer erklären.
Und das steht alles im Link aus #2.
HTML-Seminar.de - mit Videos zum schnellen Lernen, wie man eine Website selbst erstellt.