Startschwierigkeit mit php

Irgendwelche Probleme mit XAMPP für Windows? Dann ist hier genau der richtige Ort um nachzufragen.

Startschwierigkeit mit php

Postby Kuja23 » 08. June 2010 22:53

Hallo an die Runde!
Vorweg, ich bin nicht gerade bewandert auf dem Thema MYSQL und PHP, versuche mich erst gerade einzuarbeiten, zwecks Präsentation für das Studium, welches als dynamische Webseite konzipiert werden soll.
Mit HTML klappt soweit alles, nun bin ich also beim php...

Die Ausführung der index.php im Ordner xampp/htdocs funktioniert nicht - ich kann mir nur den Quelltext via Editor anschauen. Eigene php-Dateien darf ich auch nicht kreieren, da meckerts rum und will mir stattdessen eine Textdatei erschaffen. Habe ich bei der installation etwas falsch gemacht??

Auf der Homepage von xampp habe ich des Weiteren gelesen, dass alle Dateien in den xampp/htdocs Ordner verschoben werden müssen. Wieso? Für die endgültige Internetpräsi haben wir einen UNIX-Server, der ja auch anders benannt wird. Greift der nur auf die Datei zu (die sich dann wo auch immer befindet). Muss ich also irgendwas miteinander verknüpfen?

Wie starte ich denn die Konsole schlussendlich, in welche man ja diese ganzen Befehle hineintippen kann (zum Beispiel htpasswd, um eine PAsswortdatei anzulegen)?

Ich bin echt völlig ratlos und hoffe mir kann jemand ob meiner Doofheit weiter helfen.

Danke und bis dahin
Kuja
Kuja23
 
Posts: 3
Joined: 08. June 2010 21:06

Re: Startschwierigkeit mit php

Postby Altrea » 08. June 2010 23:30

Hallo,

Okay, dann wollen wir mal:

Kuja23 wrote:Die Ausführung der index.php im Ordner xampp/htdocs funktioniert nicht - ich kann mir nur den Quelltext via Editor anschauen.

Was bedeutet "funktioniert nicht"? Eine detailliertere Beschreibung wäre aufgrund der vielen möglichen Fehlerursachen hilfreich.
Notwendige Informationen:
Wie versuchst du genau auf die Datei zuzugreifen (Was steht in der Addresszeile des Browsers),
Läuft dein Apache? (wird ein grünes "running" Label neben Apache im XCP (XAMPP Control Panel) angezeigt?
Gibt es irgendwelche Fehlermeldungen? Wenn ja bitte mit genauer Fehlermeldung berichten

Kuja23 wrote:Eigene php-Dateien darf ich auch nicht kreieren, da meckerts rum und will mir stattdessen eine Textdatei erschaffen.

Wer verbietet es dir? Wer meckert rum? Worüber versuchst du php-Dateien zu erstellen?

Kuja23 wrote:Auf der Homepage von xampp habe ich des Weiteren gelesen, dass alle Dateien in den xampp/htdocs Ordner verschoben werden müssen. Wieso?

Das liegt daran, dass das das Standardwurzelverzeichnis (DocumentRoot) ist in dem der Apache Webserver nach den Dateien sucht. Du kannst darin natürlich auch Unterordner erstellen. Nur Verzeichnisebenen darüber und daneben geht ohne Anpassung der Konfiguration nicht.

Kuja23 wrote:Für die endgültige Internetpräsi haben wir einen UNIX-Server, der ja auch anders benannt wird. Greift der nur auf die Datei zu (die sich dann wo auch immer befindet). Muss ich also irgendwas miteinander verknüpfen?

In der Regel ist das absolut Problemlos, solange du deine Dateien auch dementsprechend portabel erstellst. So solltest du auf absolute Pfade bei Verlinkungen verzichten, also relative Pfade verwenden.

Kuja23 wrote:Wie starte ich denn die Konsole schlussendlich, in welche man ja diese ganzen Befehle hineintippen kann (zum Beispiel htpasswd, um eine PAsswortdatei anzulegen)?

XCP starten und Button "Shell" klicken.

Ich hoffe ich konnte etwas Licht ins Dunkel bringen. Nicht verzagen, jeder hat mal klein angefangen :)
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 8294
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 10 Pro x64

Re: Startschwierigkeit mit php

Postby Nobbie » 08. June 2010 23:48

Kuja23 wrote:Vorweg, ich bin nicht gerade bewandert auf dem Thema MYSQL und PHP, versuche mich erst gerade einzuarbeiten, zwecks Präsentation für das Studium, welches als dynamische Webseite konzipiert werden soll.
Mit HTML klappt soweit alles, nun bin ich also beim php...


Was für ein "Studium"? Sicherlich doch nicht irgendetwas IT-mäßiges, das würde mich einigermaßen desillusionieren, weil Du doch (s.u.) auf sehr eigene Weise extrem kenntnisfrei bist.

Kuja23 wrote:Die Ausführung der index.php im Ordner xampp/htdocs funktioniert nicht - ich kann mir nur den Quelltext via Editor anschauen.


Das wird (wie üblich) am sog. "short_open_tag" liegen, mehr will es nicht vertiefen, weil ich mir etwas mehr Selbständigkeit Deinerseits erhoffe und dieses Stichwort Dich unbedingt auf die richtige Fährte bringen MUSS.

Kuja23 wrote:Eigene php-Dateien darf ich auch nicht kreieren, da meckerts rum und will mir stattdessen eine Textdatei erschaffen. Habe ich bei der installation etwas falsch gemacht??


Da hätte ich auch eine grundlegende Idee zu, muss aber vorerst anmerken, dass Du leider zu denjenigen gehörst, die unsäglich schlecht beobachten und noch unsäglich schlechter beschreiben können. Wer Hilfe erbittet, muss verstehen, dass Außenstehende nichts, aber auch wirklich rein gar nichts darüber wissen, was Du am Bildschirm siehst, welche Programme Du benutzt, welche Knöpfe Du drückst usw. - und so eine spärlich mieserable "Fehlermeldung" ist nicht dazu geeignet, dem hilfsbereiten Leser auch nur den kleinsten Hinweis zu geben, was Du dort eigentlich betreibst. Unabhängig davon habe ich dennoch eine (wahrscheinlich sogar zutreffende) Idee, weil es (leider) viele so schlechte Beschreibungen gibt und man irgendwann generelle Zusammenhänge erkennt und sich merkt. Im konkreten Fall vermute ich, dass Du als Editor Notepad einsetzt, der den eklatanten Bug hat, dass er bei Textdateien (die PHP Scripts auch sind) grundsätzlich noch ein *.txt an den Dateinamen anhängt, selbst wenn dieser schon eine gültige Erweiterung (*.php) besitzt. Tipp: benutze Notepad nicht, sondern ergoogle Dir einen vernünftigen Editor (meine Empfehlung: Textpad).

Kuja23 wrote:Auf der Homepage von xampp habe ich des Weiteren gelesen, dass alle Dateien in den xampp/htdocs Ordner verschoben werden müssen. Wieso?


Das muss man in der Grundeinstellung, so wie Xampp ausgeliefert wird. In dieser Einstellung werden die Dateien nur aus htdocs ausgeliefert. Das ist selbstverständlich änderbar, aber das wiederum setzt bereits marginale Kenntnisse in der Konfiguration von Apache voraus.

Kuja23 wrote: Für die endgültige Internetpräsi haben wir einen UNIX-Server, der ja auch anders benannt wird. Greift der nur auf die Datei zu (die sich dann wo auch immer befindet). Muss ich also irgendwas miteinander verknüpfen?


Das ist sowas von schräg, das verstehe selbst ich nicht. Nein, Du mußt nichts verknüpfen (glaube ich zumindest nicht) und dass ein Linux Server irgendwie anders heißt als ein Windows Server, ist mir auch keine Überraschung, aber was das alles mit dem htdocs Verzeichnis zu tun haben soll, das weißt an dieser Stelle nur Du.

Kuja23 wrote:Wie starte ich denn die Konsole schlussendlich, in welche man ja diese ganzen Befehle hineintippen kann (zum Beispiel htpasswd, um eine PAsswortdatei anzulegen)?


Diese Frage tut schon ziemlich weh (weswegen ich auch nicht so richtig an das IT-Studium glauben mag). Das, wo man da die ganzen Befehle eingibt, nennt sich unter Windows auch "DOS Shell" oder "CMD Shell" und ist nichts anderes als die "schwarze Dos-Box" (wovon ich nun hoffe, dass Du weißt, was gemeint ist, denn besser kann ich es nicht erklären). Findet man unter "Zubehör" und nennt sich dort "Eingabeaufforderung".

Kuja23 wrote:Ich bin echt völlig ratlos und hoffe mir kann jemand ob meiner Doofheit weiter helfen.


Einsicht ist ja immerhin der erste Schritt zu Besserung - aber zugegebenerweise sind Deine Lücken schon ziemlich derbe. Das hat nämlich alles noch gar nichts mit PHP zu tun, sondern sind teilweise allererste Schritte in der Windows-Umgebung. Aber vielleicht hilft es Dir ja dennoch erst einmal weiter. Ich bin gespannt.
Nobbie
 
Posts: 8772
Joined: 09. March 2008 13:04

Re: Startschwierigkeit mit php

Postby Kuja23 » 09. June 2010 02:19

Erstmal vielen Dank für die Ratschläge, mir ist und war bewusst, dass sich diese Wortzusammenstellungen extrem bescheuert und zudem nervtötend anhören müssen, für jemanden, der sich öfter in den weiten Gefilden des Netzes herumschlägt. Als ich mit dem Studium anfing, war mir auch nicht bewusst, dass ich irgendwann mal in der Lage sein muss Internetseiten zu entwerfen. Ich war immer der Meinung, dass es genug fähige Leute gibt, die der Konzipierung solcher Sachen auch Spaß abgewinnen können. Könnt ich eventuell auch, hätte ich die Zeit dazu (soll heißen hab gestern angefangen und sollte am besten Tags zuvor fertig werden), aber ich bin ja lernwillig. Mein Studienfach ist übrigens Umweltschutz: Also falls ihr wissen möchtet, welche Pflegemaßnahmen für die Wiederherstellung artenreicher Bergwiesen besonders geeignet sind... Nur zu :)

Problem 1: konnte ich noch nicht beheben, beim Doppelklick auf die vorgefertigte index.php soll ich ein Programm aus der Liste auswählen usw.. Habe meinen browser angewählt (Opera) und mir wurde der Quelltext gewahr.
Das wird (wie üblich) am sog. "short_open_tag" liegen, mehr will es nicht vertiefen, weil ich mir etwas mehr Selbständigkeit Deinerseits erhoffe und dieses Stichwort Dich unbedingt auf die richtige Fährte bringen MUSS.
Bin deinem Rat gefolgt und habe in der php.ini bei short_open_tag aktiviert (mit On). Funktioniert dennoch nicht.

Läuft dein Apache? (wird ein grünes "running" Label neben Apache im XCP (XAMPP Control Panel) angezeigt?

Läuft (nach Reboot), funzt aber immer noch nicht. Habe mich auch begoogelt, doch nix wirklich gescheites gefunden.

Problem 2: hat sich in Luft aufgelöst, ich kann nun .php Dateien erstellen (diese aber nicht öffnen). Danke für den Tipp; Notepad hat uns unser Dozent empfohlen.

Mein größtes Problem ist eigentlich die wirre Verknüpfung von der ich vorhin gesprochen habe. Obwohl das sicherlich schon wieder vorweg gegriffen ist. Im Prinzip lautet die Aufgabe via PHP Tabellen und Formulare (+Passwort) auf die Seite zu bringen. Bedeutet dies, dass ich meine jetzt geschriebenen HTML-Seiten, beziehungsweise jene, in welcher das Formular auftauchen soll als .php speichern muss (in der die dazu notwendige Syntax, also die Verbindung zur Datenbank beschrieben wird). Oder kann ich auch innerhalb der .html-Datei einen Verweis zur .php-Datei erzielen? (ich werd mir auch noch mal schattenbaum.net zu Gute führen)

Nochmals danke und gute Nacht.
Kuja23
 
Posts: 3
Joined: 08. June 2010 21:06

Re: Startschwierigkeit mit php

Postby Altrea » 09. June 2010 05:01

Kuja23 wrote:Also falls ihr wissen möchtet, welche Pflegemaßnahmen für die Wiederherstellung artenreicher Bergwiesen besonders geeignet sind... Nur zu :)

Falls ich mir mal eine artenreiche Bergwiese auf meinem Balkon pflanzen werde, oder mein erstes Alpengrundstück erwerbe werde ich drauf zurückkommen :mrgreen:

Kuja23 wrote:Problem 1: konnte ich noch nicht beheben, beim Doppelklick auf die vorgefertigte index.php soll ich ein Programm aus der Liste auswählen usw.. Habe meinen browser angewählt (Opera) und mir wurde der Quelltext gewahr.

Genau dieses Verständnisproblem hatte ich vermutet.
Also, zu PHP muss man wissen, dass es eine Programmiersprache ist, die von einem Parser auf Serverebene ausgeführt werden muss. Heißt soviel wie:
Öffnen per Doppelklick oder direkt im Browser kannste knicken!

Die richtige Vorgehensweise ist es, .php Dateien über eine URL beim Webserver (im Falle von XAMPP wäre das der Apache) anzufragen.
Nehmen wir also an, du hast eine php-Datei mit dem Namen test.php im Ordner C:\xampp\htdocs. Dann öffnest du deinen Browser und tippst in der Adresszeile http://localhost/test.php. localhost ist ein Standardname für den Rechner an dem du gerade sitzt, und der Apache routet Anfragen direkt ins htdocs-Stammwurzelverzeichnis (per Voreinstellung ist das C:\xampp\htdocs).
Deshalb ist es auch wichtig, dass dein Apache läuft, denn ohne Apache kein PHP-Parser.

Liegt die Datei auf einem anderen Rechner als dem an dem du sitzt, so funktioniert localhost natürlich nicht. Da enthält die URL stattdessen den Rechnernamen, die IP des Rechners oder eine per DNS zu diesem Rechner geroutete Domain.

Kuja23 wrote:Bin deinem Rat gefolgt und habe in der php.ini bei short_open_tag aktiviert (mit On). Funktioniert dennoch nicht.

short_open_tags sind eine sehr häufige Fehlerursache hier im Forum. Doch du kannst das erstmal wieder komplett vergessen, denn du bist noch eine Stufe davor. Über short_open_tags kann man sich nochmal unterhalten, wenn du deine PHP-Dateien richtig anfragst und dann der PHP Programmcode in deinem Browser auftaucht, statt vom PHP-Parser verarbeitet zu werden.

Kuja23 wrote:Notepad hat uns unser Dozent empfohlen.

Es funktioniert auch mit Notepad. Dann musst du nur darauf achten, dass du beim Speichern unter "Dateityp" statt "Textdateien (*.txt)" auf "Alle Dateien" umstellst. Aber ich empfehle dir auch lieber einen vernünftigen PHP-Editor zu verwenden (ich könnte da Notepad++ empfehlen, aber bei Editoren scheiden sich die Programmierergeister ;))

Kuja23 wrote:Bedeutet dies, dass ich meine jetzt geschriebenen HTML-Seiten, beziehungsweise jene, in welcher das Formular auftauchen soll als .php speichern muss (in der die dazu notwendige Syntax, also die Verbindung zur Datenbank beschrieben wird). Oder kann ich auch innerhalb der .html-Datei einen Verweis zur .php-Datei erzielen? (ich werd mir auch noch mal schattenbaum.net zu Gute führen)

Wie erkläre ich das am besten...
Es ist nur notwendig Dateien als .php Dateien zu speichern, wenn diese mindestens eine Zeile PHP-Code enthalten. Bei einem HTML-Formular ist es ja so, dass du im <form>-Tag ein Attribut "action" hast mithilfe dem du festlegst, wohin das Formular geschickt wird. Dort könnte also auch der Pfad einer PHP-Datei stehen, die für die Verarbeitung des Formulars zuständig ist. Theoretisch wäre es also möglich Das Formular selbst als .html Datei zu speichern, die Verarbeitung dann einer .php Datei zu überlassen. Praktisch hat dies aber einige Einschränkungen. Was machst du zum Beispiel, wenn du dem Anwender der das Formular benutzt ein Feedback geben möchtest, dass ein Feld nicht korrekt ausgefüllt wurde?! Bei Formularen ist es daher in der Regel so, dass auch die Formulare als .php Datei gespeichert sind (bei reinen statischen Ausgaben wie Tabellen könnte man .html Dateien nehmen).

In .php Dateien selber bist du nicht gezwungen PHP-Code reinzuschreiben. Du kannst also einfach dein .html Formular hernehmen, als .php Datei umspeichern und es würde sich nichts ändern (außer dass du die Datei nichtmehr einfach per Doppelklick öffnen kannst), denn HTML- und PHP-Quelltext können in .php Dateien frei nach Belieben gemixt werden. Dafür gibt es mehrere Möglichkeiten. DIe Gängigste ist, in deinem HTML-Quelltext PHP-Blöcke zu definieren. Dafür gibt es die speziellen Tags <?php und ?> (ersterer ist der Starttag, letzterer der End-Tag).

Das soll aber auch erstmal als erster Einstieg genügen. Du solltest dir auf jeden Fall ein vernünftiges PHP-Tutorial ansehen um die Zusammenhänge besser zu verstehen. Schattenbaum kann ich empfehlen, oder das PHP-Tutorial von Quakenet
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 8294
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 10 Pro x64

Re: Startschwierigkeit mit php

Postby Nobbie » 09. June 2010 09:36

Kuja23 wrote:Oder kann ich auch innerhalb der .html-Datei einen Verweis zur .php-Datei erzielen?


Nein.

Die "Aufrufstruktur" ist genau anders herum. Wenn Du Inhalte anzeigen willst, die nicht nur aus statischen HTML Dateien kommen, sondern deren Inhalte dynamisch beispielsweise aus Datenbanken kommen, so MUSS die allererste Datei, sprich die Datei, die der Anwender oben im Browser eintippt (http://www.deinserver.de/datei.php o.ä.) ein PHP Script sein (es MUSS die Endung *.php besitzen). PHP seinerseits kann aber (wie Du es nennst) HTML Dateien "verknüpfen", man kann also komplette HTML Dokumente (oder auch nur Fragmente) in HTML Dateien auslagern und mit PHP quasi darauf verweisen (die richtige Formulierung wäre "inkludieren", denn der entsprechende Befehl heißt "inlcude").

Wie Altrea schon schrieb, könntest Du zwar auch in PHP Dateien ausschließlich reines HTML schreiben, dann hättest Du aber das Problem, dass Du keinen dynamischen Inhalt gebacken bekommst, denn irgendwie muss man ja mal an die Daten herankommen und HTML kann das nicht.

Der entscheidende Unterschied ist der:

a) wenn der Anwender eine Datei anfordert, die Endung *.html hat, so liefert Apache sie ohne weiteres aus (an den Browser, der dann das HTML interpretiert).

b) wenn der Anwender eine Datei anfordert, die die Endung *.php hat, so liefert Apache sie NICHT ohne weiteres aus, sondern startet den PHP Interpreter und schickt den Code dadurch und das Endergebnis wird dann ausgeliefert (also das, was das PHP Script als Ausgabe besitzt).

Aber auch in einem PHP Script muss zusätzlich der PHP Interpeter noch einmal aktiviert werden. Wenn Apache die Zeilen da durch schickt, sind für den Interpreter zunächst nur alles Textzeilen, die darin stehen, eigentlich nur Kommentar der einfach "durchgereicht" wird. Deswegen kann man eigentlich ALLES in PHP Dateien hineinschreiben - der Browser muss es nur später auch verstehen. Deswegen kann man nur stur HTML reinschreiben, das wird 1:1 weitergegeben. Erst wenn eine Zeile auftaucht, in der dieses Tag "<?php" steht, dann "wacht" der PHP Interpreter auf und interpretiert den Text, der nun folgt. Befindet sich dann irgendwo ein "?>" Tag, wird der Interpreter wieder abgeschaltet. Dieses Spielchen kann man beliebig oft innerhalb einer Datei veranstalten, im Platz dazwischen darf man beliebigen Text hineinschreiben (vorzugsweise natürlich HTML - es soll ja später ein Browser verstehen).

Du hast, wie schon geklärt wurde, einen Doppelklick auf die PHP-Datei gemacht in der Hoffnung, sie würde nun ausgeführt. Das kann man sogar so einrichten, denn PHP kann man auch als eigenständigen Interpreter benutzen, ohne einen Webserver. Was Du aber zusätzlich wolltest (und das ist auch passiert), dass sich eigentlich der Browser öffnet, um die PHP Datei anzuzeigen. Das hat der auch getan - aber der Browser kann die Datei NICHT durch den PHP Interpreter schicken (und selbst interpretieren kann er sie überhaupt nicht): das macht ja im normalen Szenario der Webserver. Der Webserver ist (in Deinem persönlichen Szenario) zwar zufälligerweise der gleiche Rechner wie der Client Rechner (also der, wo Dein Browser läuft). Dennoch kann der Browser unmöglich diese PHP Datei "irgendwie" an den Apache schicken, damit der sie ihm (damit es so läuft wie oben skizziert) dann irgendwie zurücksendet - das geht endgültig wirklich nicht. Deswegen bleibt dem Browser nichts anderes übrig, als die Datei "einfach so" zu öffnen und anzuzeigen - und wenn dort keinerlei HTML drin steht (was ja sein dürfte), sondern die Datei direkt mit "<?php" anfängt (das ist wiederum für den Browser das Signal, jetzt kommt nur Kommentar, kümmere Dich nicht), dann zeigt er genau NICHTS an, weil er kein HTML findet, sondern nur Kommentar. Und davon jede Menge.
Nobbie
 
Posts: 8772
Joined: 09. March 2008 13:04

Re: Startschwierigkeit mit php

Postby Kuja23 » 09. June 2010 16:35

Es sei gedankt, öffnen und erstellen von php Dateien klappt soweit. Ich werd mir jetzt die einschlägigen Tutorials zur Gemüte führen.
Mal schauen, wenn es das nächste mal hakt... ;)
Kuja23
 
Posts: 3
Joined: 08. June 2010 21:06


Return to XAMPP für Windows

Who is online

Users browsing this forum: No registered users and 9 guests