[PHP] - Script wird falsch interpretiert?
Übersicht

CO2ehemals "SirMO"Betreff: [PHP] - Script wird falsch interpretiert? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo,
ich habe momentan ein Problem mit XAMPP: ich habe folgende HTML: Code: [AUSKLAPPEN] <html>
<head> <script src="http://code.jquery.com/jquery-1.9.1.js"></script> <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script> <script> $(function() {$("#accordion").accordion();}); </script> <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" /> <link rel="stylesheet" href="css/base.css" /> <title>PHP Test</title> </head> <body class="bg"> <div id="accordion" class="loginscreen"> <h3>Einloggen</h3> <form> <p>Bitte logge dich ein:</p> <form method="post" action="php/login.php"> <table style="border: 0px"> <tr><td>Benutzername:</td><td><input name="username" type="text"/></td></tr> <tr><td>Passwort:</td><td><input name="password" type="password"/></td></tr> </table> <center><input type="submit" value="Einloggen"/></center> </form> </form> </div> </body> </html> sowie folgende login.php, die auch im Ordner "\php" liegt: Code: [AUSKLAPPEN] <?php
$username = $_POST['username']; $password = $_POST['password']; echo("<html><head></head><body>Login-Daten: ". $username .", ". $password ."</body></html>"); ?> beides liegt zusammen in dem "htdocs" Ordner unter XAMPP (In einem Unterordner). Ich starte also xampp_start.exe und öffne das HTML-Dokument. Nachdem ich einen willkürlichen Benutzernamen eingegeben habe und auf "Einloggen" klicke ändert sich die URL zunächst in Zitat: .../XAMPP/htdocs/ggc-ucp/phptest.htm?username=TestBenutzer&password=Passwort
Weiterhin wird aber nichts angezeigt... Ich weiß nicht woran es liegen könnte, habe bereits Google verwendet, dort sind aber nur Lösungsvorschläge alá "Starte den PC neu, vllt sind die dlls nicht geladen"... (Auch das habe ich schon getan, gleiches Ergebnis) |
||
mfG, CO²
Sprachen: BlitzMax, C, C++, C#, Java Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti |
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
Kann dir nicht wirklich sagen was schief läuft, aber es is schon auffällig:
Code: [AUSKLAPPEN] action="php/login.php"
Code: [AUSKLAPPEN] /XAMPP/htdocs/ggc-ucp/phptest.htm
Die php Datei wird also nie aufgerufen. |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
CO2ehemals "SirMO" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Aber warum nicht? Sie liegt im genannten Verzeichnis, Name ist ebenfalls richtig geschrieben, etc...
EDIT: Gerade einmal in login.php alles auskommentiert und stattdessen "phpinfo();" eingefügt. Es tut sich trotzdem nichts... |
||
mfG, CO²
Sprachen: BlitzMax, C, C++, C#, Java Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
~VERSCHOBEN~ Dieser Thread passte nicht in das Forum, in dem er ursprünglich gepostet wurde. |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
Klar dass phpinfo auch nichts ausgibt wenn die php-Datei gar nicht ausgeführt wird.
Ich tippe mal auf XAMPP-Config (Auf der Festplatte: ...\xampp\apache\conf\httpd.conf). Ist da irgendwas "unbewußt" oder standardmäßig eingestellt mit "DocumentRoot" oder <Directory>? Müsstest dich mal damit auseinandersetzen (googlen nach "xampp httpd.conf" zB) mfG, Christoph |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich würde einfach nicht zwei <form> Tags verschachteln. | ||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Starte die HTML Datei mal, indem Du als Adresse ...
localhost/ggc-ucp/phptest.htm ...in den Browser eingibst außerdem startet man Xampp besser mit... C:\xampp\xampp-control.exe ...Da sieht man ob alles beim Start geklappt hat. |
||
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe |
CO2ehemals "SirMO" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Es lag in der Tat an den verschachtelten Formen und funktioniert jetzt weitestgehend...
Ich habe das Script nun fortgeführt Code: [AUSKLAPPEN] <?php
$username = $_POST['username']; $password = $_POST['password']; echo("Login-Daten: ". $username .", ". $password .""); echo("<html>"); echo("<head>"); echo("<script src='http://code.jquery.com/jquery-1.9.1.js'></script>"); echo("<script src='http://code.jquery.com/ui/1.10.3/jquery-ui.js'></script>"); echo("<script>$(function() {$('#accordion').accordion();});</script>"); echo("<link rel='stylesheet' href='http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css' />"); echo("<link rel='stylesheet' href='../css/base.css' />"); echo("<link rel='icon' href='../img/favicon.ico' type='image/x-icon' />"); echo("<title>Statistik von ". $username ."</title>"); echo("</head>"); echo("<body>"); echo("<div id=/"accordion/">"); echo("<h3>Allgemeine Informationen</h3>"); echo("<table border='0'>"); echo("<tr><td>Name:</td><td>". $username ."</td></tr>"); echo("<tr><td>...</td><td>...</td></tr>"); echo("</table>"); echo("</div>"); echo("</body>"); echo("</html>"); ?> Allerdings ist die Ausgabe keine schöne HTML-Seite, sndern eher seltsames Wirrwarr Zitat: "); echo(""); echo(""); echo(""); echo(""); echo(""); echo(""); echo(""); echo(""); echo(""); echo(""); echo("
(Titel der Seite ist übrigens dann Zitat:"); echo(" Allgemeine Informationen "); echo(""); echo(""); echo(""); echo(" Name: ". $username ." ... ... "); echo(" "); echo(""); echo(""); ?> Statistik von ". $username ."
Woran könnte das liegen? |
||
mfG, CO²
Sprachen: BlitzMax, C, C++, C#, Java Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das liegt wohl daran, dass echo keine Funktion ist und generell keine tolle Idee für eine komplette Ausgabe ist. Schreib einfach normales HTML und benutzte <?php echo $var ?> für variablen. Oder benutze gleich eine template-Sprache. | ||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
CO2ehemals "SirMO" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das Problem ist, die übertragung der Daten sollte so abgeschirmt vom Nutzer sein wie möglich (Daher auch POST und nicht GET). Diese Eingaben werden dann in der php-Datei mit denen in einer anderen Datei abgeglichen. Stimmen beide überein, so soll ein "Profil" angezeigt werden, sonst soll wieder die Startseite aufgerufen werden.
Ich habe das letzte Mal PHP programmiert vor gut einem Jahr, aus der Zeit habe ich auch noch einige Beispiele wo ich mich daran erinnern kann, dass diese damals einwandfrei liefen (korrekte Ausgabe, etc). Ich habe Sie heute ausprobiert und erhalte den selben Zeichensalat... Ich weiß nicht woran das liegen kann, XAMPP habe ich seit dem nicht mehr upgedatet, also müsste der PHP-Interpreter auf der selben Version sein wie "damals". ich habe mich jetzt mal nach Alternativen zu echo() umgesehen und print() gefunden, Ergebnis: Das selbe... |
||
mfG, CO²
Sprachen: BlitzMax, C, C++, C#, Java Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das Problem ist, dass es eben nicht echo() ist - nur echo ohne die Klammern. Escape Quotes mit \", nicht /" und benutze überall UTF-8.
An dieser Stelle sei nochmal Sublime Text empfohlen - für HTML/php/javascript der beste Editor. |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
Farbfinsternis |
![]() Antworten mit Zitat ![]() |
---|---|---|
Versuche es mal so: (habe es aufgeräumt)
Code: [AUSKLAPPEN] <?php extract($_POST); // wichtig wenn der Apache korrekt konfiguriert ist $username = $_POST['username']; $password = $_POST['password']; ?> <html> <head> <title>Statistik von <?=$username;?></title> <link rel='stylesheet' href='../css/base.css' /> <link rel='stylesheet' href='http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css' /> <link rel='icon' href='../img/favicon.ico' type='image/x-icon' /> <script src='http://code.jquery.com/jquery-1.9.1.js'></script> <script src='http://code.jquery.com/ui/1.10.3/jquery-ui.js'></script> <script> $(function() {$('#accordion').accordion();}); </script> </head> <body> <div id="accordion"> <h3>Allgemeine Informationen</h3> <table border="0"> <tr> <td>Name:</td> <td><?=$username;?></td> </tr> <tr> <td> ... </td> <td> ... </td> </tr> </table> </div> </body> </html> |
||
CO2ehemals "SirMO" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
@ Xeres: Ich werde mir mal Sublime Text anschauen, habe bisher immer Aptana Studio oder Notepad++ verwendet.
@ Farbfinsternis: Die Seite sieht schonmal schöner aus ![]() |
||
mfG, CO²
Sprachen: BlitzMax, C, C++, C#, Java Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Welche php Version läuft denn bei dir? | ||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
Farbfinsternis |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn das: "Statistik von <?=$username;?>" dort steht, läuft überhaupt kein PHP. | ||
![]() |
Jolinah |
![]() Antworten mit Zitat ![]() |
---|---|---|
Oder PHP ist so konfiguriert dass es nicht auf <? ... ?> reagiert, sondern nur auf <?php ... ?>. Wenn das der Fall ist, geht evtl. auch die Kurzform <?= für echo nicht. Dann müsste es <?php echo ...; ?> heissen. | ||
![]() |
hamZtaAdministrator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Farbfinsternis hat Folgendes geschrieben: Versuche es mal so: (habe es aufgeräumt)
Code: [AUSKLAPPEN] (...) extract($_POST); // wichtig wenn der Apache korrekt konfiguriert ist (...) Ich bin nicht mehr so gut in PHP bewandert, aber die Funktion extract nimmt doch alle Elemente aus $_POST und "entpackt" sie in den aktuellen Namespace. Das auf $_POST anzuwenden wäre doch blanker Wahnsinn (und in diesem Beispiel doch gar nicht notwending?). Oder hat sich da etwas geändert und ich hab's nur verpasst? |
||
Blog. |
![]() |
Farbfinsternis |
![]() Antworten mit Zitat ![]() |
---|---|---|
hamZta hat Folgendes geschrieben: Farbfinsternis hat Folgendes geschrieben:
Versuche es mal so: (habe es aufgeräumt)
Code: [AUSKLAPPEN] (...) extract($_POST); // wichtig wenn der Apache korrekt konfiguriert ist (...) Ich bin nicht mehr so gut in PHP bewandert, aber die Funktion extract nimmt doch alle Elemente aus $_POST und "entpackt" sie in den aktuellen Namespace. Das auf $_POST anzuwenden wäre doch blanker Wahnsinn (und in diesem Beispiel doch gar nicht notwending?). Oder hat sich da etwas geändert und ich hab's nur verpasst? Wenn "globals = off" definiert ist, ist das die einzige Möglichkeit überhaupt an das Array zu kommen. Das Array wird auch nicht global entpackt sondern nur für die Laufzeit des Scripts und nur für dieses Script. |
||
![]() |
Jolinah |
![]() Antworten mit Zitat ![]() |
---|---|---|
An $_POST, $_SESSION usw. kommt man immer ran. Das "register_globals" ist veraltet. Die Variablen von POST, GET, SESSION etc. können nicht mehr direkt mit $variable angesprochen werden (was dank register_globals möglich, aber sehr unsicher war). Dazu gibt es ja nun die entsprechenden "superglobalen" Arrays $_POST, $_GET, $_SESSION etc.
Code: [AUSKLAPPEN] echo $_POST['username'];
// statt echo $username; Daher finde ich das extract auch nicht sehr sinnvoll. Es macht im Prinzip nur das was register_globals gemacht hatte, in diesem Fall halt nur für $_POST. http://php.net/manual/en/security.globals.php |
||
![]() |
hamZtaAdministrator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Genau das, Jolinah. Du hast da was falsch verstanden, Farbfinsternis.
Und das ist deshalb ein großes(!) Sicherheitsrisiko weil böswillige User so deine Variablen überschreiben können (weil extract das per Default zulässt). |
||
Blog. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group