+ Antworten
Ergebnis 1 bis 9 von 9

Thema: PHP-Einbindung klappt nicht

  1. #1
    Neu an Board Avatar von michaelwowro
    Registriert seit
    12.10.2006
    Ort
    Hockenheim
    Alter
    33
    Beiträge
    33
    Bedankte sich
    32
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard PHP-Einbindung klappt nicht

    Hallo,
    ich versuche aus einer joomla-Content-Site heraus folgendes php-Skript:

    <html>
    <head>
    <?php
    if ($gesendet)
    {
    echo "Sie haben folgenden Namen";
    echo " eingegeben: $vn $nn<p>";
    }
    ?>
    </head>
    <body>
    Bitte geben Sie einen Namen ein und senden Sie das Formular ab:
    <form action = "ud12.php" method = "post">
    <input name = "nn"> Nachname<p>
    <input name = "vn"> Vorname<p>
    <input type = "submit" name = "gesendet">
    <input type = "reset">
    </form>
    </body>
    </html>

    zum Laufen zu bringen. Dazu habe ich
    {mosaddphp:ud12.php}
    in die content-site geschrieben. Ich habe das Skript in das mosaddphp-Verzeichnis unter dem Namen ud12.php gespeichert.
    Der Aufruf des Formulars selbst klappt auch gut, jedoch reagiert der Computer beim Drücken vom gesendet-button mit einer 404Fehler-Meldung: /ud12.php kann nicht gefunden werden.

    Wäre sehr nett, wenn ihr mir helfen könntet. Vielen Dank im Voraus,

    Gruß Michael

    P.S.: zum selbst ein Bild machen:
    http://www.forschungsdatenbank-rettu...nt/view/13/31/

  2. #2
    Kommt häufiger vorbei Avatar von havanna
    Registriert seit
    01.11.2005
    Beiträge
    435
    Bedankte sich
    0
    Erhielt 143 Danksagungen
    in 122 Beiträgen

    Standard

    Das kann nicht funktionieren.

    In der HTML Seite steht ziemlich am Anfang der von Joomla erzeugte Eintrag:
    HTML-Code:
    <base href="http://www.forschungsdatenbank-rettungswesen.org/" />
    d.h. alle relativen Referenzen beziehen sich auf diese URL. Dein Formular mit
    HTML-Code:
    <form action = "ud12.php" method = "post">
    wird also an http://www.forschungsdatenbank-rettu...n.org/ud12.php gesendet. Diese URL gibt es aber nicht -> Error 404.
    Selbst wenn das Script da wäre, ginge der Request vollkommen an Joomla vorbei und das war sicherlich nicht das, was du beabsichtigst hattest. Was möchtest du konkret damit erreichen?
    cu havanna

  3. #3
    Wohnt hier Avatar von DietmarH
    Registriert seit
    07.01.2006
    Ort
    Essen
    Beiträge
    4.697
    Bedankte sich
    66
    Erhielt 1.041 Danksagungen
    in 923 Beiträgen

    Standard

    So sieht eine korrekte und funktionierende HTML-Seitenstruktur aus:
    http://de.selfhtml.org/html/allgemein/grundgeruest.htm
    Wenn du in eine geöffnete Seite die rot markierten Stellen schreibst, darfst du dir selbst ausdenken, wie ein Browser raten muß, was der ganze Müll soll und welche Tags die tatsächlich relevanten sind.
    Zitat Zitat von michaelwowro Beitrag anzeigen
    <html>
    <head>

    <?php
    if ($gesendet)
    {
    echo "Sie haben folgenden Namen";
    echo " eingegeben: $vn $nn<p>";
    }
    ?>
    </head>
    <body>

    Bitte geben Sie einen Namen ein und senden Sie das Formular ab:
    <form action = "ud12.php" method = "post">
    <input name = "nn"> Nachname<p>
    <input name = "vn"> Vorname<p>
    <input type = "submit" name = "gesendet">
    <input type = "reset">
    </form>
    </body>
    </html>
    Wenn ein Browser korrekt reagiert, ignoriert er deinen (zweiten) Head einfach komplett und beendet die Seite hinter dem </html>. Danach kann per definitionem kein Seitencode mehr kommen.
    Wenn ein Browser die Seite trotzdem komplett darstellt, ist das ein Zeichen für eine hohe Fehlertoleranz, aber darauf sollte man keine Seite aufbauen und sich schon gar nicht darauf verlassen, daß alle Browser so tolerant sind und auf solche gravierenden Codefehler gleich reagieren.
    Der Aufruf des Formulars selbst klappt auch gut, jedoch reagiert der Computer beim Drücken vom gesendet-button mit einer 404Fehler-Meldung: /ud12.php kann nicht gefunden werden.
    Du mußt als action natürlich die Seite angeben, in die das Script eingebunden ist. Selbst wenn ud12,php im Joomla-Root liegen würde, würde es nach dem Absenden ohne Joomla drumherum aufgerufen.

  4. Erhielt Danksagungen von:


  5. #4
    Neu an Board Avatar von michaelwowro
    Registriert seit
    12.10.2006
    Ort
    Hockenheim
    Alter
    33
    Beiträge
    33
    Bedankte sich
    32
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Hi havanna,

    danke für die schnelle Antwort. Ich möchte in diesem Beispiel erreichen, dass wenn auf den Absenden-Button gedrückt wird eine neue Seite aufgerufen wird, welche dann
    Sie haben folgenden Namen eingegeben: X Y
    ausgeben soll.

    Deshalb folgender php- code:

    echo "Sie haben folgenden Namen";
    echo " eingegeben: $vn $nn<p>";

    Natürlich will ich das ganze nicht an joomla vorbei machen, aber ich weiß nicht wie ich dieses Skirpt in joomla einbinden kann.
    Nicht wundern, ich habe dieses Skript als Beispiel genommen für ein viel größeres Skript, welches dieselbe Struktur hat und damit auch denselben Fehler auslöst. Habe ich das Problem für dieses kleine Skript gelöst, dann habe ich damit auch das Problem für das große Skript gelöst

    Gruß Michael

  6. #5
    Kommt häufiger vorbei Avatar von havanna
    Registriert seit
    01.11.2005
    Beiträge
    435
    Bedankte sich
    0
    Erhielt 143 Danksagungen
    in 122 Beiträgen

    Standard

    Das Formular muss an eine Joomla Komponente gesendet werden, damit dann die Parameter ausgwertet werden können. Am besten an die content Komponente, die das Formular gerade ausgegeben hat.

    Dein Code in ud12.php könnte so aussehen:

    PHP-Code:
     <?php
       
    if ($_REQUEST['gesendet'])
       {
          echo 
    "Sie haben folgenden Namen";
          echo 
    " eingegeben: $_REQUEST['vn'] $_REQUEST['nn']<p>";
       }
    ?>
    Bitte geben Sie einen Namen ein und senden Sie das Formular ab:
    <form method = "post">
        <input name = "nn"> Nachname<p>
        <input name = "vn"> Vorname<p>
        <input type = "submit" name = "gesendet">
        <input type = "reset">
    </form>
    ?>
    Die fehlende Action im Formular sorgt dafür, dass das Ganze an die aktuelle URL gesendet wird. Es wird derselbe Content wieder aufbereitet und durch {mosaddphp:ud12.php} kommt dann dein eigebettetes Modul wieder zum Zuge und die Parameter werden bearbeitet.
    cu havanna

  7. #6
    Neu an Board Avatar von michaelwowro
    Registriert seit
    12.10.2006
    Ort
    Hockenheim
    Alter
    33
    Beiträge
    33
    Bedankte sich
    32
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Danke soweit, irgendwie klappts auch mit deinem code nicht, da krieg ich die Fehlermeldung:

    Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /var/www/virtual/forschungsdatenbank-rettungswesen.org/htdocs/mosaddphp/ud12.php on line 7

    ???

  8. #7
    Kommt häufiger vorbei Avatar von havanna
    Registriert seit
    01.11.2005
    Beiträge
    435
    Bedankte sich
    0
    Erhielt 143 Danksagungen
    in 122 Beiträgen

    Standard

    Zitat Zitat von michaelwowro Beitrag anzeigen
    Danke soweit, irgendwie klappts auch mit deinem code nicht, da krieg ich die Fehlermeldung:

    Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /var/www/virtual/forschungsdatenbank-rettungswesen.org/htdocs/mosaddphp/ud12.php on line 7

    ???
    o.k. der Code war etwas freihändig erstellt. Eigentlich ist der Fehler auf Zeile 5 und nicht auf Zeile 7. Jetzt der korrigierte Inhalt von ud12.php:
    PHP-Code:
    <?php
       
    if ($_REQUEST['gesendet'])
       {
          echo 
    "Sie haben folgenden Namen";
          echo 
    " eingegeben: "$_REQUEST['vn'] . $_REQUEST['nn'] .  " <p>";
       }
    ?>
    Bitte geben Sie einen Namen ein und senden Sie das Formular ab:
    <form method = "post">
        <input name = "nn"> Nachname<p>
        <input name = "vn"> Vorname<p>
        <input type = "submit" name = "gesendet">
        <input type = "reset">
    </form>
    cu havanna

  9. #8
    Neu an Board Avatar von michaelwowro
    Registriert seit
    12.10.2006
    Ort
    Hockenheim
    Alter
    33
    Beiträge
    33
    Bedankte sich
    32
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Super,

    das hat geklappt. Jetzt bleibt für mich nur eine Frage: gibt es ein online-tutorial, welches deinen code lehrt. Denn ich möchte nicht für jedes Problemchen das Forum bemühen, sondern es selbst lernen. Mein Versuch PHP zu lernen mit
    Galileo - PHP 4 von Thomas Theis - Webserver-Programmierung für Einsteiger
    hat mir den nicht funktionierenden code gezeigt, welchen ich in meinem ersten Eintrag präsentiert habe - dieser steht unter der Überschrift:

    Listing D.14 Datei ud12.php
    in folgendem Link:
    http://www.galileocomputing.de/openb...4/kapd.htm#t25

    Das wäre echt lieb

    Gruß Michael

  10. #9
    Kommt häufiger vorbei Avatar von havanna
    Registriert seit
    01.11.2005
    Beiträge
    435
    Bedankte sich
    0
    Erhielt 143 Danksagungen
    in 122 Beiträgen

    Standard

    Ist mir so spontan nicht bekannt. Deine Schwierigkeit ist die Vermischung eines einfachen PHP Tutorials und die Verwendung innerhalb eines CMS wie Joomla. Auf der Basis wirst du immer wieder Probleme bekommen, da dort die Voraussetzungen für das Tutorial nicht gegeben sind. Du möchtest 2 Schritte zugleich machen(PHP und Joomla).
    Das Beispiel D.14 wird in einer Joomlainstallation nicht funktionieren, da normalerweise die PHP-Einstellung "register_globals=off" verwendet wird. Das bedeutet, dass die GET/POST-Variablen nicht global definiert sind, also $nn und $vn nicht existiert, sondern nur über das $_REQUEST array erreichbar ist.
    Besorge dir auf jeden Fall das PHP-Handbuch von http://www.php.net/docs.php
    Also erst PHP-Tutorial, dann
    Joomla, wie erstelle ich ein Modul, dann
    Joomla, wie erstelle ich eine Komponente, .. usw.
    cu havanna

  11. Erhielt Danksagungen von:


+ Antworten

Ähnliche Themen

  1. Joomlaboard deutsche Sprachunterstützung aktivieren
    Von willi1 im Forum Joomla Komponenten
    Antworten: 26
    Letzter Beitrag: 19.02.2007, 12:37
  2. Akobook Plus 1.1.2
    Von snocom im Forum Mambo Komponenten
    Antworten: 7
    Letzter Beitrag: 09.01.2006, 08:23
  3. Einbindung eigener PHP Skripte
    Von vieira im Forum Allgemeine Fragen zu Mambo
    Antworten: 11
    Letzter Beitrag: 05.05.2005, 17:49

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein