1. Startseite
  2. Forenübersicht
  3. Dashboard
  4. Forum
    1. Unerledigte Themen
  5. Tipps und Tricks
    1. Windows 11 Tipps
    2. Windows 10 Tipps
    3. Windows 8 Tipps
    4. Windows 7 Tipps
    5. Windows Vista Tipps
    6. Windows XP Tipps
    7. MS Office Tipps
    8. FritzBox Tipps
    9. Workshops - Anleitungen
  • Anmelden oder registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Erweiterte Suche
  1. win-tipps-tweaks.de Community
  2. Software Allgemein
  3. Software
  4. Browser - FF, IE, Opera usw.

php: Echo-Problem bei Include-Funktion

  • Corvin82
  • 10. August 2008 um 20:45
  • Corvin82
    Schon länger dabei
    Punkte
    260
    Beiträge
    38
    • 10. August 2008 um 20:45
    • #1

    Hallo,

    Ich muss vorausschicken, dass ich noch Neuling bin in PHP. Aber ich habe folgendes Problem:

    Ich will mir über die Eingabe über ein Formular einen Quelltext für eine ganz neue Seite erstellen lassen.

    1. Ich habe eine Seite mit einem Formular. Dort wird ein Feld angezeigt, in dem man einen Dateinamen angeben kann. Diese Textbox wird in der Variable angebot1 abgespeichert.

    2. Nach der Übergabe soll die Variable auf der folgenden Seite in ein Textfeld eingefügt werden, in dem schon ein PHP-Code steht. Der Code wird lediglich mit der Variable kompletiert.

    3. Das Codefragment das verfollständigt werden soll sieht so aus:

    PHP
    <? include ("00000.php"); ?>

    Anstatt der 00000.php soll der Dateinname von der ersten Seite eingefügt werden, den man angeben kann.

    Ich dachte das müsste dann so aussehen:

    PHP
    <? include (" <?php echo $_POST['angebot1']; ?>.php"); ?>

    Leider kommt dann eine Fehlermeldung:

    Zitat

    Parse error: syntax error, unexpected '"', expecting T_STRING or T_VARIABLE or T_NUM_STRING in /www/htdocs/w0080104/test/include_forester1.php on line 45

    Ich habe jetzt schon öfter gehört, dass ich das tunlichst unterlassen soll, und das mir das nur Probleme bringt. Aber ich würde gerne wissen, ob es irgendwie funktioniert oder ob es eine andere Möglichkeit gibt das zu machen.

    Danke

    Corvin

    Betriebssystem: Windows XP Home SP2
    PC-System: AMD Sempron 2800+, 1,60GHz und 704 MB erkannten Arbeitsspeicher
    Netzwerk: Verbunden über Lan-Kabel, Laptop verbunden über WLan, Router: Speedport W500V

  • *Blue*
    Supermoderator
    Punkte
    25.620
    Beiträge
    4.578
    • 10. August 2008 um 21:36
    • #2

    Hallo

    Setze einmal:

    Code
    [COLOR=#0000bb][FONT=Courier New]$datei[/FONT][/COLOR]


    vor " Angebot" ein

    -Forensuche-

    -Forenregeln-

    !!WinTT Sicherheitscheck !!

    !-Windows XP mit Bordmitteln reparieren-!

    Als Gott sah, dass er die Menscheit nicht mit Seuche, Pest und Sintflut bestrafen konnte, schickte er mich!!!

  • cuckoo
    Moderator
    Reaktionen
    1
    Punkte
    9.541
    Beiträge
    1.890
    • 10. August 2008 um 22:14
    • #3

    Mit der Include-Anweisung kann in ein Script ein anderere Programmcode reingeladen werden. Man nennt dies auch includen. Als einzigen Parameter dieser Funktion erwartet die Include-Anweisung eine Datei. Da include ein Sprachkonstrukt wie echo ist, werden keine Klammern wie bei normalen Funktionsaufrufen benötigt.

    Ein Absoluter Pfad ist ein Pfad von ganz am Anfang gesehen und startet unter Windows mit dem Laufwerksbuchstaben C:\. Von da aus muss man sich dann durch die Verzeichnisse hangeln bis man an der Gewünschten Datei ist.
    Beispiel:
    <?php
    error_reporting(E_ALL);

    include "/home/www/htdocs/projekt/league/datei.php";
    include "/usr/local/file.php";

    // bzw.

    include "C:\\Programme\\Apache\\htdocs\\datei.php";
    include "D:\\Homepages\\verzeichnis\\file.php";
    ?>

    Ein Kluger bemerkt alles - ein Dummer macht über alles eine Bemerkung.

  • *Blue*
    Supermoderator
    Punkte
    25.620
    Beiträge
    4.578
    • 10. August 2008 um 22:27
    • #4
    Zitat von cuckoo


    include "/home/www/htdocs/projekt/league/datei.php";
    include "/usr/local/file.php";

    // bzw.



    Hab ich das jetzt was falsches geschrieben ?

    -Forensuche-

    -Forenregeln-

    !!WinTT Sicherheitscheck !!

    !-Windows XP mit Bordmitteln reparieren-!

    Als Gott sah, dass er die Menscheit nicht mit Seuche, Pest und Sintflut bestrafen konnte, schickte er mich!!!

  • cuckoo
    Moderator
    Reaktionen
    1
    Punkte
    9.541
    Beiträge
    1.890
    • 10. August 2008 um 22:59
    • #5

    So ist es richtig:

    <?php
    error_reporting(E_ALL);

    include "/home/www/htdocs/projekt/league/datei.php";
    include "/usr/local/file.php";

    Ein Kluger bemerkt alles - ein Dummer macht über alles eine Bemerkung.

  • zorndyuke
    Gerade reingestolpert
    Punkte
    5
    Beiträge
    1
    • 20. Oktober 2008 um 17:55
    • #6

    also... entweder hab ich alles komplett falsch gelesen und dein Problem völlig falsch interpretiert... oder die antworten die folgten sind sowas von... ... ... ...

    Zitat
    PHP
    [COLOR=#000000] [COLOR=#0000BB]<? [/COLOR][COLOR=#007700]include ([/COLOR][COLOR=#DD0000]" <?php echo $_POST["[/COLOR][COLOR=#0000BB]angebot1[/COLOR][COLOR=#DD0000]"]; ?>.php"[/COLOR][COLOR=#007700]); [/COLOR][COLOR=#0000BB]?>[/COLOR] [/COLOR]

    Das ist , wie du bestimmt schon bemerkt hast, falsch!
    Aber warum?

    1. Kurze erklärung: <? bzw. <?php , damit wird dem server gesagt das ein Code anfängt. <?php für php und <? für andere aber funktioniert auch für php.

    1.1 Wenn du <?php benutzt, musst (!) du es zuerst schließe um es nocheinmal benutzen zu können. Wenn du versuchst 2 mal zu starten funktioniert es nicht, deswegen erstmal die <?php in der funktion "include()" raus!

    PHP
    [COLOR=#000000] [COLOR=#0000BB]<?php [/COLOR][COLOR=#007700]include ([/COLOR][COLOR=#DD0000]"echo $_POST["[/COLOR][COLOR=#0000BB]angebot1[/COLOR][COLOR=#DD0000]"]; .php"[/COLOR][COLOR=#007700]); [/COLOR][COLOR=#0000BB]?>[/COLOR] [/COLOR]

    so... das ist leider immernoch falsch, da echo nur für uns Menschen geschafft wurde. Damit wird Text angezeigt. Für den Server reicht es aus nur die Datei selbst zu erwähnen.

    PHP
    [COLOR=#000000] [COLOR=#0000BB]<?php [/COLOR][COLOR=#007700]include ([/COLOR][COLOR=#DD0000]"$_POST["[/COLOR][COLOR=#0000BB]angebot1[/COLOR][COLOR=#DD0000]"]; .php"[/COLOR][COLOR=#007700]); [/COLOR][COLOR=#0000BB]?>[/COLOR] [/COLOR]

    hmm... Sehr wichtiger fehler der dich seeeehr lange verfolgen wird. Es sind die Anführungszeichen. Alles was in ihnen sind, sind Strings.

    1. Einzelne Variablen kommen nicht in Strings rein.

    PHP
    [COLOR=#000000] [COLOR=#0000BB]<?php [/COLOR][COLOR=#007700]include ([/COLOR][COLOR=#DD0000]$_POST["[/COLOR][COLOR=#0000BB]angebot1[/COLOR][COLOR=#DD0000]"];.php [/COLOR][COLOR=#007700]); [/COLOR][COLOR=#0000BB]?>[/COLOR] [/COLOR]

    Die Variablen stellung $_POST ist in PHP standartmäßig da. Das was in der Variable z.B. $_POST['angebot'] steht, sollte am besten mit einzelnen anführungszeichen geschrieben werden.


    PHP
    [COLOR=#000000] [COLOR=#0000BB]<?php [/COLOR][COLOR=#007700]include ([/COLOR][COLOR=#DD0000]$_POST['[/COLOR][COLOR=#0000BB]angebot1[/COLOR][COLOR=#DD0000]'];.php [/COLOR][COLOR=#007700]); [/COLOR][COLOR=#0000BB]?>[/COLOR] [/COLOR]

    Das Semikolon sagt aus das der Code da endet für die Zeile.
    Da es da nicht enden soll und die Position sowieso falsch ist...

    PHP
    [COLOR=#000000] [COLOR=#0000BB]<?php [/COLOR][COLOR=#007700]include ([/COLOR][COLOR=#DD0000]$_POST['[/COLOR][COLOR=#0000BB]angebot1[/COLOR][COLOR=#DD0000]'].php [/COLOR][COLOR=#007700]); [/COLOR][COLOR=#0000BB]?>[/COLOR] [/COLOR]

    Als letzes: Das .php gehört nicht zur $_POST['angebot1'] variable sondern soll nur dahinter gepackt werden damit es die richtige datei endung (in dem fall) hat. Das muss deswegen in Strings da es nur Text ist. ( Nicht zu vergessen, die daten sind NICHT für dich sondern für den Server.)

    PHP
    [COLOR=#000000] [COLOR=#0000BB]<?php [/COLOR][COLOR=#007700]include ([/COLOR][COLOR=#DD0000]$_POST['[/COLOR][COLOR=#0000BB]angebot1[/COLOR][COLOR=#DD0000]'].".php[/COLOR][COLOR=#007700]"); [/COLOR][COLOR=#0000BB]?>[/COLOR] [/COLOR]

    Damit man normale strings fortführen kann, muss man nach einer Variable bzw. vor, ein . (PUNKT) setzen dann ein Anführungszeichen um es einzuleiten, dann der text ( hier .php) danach wieder ein Anführungszeichen um es zu beenden.

    wenn ich jetzt im formular 0000 eingeben habe, müsste
    0000.php included werden.


    Ich hoffe ich konnte es dir gut erklären. Fals ich wie im ersten Satz beschrieben, völlig den pfad verloren habe und alles falsch verstanden habe.. tuts mir leid.

    mfG,
    ZoRNdYuKe - http://dz-net.net

Registrierung

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen

Letzte Beiträge

  • Künstliche Intelligenz in der Plattformentwicklung

    MasonOgden 24. August 2025 um 10:58
  • Wie finde ich die besten Fototapeten für mein Zuhause?

    LukasSchmidt 31. März 2025 um 16:24
  • Was habt ihr euch zuletzt gekauft?

    LarsKlars 3. März 2025 um 10:08
  • Word 2010: Silbentrennung aktivieren

    Mannitwo 28. November 2024 um 16:24
  • Die Kunst des Einschenkens von Bier.

    Mannitwo 22. November 2024 um 17:45

Benutzer online in diesem Thema

  • 1 Besucher
  1. Kontakt
  2. Impressum
  1. Datenschutzerklärung
  2. Nutzungsbedingungen
Community-Software: WoltLab Suite™ 6.0.22