Suche auf lima-city
-
in: php mysql rename
geschrieben von wzone
hackyourlife schrieb:
Und hackyourlife weist dich auf eine fehlerhafte Syntax des UPDATE-Befehls hin...
ups, ja, Danke, das habe ich ganz übersehen ...
... habe meinen Code oben entsprechend geändert / korrigiert
ohne SET feld = 'wert' weiss die Abfrage ja garnicht
welches Feld sie mit welchem Wert ersetzen soll
bei UPDATE mehrerer Felder in einer Abfrage dann wohl nach SET in Klammern, durch Komma getrennt
$sql = "UPDATE meinetabelle SET ( feld1 = '$neuwert1', feld2 = '$neuwert2', feld3 = '$neuwert4', ) WHERE bestellnummer = '$bestellid' ";
Zeilenumbruch (für übersichtliche Code-Gestaltung) sollte kein Problem sein,
ist manchmal sogar besser, um einen Fehler zu finden (Angabe der Zeile in Fehler-Meldung)
-
in: php mysql rename
geschrieben von wzone
Hallo
der Befehl heisst "UPDATE"
<?php $neuwert = 'neuer Eintrag in irgendwas-Feld'; $sql_update = "UPDATE meinetabelle SET irgendwas = '".$neuwert."' WHERE bestellnummer = '".$_GET['bestellid']."'"; if ( !mysql_query($sql_update) ) { echo "<br /> Fehler .... beim Update ... \n"; echo mysql_error(); exit; } else { echo "<br /> OK .... Update war erfolgreich \n"; } ?>
für schnelle Info zu MySQL Grundlagen empfehle ich w3schools auch mit kurzem Beispiel
EDIT: ... ok ... hackyourlife war (wiedermal) schneller :)
gut das er darauf hinweist, dass man User-Eingaben (GET / POST) immer escapen sollte
... also NICHT so wie hier, direkt in der SQL-Query die $_GET Variable einfügen
sondern wenn User-Eingaben, dann immer escapen (Sicherheit)
siehe ... mysql_real_escape_string() ... als neue Variable oder direkt im Query
$neuwert = mysql_real_escape_string($_GET['neu']); $sql = "UPDATE meinetabelle SET irgendwas = '".$neuwert."' WHERE bestellnummer = '". mysql_real_escape_string($_GET['bestellid']) ."'";
-
in: Wichtigste Suchmaschinen und deren Rank ?
geschrieben von wzone
Hallo
ich weiss zwar nicht wo die ihre Daten her haben,
aber eine Liste habe ich hier gefunden: http://www.seo-united.de/blog/internet/suchmaschinenverteilung-im-mai-2012.htm
oder auch hier: http://www.hirschmediasolution.de/suchmaschinen-marktanteile als Kuchen-Diagramm
wäre echt mal interesant, wo die Zahlen (ursprünglich) her kommen,
auch ist nicht ganz klar, ob damit "alle" Zugiffe gemeint sind, oder nur die auf die jeweils präsentierende Seite
beim ersten Link steht in Kommentar, die Daten stammen von webhits.de
aber das ist doch "nur" ein Counter (Statistik) Service, also sind da wohl zur Zugriffe auf diese Seite gemeint ?
kennt jemand eine Quelle / Statistik die Web-Weit (bzw. für Deutschland) gilt ?
-
in: Doctype XHTML definieren ?
geschrieben von wzone
@hackyourlife
also doch ... xml:lang="de"
ist ja auch irgendwie logisch,
denn die Sprache der TAGs selber zu definieren ist ja nicht sinnvoll
wie oben schon beschrieben ... es heisst <head> ... nicht <kopf> ... usw.
ich wed's aber trotzdem auch noch in META-TAGs mit "content-language" definieren
kann ja nicht schaden (hoffe ich mal) ...
@cyclobox
naja, das ist wohl Ansichtssache, Geschmäcker (Gewohnheiten) sind verschieden
bei mir genau das Gegenteil der Fall, mich nervt es,
wenn ich bei externen Links erst rechte Maustaste "in neuem Tab öffnen" klicken muss
ich habe gerne die Ausgangs-Seite noch offen, von der aus verlinkt wurde
vorallem wenn dort mehrere Links zum Thema sind, oder ein Suchergebnis
dann kann ich "bequem" wieder in den (noch offenen) Tab wechseln und
muss nicht x mal Zurück oder gar die Suche neu starten
besonders bei Suchergebnis ... würde ich die Links im gleichen Tabs öffnen,
und auf der geöffneten Seite auch noch x mal rum-klicken, dann müsste ich
um zum Suchergebnis zurück zu finden, auch x mal auf "Zurück" klicken
aber mit "_blank" (neuer Tabs) mache ich einfach den (neuen) Tab wieder zu
und habe das Suchergebnis noch im anderen, ohne x mal neu Laden zu müssen.
ich finde es eher als Benutzer-Gängeleien,
wenn Links zu externen Seiten im gleichen Tabs geladen werden
Beispiel:
Liste mit 5 (externe) Links zu verschiedenen Seiten zu einem Thema
+ ohne _blank .... muss ich jedesmal Zurück um die Liste wieder zu finden
+ mit _blank ... schliesse ich den neuen TAB und habe die Liste noch verfügbar
so kann ich alle Links nacheinander anschauen,
und brauche weniger Klicks (nur 1x Tabs schließen)
als wenn ich auf der Seite z.B. 3 Unterseiten angeschaut habe,
dann müsste ich 4x auf Zurück klicken, um wieder zu den Links zu kommen
... aber wie gesagt, Geschmackssache .. ne Umfrage dazu wäre mal interessant
--> Wie bevorzugen Sie Links (zu externen Seiten)
a) öffnen im gleichen TABs (target='_self')
b) öffnen als neuer TABs (target='_blank')
Links innerhalb einer Seite sollten natürlich auch im gleichen TABs bleiben,
mir geht es mit dem _blank nur um Links, die auf "fremde" Seiten verweisen
.. aber ich hoffe das war schon klar :)
-
in: Doctype XHTML definieren ?
geschrieben von wzone
hackyourlife schrieb:
Beschreibung des lang-Attributs:xml:lang Specifies the language of the element's content (for XHTML documents)
sorry, ich kapiers noch immer nicht,
... the language of the element's content ...
für mich klingt ... of the element's content ... nach Inhalt der TAGs selber also head, input, strong, etc.
...oder sind damit die "für User lesbaren" Inhalte gemeint
also BSP:
???<strong>bin ich jetzt the element's content ?</strong>
also wenn ich eine Seite mit deutsch-sprachigen Inhalten erstellen will
muss (sollte) ich dann
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de">
machen ?
zu Version 1.0 oder 1.1
Um mit XHTML 1.1 regelkonform zu arbeiten sollte eine Webseite mit ".xhtml" als Dateiendung vorhanden sein.
... dann werde ich wohl eher XHTML 1.0 nehemn, denn
a) meie Dateien sind entweder .php oder .htm (und nicht .xhtml)
b) anscheinend haben manche Browser Probleme bei Auslieferung als "application/xhtml+xml"
und habe ich das richtig gelesen:
Style Attribute Module = Deprecated
d.h. ja ... sowas wie <div style="text-align:center;"> wäre veraltet (Deprecated) in XHTML 1.1
... noch ein Grund "gegen" XHTML 1.1, denn für dynamische Styles verwende ich sowas gerne
... will mich vielleicht doch noch jemand zu XHTML 1.1 bekehren ?? ... Gründe ?
Danke!
-
in: Doctype XHTML definieren ?
geschrieben von wzone
Vielen Dank für die Antworten, das hilft mir schonmal gut weiter
noch die Frage nach der Version offen: XHTML 1.0 oder XHTML 1.1 .
ist nicht sooo wichtig, aber hier nochmal die Fragen
... welche Version sollte man benutzen (bei Transitional) ? ( ... und warum ? )
... was ist der Unterschied ? ( ... andere Syntax in TAGs ? )
habe leider keinen "Vergleich" gefunden, ausser paar Änderungen gegenüber XHTML 1.0 Strict
1. Von jedem Element wurde das lang-Attribut zugunsten des xml:lang-Attributs (gemäß Definition in [XHTMLMOD]) entfernt.
2. Von den Elementen a und map wurde das name-Attribut zugunsten des id-Attributs (gemäß Definition in [XHTMLMOD]) entfernt.
3. Die ruby-Elementsammlung (gemäß Definition in [RUBY]) wurde hinzugefügt.
...
aber ich will ja Transitional ...
und nochmal zum <html> Tag .. da findet man auch oft mit xml:lang=...
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
aber macht das Sinn? ... XML-Sprache = Englisch ... das ist doch immer so ?
klar, es heisst ja auch <head> und nicht <kopf>
oder auch <input ... /> und nicht <eingabe ... />
also wäre ....xml:lang="de"> (oder jede andere Sprache) ja Quatsch
die Sprache der Seite (Inhalte) definiert man doch in einem META-TAG
<meta http-equiv="content-language" content="de" />
aber ...
Von jedem Element wurde das lang-Attribut zugunsten des xml:lang-Attributs ... entfernt.
???
hat wohl nichts mit "content-language" zu tun, aber wozu ein xml:lang-Attribut ????
xml ist doch quasi immer "Englisch" ... oder? .. hab ich da was falsch verstanden?
? :oO -
in: Login system
geschrieben von wzone
bevor die Frage kommt .... hier schonmal die Antwort
um die DEMO-Userdaten einzutragen
kannst Du auch einen SQL-Befehl nutzen:
INSERT INTO `login` ( `id` , `username` , `password` , `status` ) VALUES ( '1', 'test', '098f6bcd4621d373cade4e832627b4f6', 'aktiv' )
bzw ohne 'status' Feld (also nur wie aus dem Tutorial:
INSERT INTO `login` ( `id` , `username` , `password` ) VALUES ( '1', 'test', '098f6bcd4621d373cade4e832627b4f6' )
damit funktioniert der Demo-Login mit Username = test und Passwort = test
Aber zum produktiven Einsatz solltest Du diesen test-User wieder löschen
oder zumindest ein anderes (sicheres) Passwort geben !!
-
in: Login system
geschrieben von wzone
Hast Du überhaupt eine Tabelle in der Datenbank angelegt ?
also gehe in PhpMyAdmin ... mysql.lima-city.de und ...
- logge Dich dort ein
- wähle die Datenbank aus
- erstelle eine neue Tabelle mit dem Name login
- erstelle in der Tabelle ein Feld: id mit Datentyp int mit Länge 8
(und als auto_increment (AI) und als primary KEY)
-erstelle in der Tabelle ein Feld: username mit Datentyp varchar mit Länge 150
-erstelle in der Tabelle ein Feld: passwort mit Datentyp varchar mit Länge 32
Du kannst auch noch weitere Felder anlegen,
z.B. status (aktiv / inaktiv) als "Schalter" ob User schon eMail bestätigt hat, etc.
oder datum (Timestamp oder DATETIME) seit wann der User angemeldet ist
usw. ...
oder Tabelle erstellen als SQL Befehl in PhpMyAdmin (hier mit BSP: status)
Der SQL Befehl :
CREATE TABLE IF NOT EXISTS `login` ( `id` int(8) unsigned NOT NULL AUTO_INCREMENT, `username` varchar(150) NOT NULL, `password` varchar(32) NOT NULL, `status` varchar(20) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
INFO:
die Zahlen in Klammern (8), (150), (32), .. geben an, wieviele Zeichen der Wert maximal haben darf
also `id` int(8) heisst nur Ganz-Zahlen (int) mit max. 8 Ziffern
... unsigned heisst nur positive Zahlen (kein Minus)
oder Du machst das Erstellen der Tabelle per PHP-Script
.. dazu den SQL Befehl (s.o.) in eine Variable z.B: $sql
und damit dann ein mysql_query($sql); ausführen
... -
in: Doctype XHTML definieren ?
geschrieben von wzone
Hallo
wie definiere ich einen .html Detei als XHTML (Transitional)
(Transitional deshalb, damit auch Links mit target="_blank" valide sind)
- muss <?xml version= ...> sein ? ... wozu ?
- muss <html xmlns= ....> sein ? ... wozu ?
- Version XHTML 1.0 oder XHTML 1.1
genügt das so:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
oder muss (sollte) es mit <?xml version="1.0" ?> sein?
<?xml version="1.0" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<? ist doch der Short-OpenTag für PHP-Code ????
was macht der denn da .... es geht doch (nur) um (X)HTML ?
und muss man im <html> Tag auch die w3.org url definieren ?? ... wozu ?
<html xmlns="http://www.w3.org/1999/xhtml">
oder genügt nicht einfach nur <html>
und nimmt man besser XHTML 1.0 oder XHTML 1.1 .... was ist der Unterschied ?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
muss dann oben drüber:
<?xml version="1.1" ?>
oder genügt es auch, direkt mit <!DOCTYPE ... anfangen?
Danke!
-
in: Login system
geschrieben von wzone
Hallo
mögliche Fehler-Quellen:
a) hast Du die eichtigen Zugangsdaten verwendet ?
... siehe Verwaltung / Addons / Datenbank-Zugang
als Host nicht "localhost" sondern den Host aus Datenbank-Zugang nehmen:
(wie fuhnefreak ja schon gesagt hat)
$db_host = 'mysql.lima-city.de'; $db_user = 'DEIN_MySQL_USERNAME'; $db_pass = 'DEIN_MySQL_PASSWORT'; $con = mysql_connect($db_host , $db_user , $db_pass); if (!$con) { echo "<br />Fehler ... keine Datenbank Verbindung <br />\n"; echo mysql_error(); exit; }
b) hast Du die richtige Datenbank ausgewählt ?
$db_name = 'NAME_DER_DATENBANK'; $sel = mysql_select_db($db_name); if (!$sel) { echo "<br />Fehler ... kein Zugriff auf die Datenbank <br />\n"; echo mysql_error(); exit; }
c) hast Du eine Tabelle angelegt ??? ... Name der Tabelle !?
(in PhpMyAdmin oder per Script mit CREATE TABLE ...) ?
.. mit den passenden Spalten-Namen und deren Daten-Typen ???
ohne Tabelle in der Datenbank kann man auch nichts eintragen / auslesen
lass Dir mal mysql_error(); ausgeben und sag uns dann, was die Fehlermeldung sagt?
und eventuell auch den PHP-Code hier posten (aber Dein Passwort als ****** machen!)
Mit mehr Infos kann Dir bestimmt besser geholfen werden ...
-
in: Daten als float speichern
geschrieben von wzone
bist Du sicher, dass Du in der MySQL-Tabelle den richtigen Datentyp hast
(int / float)
bist Du sicher, dass Du vor dem Eintragen nicht die Float-Zahl rundest
wie round() oder floor() oder ceil()
bist Du Sicher, dass Der Dezimal-Trenner "richtig" ist <---- mein Tipp hier Fehler suchen
also in PHP ist es Standard . (Punkt) nicht , (Komma)
ist Dein Float-Wert 5.34 oder 5,34 (Punkt oder Komma) ????
prüfe mal die Settings:
$locale_info = localeconv(); print "<pre>\n"; print_r($locale_info); print "</pre>\n";
und siehe bei [decimal_point] ob Punkt oder Komma
Wenn Du bei , (Komma) als Dezimal-Trenner bleiben willst,
dann kannst Du evtl. mit setlocale() was machen (LC_NUMERIC auf de_DE)
aber ob (und wie) man das auch für MySQL einstellen kann, ist auch mir nicht klar
daher empfehle ich bei Float-Werten den Dezimal-Trenner bei . (Punkt) zu lassen
zum Umwandeln kannst Du ja deine Werte als String behandeln
und jeweils das , (Komma) durch einen . (Punkt) ersetzen
Komma durch Punkt ersetzen:
$wert = str_replace(',' , '.' , $wert);
dann wird 5,34 zu 5.34 und dann klappt's auch bei ... als Float in MySQL einzutragen
nur sollte dann im Ausgangs-Wert auch kein tausender-Trennzeichen drin sein
:)
-
in: Durchgezogene Linie
geschrieben von wzone
du musst garnicht min-height machen, einfaches height genügt wohl auch
.gb_eintrag_right { float:right; height: 320px; width:30%; border-left:1px dotted #c0c0c0; margin: 0px 0px 0px 0px; padding: 6px 7px 6px 6px; background-color:#ECFFF1; }
Aber wenn der linke Teil sowieso immer der "höhere" ist,
dann kannst Du doch auch gleich an der linken Seite (den Rahmen rechts) machen
somit musst man keine Höhen-Angabe machen (wäre flexibel bei Änderung)
.gb_eintrag_left { float:left; width:70%; border-right:1px dotted #c0c0c0; margin: 0px 0px 0px 0px; padding: 6px 6px 6px 7px; background-color:#ECFFF1; }
PS: margin würde ich auch immer definieren, weil manche Browser sonst selber einen setzen
-
in: Enter your phone number here
geschrieben von wzone
mit
... onclick="logClick(this.id)" ....
übergibst Du die aktuelle id an die Funktion
Du kannst aber auch direkt einen String (eine ID) übergeben
... onclick="logClick('ich werde übergeben, ob string oder zahl')" ...
was da übergeben wird, kommt in der Funktion als Variable link_id an
und nach senden der Anfrage kommt es in log_click.php als $_GET['id'] an
ebenso die anderen Parameter aus dem GET-String
In der JS Funktion wird dann ein HTTP-GET-Request erzeugt (AJAX)
und die übergebene Variable (link_id) sowie timestamp, etc. wird im GET-String eingefügt
mit
var logscript = 'log_click.php';
definierst Du einfach den Dateiname (evtl. mit Pfad)
... also die Datei, an welche die GET Anfrage gesendet werden soll
das:
xmlhttp.open("GET",logscript+"?id="+link_id+"&ms="+milli_sec,true);
wird (durch Austausch der Variablen durch Klartext) quasi zu
xmlhttp.open("GET","log_click.php?id=banner_123&ms=1234567890",true);
und durch die Zeile:
xmlhttp.send();
passiert dann der eigentliche Aufruf (die URL mit GET Parameter senden)
dann passiert bei der log_click.php genau das gleiche, wass bei Klick auf einen Link passieren würde
<a href="log_click.php?id=banner_123&ms=1234567890">KLICK MICH</a>
halt eine GET-Anfrage
:grins: ... hackyourlife war schneller :) .. naja doppelt hält besser :)
-
in: Durchgezogene Linie
geschrieben von wzone
um alle Eingabefelder ein DIV mit einee CSS-Klasse, für die ein Rahmen definiert ist
<div class="eingabefelder">
... (hier stehen die Eingabefelder) ...
</div>
CSS
.eingabefelder { border-right: 1px solid #000000; }
mehr zu CSS Rahmen siehe u.a. HIER: http://de.selfhtml.org/css/eigenschaften/rahmen.htm
oder Link von trueweb
oder bei den Smilies den Rahmen auf der linken Seite (border-left) definieren
-
in: Enter your phone number here
geschrieben von wzone
Hier noch eine AJAX Lösung
wenn Du mehrere Banner hast, um bestimmte Banner-Klicks loggen willst,
dann musst Du jedem Banner eine eindeutige ID (oder Name) geben,
damit klar ist, welcher Banner angeklickt wurde (hier BSP: banner_123)
entweder baust Du den onCkick Event direkt in den <script> TAG ein
<script type="text/javascript" onclick="logClick('banner_123')" src= ... </script>
ich weiss aber nicht, ob das in einem <script> TAG so gut ist :O
oder du setzt ein anderen TAG (z.B: <span> TAG) mit der id drum herum
<span id="banner_123" onclick="logClick(this.id)" /> <script type="text/javascript" src= ... </script> </span>
wichtig ist halt, dass jeder Banner auch seine eigene id hat
damit Du den Klick auch dem Banner zuordnen kannst
der HTML-Code:
<html> <head> <title>Homepage</title> <script type="text/javascript"> function logClick(link_id) { var logscript = 'log_click.php'; var milli_sec = new Date().valueOf(); // ---- code for IE7+, Firefox, Chrome, Opera, Safari if (window.XMLHttpRequest) { xmlhttp=new XMLHttpRequest(); } // ---- code for IE6, IE5 else { xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } /* ---- write responseText into id="ergebnis" ---- xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("ergebnis").innerHTML=xmlhttp.responseText; } } ---- */ xmlhttp.open("GET",logscript+"?id="+link_id+"&ms="+milli_sec,true); xmlhttp.send(); } </script> </head> <body> <div id="content"> <br /> <span id="banner_123" onclick="logClick(this.id)" /> <!-- Start Banner Code --> <script type="text/javascript" src= ... </script> <!-- Ende Banner Code --> </span> <br /> </div> <div id="ergebnis"></div> </body> </html>
Erklärung zu JS / AJAX:
Durch einen Klick auf den TAG mit dem onClick-Event
werden GET Werte an eine PHP-Datei (hier: og_click.php) übergeben
diese GET-Werte (Banner-ID, Timestamp in MS, ... ) kannst Du dann loggen / speichern
in der Datei: var logscript = 'log_click.php';
kannst Du dann die Klicks erfassen und loggen / speichern (in MySQL-Tabelle)
als Parameter im onClick-Event übergibst Du eine ID (oder einen Namen)
um den Banner, der geklickt wurde, eindeutig zu identifizieren (welcher)
das JavaScript fügt als GET-Wert noch den unix Timestamp (in Millisekunden) dazu
Du kannst nehr beliebig mehr GET-Werte einfügen (Referer, User-IP, etc...)
der Timestamp ist wichtig, damit jeder Klick "neu" geloggt werden kann
weil ohne den würde der vorherige Klick noch im Cache stecken,
und somit würde kein neuer Request "gesendet" werden ... xmlhttp.send()
eine User-IP wäre evtl Sinnvoll, wenn man Mehrfach-Klicks von Unique-Klicks unterscheiden will
die könnte man per PHP innerhalb des Javascript holen (wenn die Seite eine .php-Seite ist)
var logscript = 'log_click.php'; var milli_sec = new Date().valueOf(); var user_ip = '<?php echo $_SERVER['REMOTE_ADDR']; ?>';
und dann als GET Parameter für den Aufruf anfügen
xmlhttp.open("GET",logscript+"?id="+link_id+"&ms="+milli_sec+"&userip="+user_ip,true);
somit würde in der log_click.php auch ankommen: $_GET['userip'] (für IP-Sperre, etc.)
... wie du das "speichern in MySQL" machst, ist hoffentlich klar :) ... INSERT INTO ...
... das Cache-Problem bei AJAX Requests kann man evtl. auch anders lösen,
z.B. mit header Cache-Control o.ä. ... oder halt immer Timestamp mit übergeben
PS
den Teil hier:
/* ---- write responseText into id="ergebnis" ---- xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("ergebnis").innerHTML=xmlhttp.responseText; } } ---- */
kannst Du auch weglassen, ist ehh aus-kommentiert
und soll nur zeigen, dass man den Inhalt, den log_click.php ausgibt
auch wieder auf der Seite (von dem der Klick aus ging) anzeigen lassen kann
(also in ein bestimmtes DIV rein-schreiben, hier: <div id="ergebnis>...</div>)
so eine Ausgabe macht hier aber wenig Sinn ... da ja "nur" geloggt" werden soll
ist aber nützlich für z.B. bei Votes abgeben und Ergebnis gleich anzeigen
... aber das ist ein anderes Thema
-
in: JavaScript für Suchmaschinen ändern
geschrieben von wzone
Hallo
ich weiss nicht, ob es (viel) besser wäre für SEO (Links folgen und Seiten Indexierung)
wenn man die dynamischen Inhalte ohne JavaScript dafür nur mit PHP läd / ausgibt.
So kannst du dynamische Seiten quasi als "reines HTML" ohne Javascript haben
(den HTML-Code vor Übergabe an Browser dynamisch per PHP zusammen-bauen)
somit sind die Links und Inhalte als "statisches HTML" (im Quellcode) vorhanden
also können Spider/Bots (Google) diese Links auch "leichter" lesen / finden
Auch wenn Google durchaus mit JS-Erzeugte Links / Inhalte erkennen kann,
so gibt es ja vielleicht auch andere Bots/Spider, die nicht so gut mit JS können
Nachteil mit PHP (ohne JS) ist, dass für jede Aktion die ganze Seite im Browser
neu geladen werden muss (in PHP GET / POST /... aufnehmen und verarbeiten)
Sehr oft wird eine Kombination aus aus beiden Möglichkeiten verwendet
der Großteil ist durch PHP/MySQL erstellt und nur besondere "Features" als JS / AJAX
Man muss halt abwägen, was einem wichtiger ist, bzw. je nach Anforderung machen:
- der Vorteil von JS = laden dynamischer Inhalte ohne Browser-Reload ausgeben
- der Vorteil von PHP = dynamische Inhalte als statischen HTML-Code ausgeben
zum Beispiel:
mit PHP: Layout, Hauptmenü und Artikel (Texte, Bilder, Links) als statisches HTML
mit JS: SlideShow, Navigation Drop-Down, (News-Ticker) und andere Kleinigkeiten
Also ein guter Mix aus beiden Möglichkeiten dynamische Inhalte auszugeben.
und je nachdem welche Funktion ein Seiten-Element hat, die "passende" Variante finden,
oft kann man auch innerhalb eines Seiten-Elements eine Kombination machen
BSP: SlideShow (ohne Reload: JS) mit Seiten / Kategorien (Seite wechseln: PHP)
trueweb schrieb:
Der weitere Vorteil ist, dass deine Besucher den Link austauschen können, in die Favoriten setzen können etc. und der dynamische Content erscheint.
naja, ich fände es schon als Vorteil,
wenn User sich Favoriten setzen können, gegenseitig den Link empfehlen, etc.
kommt natürlich auch auf die Art der dynamischen Inhalte an,
also sowas wie z.B.
kann (soll) "sichtbar / statisch" seinsuche.php?q=Grillkohle
Aber sowas wie z.B.
macht weniger Sinnuser.php?id=123&auth=Z46GfR49D&s=profil
wie so oft ... die Mischung machts :)
EDIT:
noch ein Hinweis: ... schlag Dir das aus dem Kopf mit "extra-Seite nur für Suchmaschinen" zu machen
das könnten Dir die Suchmaschinen echt übel nehmen, wenn sie merken, die werden ve#a#scht (#=r)
und auch sowas wie weißer Text auf weißem Hintergrund (nur für SuMas sichtbar) ... NICHT machen !!!
... Ehrlich währt am längsten ... Lügen haben kurze Beine ... versuch nicht "Google" zu ve#a#schen ;)
lieber eine (!) einzige, dafür wirklich eine "gute" Seite machen, nicht zuviel und nicht zuwenig