Also, bitte verzeiht mir erstmal den unaussagekräftigen Threadtitel, aber da ich gleich mehrere, ziemlich unterschiedliche Fragen zu PHP habe, ist mir nichts ausschlaggebenderes eingefallen. Aber nun zum Thema:
1.
Ich habe mir am Wochende ein PHP-Tutorial einmal durchgelesen, und mich dann mal mit einem Counter für meine Webseite beschäftigt. Als dann jedoch nach einer geschlagenen Stunde immer noch Fehlermeldungen kamen (ich benutzte für die Tests jeweils XAMPP) begann ich nochmals neu, wollte mich aber erstmals mit wirklich ganz simplen Beispielen versuchen. Selbst bei einer einfachen if-Abfrage wird permanent ein "Parse error" angezeigt. Um zu sehen, ob das an mir liegt, habe ich dann ein Codebeispiel von der Tutorialseite kopiert:
Und immer erscheint (obwohl der Code aus dem Tutorial kopiert wurde.):
"Parse error: parse error, expecting `','' or `';'' in Capachefriends\xampp\htdocs\php\uebung.php on line 14"
Mache ich irgendwie generell was falsch oder stimmt mit dem Code etwas nicht?
Btw. Auch ich gleich "if($vorname == $nachname)" benutze funktioniert das Beispiel nicht.
2.
Was GET genau ist, und wie es funktioniert (bzw. funktionieren sollte in meinem Fall) weiss ich, aber mir ist noch nicht ganz klar, wie man es anwenden muss. Wie und wann kann ich in einer URL eine Variable anhängen? Muss das am Anfang des Quellcodes stehen oder an die Dateiendung angehängt werden?
3.
Würden (sehr gute) PHP Kenntnisse für ein komplettes Forum oder ein Browsergame ausreichen?
1. Bei mir läuft es mit PHP Version 4.3.9 ohne Parse-Error einwandfrei durch. Welche PHP Version hast du?
Das in eine Datei speichern und im Browser aufrufen:
2. GET Variablen kannst du mit dem Befehl $_GET['Variablenname'] ansprechen und abrufen. GET Variablen lassen sich z.B. in Links oder beim Abschicken eines Formulars anwenden.
Mit <form method="get"> werden z.B. alle Daten des Formulars mit GET übergeben, hier aber aufpassen, alles aus dem Formular wird an die URL angehängt. Diese darf nicht länger als 2KB (erschießt mich wenn es nicht stimmt) groß sein, ansonsten wird sie abgeschnitten, deswegen verwendet man in Formularen normalerweise "post" und fügt in der "action" einen GET Parameter hinzu.
In der blabla.php Datei, kannst du jetzt den Wert von GETVariablenname mit $_GET["GETVariablenname"] ansprechen und abrufen.
Das geht auch bei Links.
3. Ja, allerdings wird das sehr umfangreich und kompliziert. Ein Zusammenspiel mehrerer Programmierungsprachen erleichtert dir das Leben enorm und bietet dir wesentlich mehr Möglichkeiten.
1. Bei mir läuft es mit PHP Version 4.3.9 ohne Parse-Error einwandfrei durch. Welche PHP Version hast du?
...
Bei mir läuft Version 5.0.4. Ich teste die Code praktisch immer mit Apaches XAMPP, welcher wohl anscheinend irgend ein Problem mit den Satzzeichen hat...
Zitat von dread
2. GET Variablen kannst du mit dem Befehl $_GET['Variablenname'] ansprechen und abrufen. GET Variablen lassen sich z.B. in Links oder beim Abschicken eines Formulars anwenden.
Mit <form method="get"> werden z.B. alle Daten des Formulars mit GET übergeben, hier aber aufpassen, alles aus dem Formular wird an die URL angehängt. Diese darf nicht länger als 2KB (erschießt mich wenn es nicht stimmt) groß sein, ansonsten wird sie abgeschnitten, deswegen verwendet man in Formularen normalerweise "post" und fügt in der "action" einen GET Parameter hinzu.
In der blabla.php Datei, kannst du jetzt den Wert von GETVariablenname mit $_GET["GETVariablenname"] ansprechen und abrufen.
Das geht auch bei Links.
In der blabla.php Datei, kannst du jetzt den Wert von GETVariablenname mit $_GET["GETVariablenname"] ansprechen und abrufen.
Das geht auch bei Links.
...
Ok, vielen Dank für deine Erklärung dread, hat mir echt weitergeholfen . Bis anhin habe ich einfach das hinzufügen der GET-Variablen in ein Link nicht verstanden. Jetzt ist aber soweit alles klar.
Zitat von dadie
...
Auch vielen Dank an dich dadie, dein Code funktioniert. So wie es aussieht kommt der Parser wohl irgendwie nicht mit den " klar. Mit den ' erscheint dann wie eigentlich vorgesehen "Der Vorname und der Nachname ist nicht gleich".
Kennt vielleicht jemand noch zufällig die (standart) Tastenkombination für ', denn irgendwie kriege ich dieses Satzzeichen nicht hin ?
Was mich jetzt noch interessiert:
Liegt das speziell an Version 5.0.4 oder darf ich allgemein keine " verwenden?
Denn in den meisten Tutorials, die ich bis jetzt gesehen habe, wird eigentlich im allgemeinen immer " verwendet.
Manche Kapitel enthalten Code-Beispiele. Bitte versucht nicht, diese zu kopieren. Wenn ihr dies versucht und das Kopierte in eure PHP-Datei speichert, wird das Script sagen, dass es ein Parse Error in Zeile 2 hat. Das liegt daran, dass ihr nicht nur den Programmcode kopiert, sondern auch unsichtbare Steuerzeichen, die beim Kopieren dann PHP nicht verarbeiten kann. Abgesehen davon; ihr lernt nicht PHP, indem ihr Skripte kopiert, das kann ja jeder. Ihr sollt die Skripte selbst schreiben, dann kriegt ihr auch irgendwann ein Gefühl wie man PHP Skripte schreibt.
...
Dieser Text steht im Tutorial, wahrscheinlich wirds daran liegen.(Einführung, 5.)
Imo solltest du sogar " verwenden. Denn nur bei diesen Anführungszeichen werden Variablen, die direkt in den String geschrieben werden, auch ausgewertet:
Bei ' würde das nicht gehen. Ausserdem finde ich die " viel schöner Deswegen verwenden es auch die meisten Tutorials
Das es nicht funktioniert hat, liegt wohl an dem, was Mirao oben gesagt hat -unsichtabre Steuerzeichen.
(Das Zeichen ' kannst du mit Shift und der Raute (#) erzeugen.)
Imo solltest du sogar " verwenden. Denn nur bei diesen Anführungszeichen werden Variablen, die direkt in den String geschrieben werden, auch ausgewertet:
Bei ' würde das nicht gehen. Ausserdem finde ich die " viel schöner Deswegen verwenden es auch die meisten Tutorials
Das es nicht funktioniert hat, liegt wohl an dem, was Mirao oben gesagt hat -unsichtabre Steuerzeichen.
(Das Zeichen ' kannst du mit Shift und der Raute (#) erzeugen.)
...
"" hat einen Grössen nachteil
Soweit ich weiss sucht der Parser "" nach Variablen ab was das dokument unnötig aufhält.
Wenn keine Funkion in dem echo ist oder eine Variable sollte man immer ' ' verwenden
zumindest habe ich das so damals gelernt
edit:
Und das 4 Leerzeichen System nicht vergessen ^^
(# = Leerzeichen)
ich hoffe das du das verstehst ^^,
Soweit ich weiss sucht der Parser "" nach Variablen ab was das dokument unnötig aufhält.
Wenn keine Funkion in dem echo ist oder eine Variable sollte man immer ' ' verwenden
zumindest habe ich das so damals gelernt :D
...
Der Geschwindigkeitsverlust ist aber in der Regel unerheblich - wenn man nicht gerade eine Software schreibt, die den Server stark belastet. Und dann würde es noch eine ganze Reihe anderer Sachen geben, über die man seinen Code optimieren kann...
Zitat
edit:
Und das 4 Leerzeichen System nicht vergessen ^^
(# = Leerzeichen)
ich hoffe das du das verstehst ^^,
...
Was du da benutzt ist ein Einrückstil, den man den Allman-Stil nennt. Daß man vier Leerzeichen verwendet ist üblich, aber nicht nötig - ich persönlich rücke beispielsweise immer mit einem Zeichen ein.
...Was du da benutzt ist ein Einrückstil, den man den Allman-Stil nennt. Daß man vier Leerzeichen verwendet ist üblich, aber nicht nötig - ich persönlich rücke beispielsweise immer mit einem Zeichen ein.
...
Ich 2 Zeichen.
Außerdem hab ich noch diverse Eigenheiten. ich glaubb ich praktizier einen Mix aus mehreren Stilen:
So schaut meine Syntax im Allgemeinen aus.
Variablen schreib ich aus Angewohnheit immer klein. So braucht man nicht nachschaun wie man nu was geschrieben hat.
Ich setze alle Strings in Quotes. In Accents setze ich Strings eigentlich nur wenn ich keine Lust darauf hab Quotes in HTML zu escapen, oder innerhalb von MySQL-Queries weil der SQL-Befehl als Ganzes zumeist schon als String in Quotes definiert wurde.
Dann klatsch ich die öffnende geschweifte Klammer immer direkt hinter das Statement oder die Schleife.
Ich weiß das das ziemlich untypisch ist aber mir steckts so nu schon im Blut, ich bekomms nimmer weg.
Und ich rücke immer mit 2 Spaces ein.
Der Vorteil an Quotes ist zwar das man in ihnen eine Variable ausgeben lassen kann ohne es außerhalb des Stringbereichs packen zu müssen, aber ich habs mir irgendwie angewohnt es doch so zu machen. Also:
echo "Text ".$variable." noch mehr Text.";
So machs ichs. Und so könnte ichs machen obwohls leichter ist:
echo "Text $variable noch mehr Text.";
Nujo...
Was mir auffällt ist, das ich Tabris' Scripte an seiner "Handschrift", also an seiner Strukturierung der Syntax und "Schreibweisen" ziemlich sicher erkennen würde.
Ich habe an Tab's Scripten, die er für Squarenet geschrieben hat, PHP gelernt. Ich würde seinen Stil mit hoher Warscheinlichkeit wiedererkennen.
Daran kann man sehen wie viel Persönlichkeit und Eigenheiten PHP-Syntax haben kann.
Ich finds faszinierend.
Ich 2 Zeichen.
Außerdem hab ich noch diverse Eigenheiten. ich glaubb ich praktizier einen Mix aus mehreren Stilen:
...
Sieht für mich wie 1TBS aus, nur eben mit weniger Einrückung.
BTW, das mit den externen Variablen mach' ich auch so. So muß man keine Sonderfälle machen, wenn man mal eine Arrayzelle oder einen Funktionsaufruf statt einer normalen Variable verwendet.
Bei PHP hab' ich sowieso komische Angewohnheiten: Funktionen schreibe ich abwechselnd in camelCase, PascalCase oder ganz klein. Variablen schreibe ich meist klein - manchmal aber auch nicht. Wenn irgendwo ein Bool reinsoll wird die Variable mit b_ geprefixt, das mache ich aber bei keinem anderen Typ.
Und aus irgendeinem Grund verschiebe ich alle Funktionen ans Ende des Skripts und trenne sie durch eine Zeile voller /////////////// ab.
Ich denke, meine PHP-Skripte sind auch ziemlich markant, allein schon wegen der Sache mit den Funktionen.
@Dingsi: Ich wandle auch immer alles in Allman um. 1TBS finde ich verwirrend.