1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

fehler bei html oder php?

Discussion in 'Web-Know-how für die Homepage' started by Ufgu Fugullu, Jun 18, 2008.

Thread Status:
Not open for further replies.
  1. hallo zusammen,
    ich fange grad an nen bissel php zu lernen und bin noch ganz am anfang, doch da gibt es auch schon probleme bzw. fehler.....durch die unten gezeigten codes wollte ich auf der html seite mein vor- und nachname eingeben und dann durch klicken auf absenden müsste es durch den php code doch auf der zweiten seite dann erscheinen, doch es funktioniert nich.....stattdessen ist die php seite also seite 2 ganz weiß??......danke schonma im voraus....

    HTML:
    <form action="seite2.php" method="post">
    Ihr Vorname:<br>
    <input type="Text" name="vorname">
    <br>
    Ihr Nachname:<br>
    <input type="Text" name="nachname">
    <br>
    <input type="Submit" value="Absenden">
    </form>
    PHP:
    <?
    $vorname $_POST["vorname"];
    $nachname $_POST["nachname"];
    echo 
    $vorname $nachname;
    ?>
     
  2. kalweit

    kalweit Hüter der Glaskugel

    1) Schau in den Quelltext der Seite 2 im Browser. Sollte da dein PHP Code stehen, ersetze <? durch <?php und überprüfe, ob der Webspace überhaupt php verarbeiten kann.

    2) $vorname und $nachnahme musst du auch mittels einem Punkt . verketten ->
    echo $vorname.$nachnahme;

    3) prüfe mit echo $_POST; ob überhaupt Werte auf der Zielseite ankommen
     
  3. also
    zu punkt eins, ich hab XAMPP installiert auf meinem rechner, weil ich es ja lernen wollte aber ich hab keine ahnung ob mein privater pc jetzt php verarbeiten kann....
    zu punkt zwei, mit dem punkt gehts auch irgendwie nich was vllt auch auf punkt drei deutet
    zu punkt drei, es kommen keine daten aus seite2.php an, nur eine leere seite.....
     
  4. Crow1985

    Crow1985 Ganzes Gigabyte

    Mit 3. mein er du sollst irgendwo im Quellcode das echo $_POST eingeben und schauen, ob deine Werte ankommen.

    Was sagt denn dein Log?
    PHP immer so einleiten <?php, deine Variante geht zwar oft auch. Aber in einigen Fällen kann das zu Problemen führen, weshalb ich mir das gleich abgewöhnen würde.
     
  5. also mit den anfang <?php kam ich jetzt auch nich weiter und mit den echo-befehl wurde trotzdem nichts auf der seite angezeigt......was ist denn ein log!?
     
  6. -nixnick-

    -nixnick- Halbes Megabyte

    mach das ganze doch mal als get und schaue, ob die variablen überhaupt mitübermittelt werden, bzw stelle noch ein "echo test;"

    in den quellcode ob überhaupt etwas passiert.


    was kommt denn im quelltext raus?
     
  7. Crow1985

    Crow1985 Ganzes Gigabyte

    Ich würde mir aber die Variablen auch nicht mit $_Post holen, sondern mit $_REQUEST. Oder du setzt in der PHP.ini die register globals auf On, dann kannst du dir das Übergeben eigentlich auch sparen.
     
  8. kalweit

    kalweit Hüter der Glaskugel

    Ich schon, denn wenn du $_REQUEST einsetzt, hebelst du die sichernde Wirkung von register_globals aus. Zudem handelst du dir Schwierigkeiten ein, wenn du den selben Variablennamen in einem anderen superglobalen Array (z.B. Session oder Cookie) verwendest.
     
  9. frajoti

    frajoti Viertel Gigabyte

    @ Ufgu Fugullu: Hast Du überprüft, ob Apache und PHP funktionieren? Apache überprüfst Du, wenn Du http://localhost in den Browser eingibst. Dann sollte sich die Apache-Testseite öffnen. PHP kannst Du mit folgendem Code testen:

    Den Inhalt in eine Date phpinfo.php speichern und im Ordner htdocs speichern. Der Aufruf erfolgt über http://localhost/phpinfo.php

    @ Crow1985: Register Globals auf On kann böse enden, da viele Hoster diese Sicherheitslücke durch setzen der Variable auf Off deaktivieren - sofern der TO mit seiner Seite später online gehen will. ;)

    @ kalweit: Wie wichtig ist <?php bzw. wo genau ist der Unterschied? Bisher kam ich mit <? aus.
     
  10. Crow1985

    Crow1985 Ganzes Gigabyte

    Ähm gut, dann werd ich das mal wieder ausschalten und an $_POST gewöhnen.:bse:

    In der PHP.ini kann man auch Einstellungen so vornehmen, dass <?....?> nicht mehr verstanden wird (short open tag). Also um da etwaige Probleme aus dem Weg zu gehen gleich <?php .... ?> angewöhnen.
     
  11. frajoti

    frajoti Viertel Gigabyte

    Ah, danke für den Tipp. Dann muss ich mich hier umgewöhnen. :)



    Nochwas zu register_globals=on: http://www.cms-sicherheit.de/module-blog-viewpub-tid-1-pid-12.html
     
  12. kalweit

    kalweit Hüter der Glaskugel

    ...wie bereits geschrieben, ist das eine Konfigurationsfrage der php.ini ob <? funktioniert - wogegen <?php immer verstanden/interpretiert wird.
     
  13. Crow1985

    Crow1985 Ganzes Gigabyte

  14. frajoti

    frajoti Viertel Gigabyte

    @ kalweit: Nochmals danke.

    @Crow1985: Okay. ;)
     
  15. Crow1985

    Crow1985 Ganzes Gigabyte

    Kaum stell ich es aus und versuch, ob ich es auch mit $_Post hinbekomme hab ich dasselbe Problem wie der TO.

    Es kommen keine Werte auf der Zielseite an, wenn ich mit echo $_POST prüfe.
    Ich schau erstmal in den Log bis dann.

    Edit: Aber auf die Wunschseite leitet es weiter (form action).
     
  16. kalweit

    kalweit Hüter der Glaskugel

    welch Lapsus - muss natürlich print_r($_POST); heißen - das echo bringt max den Hinweis "array()" :D
     
  17. Crow1985

    Crow1985 Ganzes Gigabyte

    So bei mir funktioniert es nun.
    Hm, erst als ich es aus Neugier mit REQUEST probiert hab ging es. Dann hab ich es wieder mit POST versucht und plötzlich liefs auch damit, obwohl sonst nix geändert wurde.:grübel:

    Code:
    <html>
    <head>
    <title>Formular</title>
    </head>
    
    <body>
    <form action="name.php" method=post>
    <box>Vorname</box><input name="vorname">
    <box>Nachname</box><input name="nachname"><br>
    <input type="submit">
    </form>
    </body>
    </html>
    
    Code:
    <html>
    <head>
    <title>Ausgabe Formular</title>
    </head>
    
    <body>
    <?php
    $vorname=$_POST['vorname'];
    $nachname=$_POST['nachname'];
    echo  $vorname.$nachname
    ?>
    </body>
    </html>
    
     
  18. kalweit

    kalweit Hüter der Glaskugel

    ...läuft vielleicht PHP als Modul im Apache? Wenn ja, muss der neu starten (bzw. die Konfiguration neu einlesen) damit Änderungen an der php.ini aktiv werden.
     
  19. Crow1985

    Crow1985 Ganzes Gigabyte

    Ja läuft als Modul in Apache.
    Hm eigentlich hab ich den Apache Dienst nach der Änderung neugestartet, aber das wirds wohl sein.

    Danke an Kalweit und frajoti.

    @TO
    Achte genau, ob der Punkt zwischen Vorname und Nachname gesetzt ist. Der macht schon den Unterschied zwischen leerer Seite und tadelloser Funktion.
     
  20. hab mir das inzwischen angewöhnt mit <?php anzufangen......und hab geguckt es funktioniert alles.....auch die lösung die funktioniert hat funkt bei mir nich......selbst wenn ich den punkt richtig dazwischen hab......:aua: son s*****....
     
Thread Status:
Not open for further replies.

Share This Page