Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 15 von 17

Thema: PHP in einem HTML-Dokument/richtig speichern

  1. #1
    TP-Insider Avatar von Sascha79
    Registriert seit
    Jul 2008
    Ort
    Tübingen
    Beiträge
    674

    PHP in einem HTML-Dokument/richtig speichern

    Hallo Leute,

    ich habe hier mal ein paar grundsätzliche Fragen zu PHP in HTML.

    -Bisher habe ich PHP Dateien in einem externen Dokument gespeichert und z. B. im Formular über "action" auf das entsprechende Dokument verwiesen.
    Wie funktioniert das wenn ich für PHP kein seperates Doc. anlegen möchte sondern einfach nach html weiterschreiben möchte???

    -Wenn ich einen mit PHP erstellten Counter auf meinen index legen möchte muss dieser dann unter index.php anstatt unter index.html gespeichert werden?

    Leider habe ich über dieses Thema nur sehr bescheidene Infos im Netz gefunden. Kann mir jemand ein paar Tips geben um hier an gute Info zu kommen??
    Das Leben ist schön -
    Lehren ist die schönste Methode zu lernen.

  2. #2
    TP-Veteran Avatar von Guin
    Registriert seit
    Nov 2006
    Ort
    Nordholz
    Beiträge
    1.684
    Moin.

    Wenn ich einen mit PHP erstellten Counter auf meinen index legen möchte muss dieser dann unter index.php anstatt unter index.html gespeichert werden?
    Wenn das PHP in der Datei ausgefuehrt werden soll, muss die Dateiendung php sein (im Normalfall).
    Wie ein spezieller Counter installiert wird, steht meistens in der beiliegenden readme.txt (oder aehnlich benannt).

    Wie funktioniert das wenn ich für PHP kein seperates Doc. anlegen möchte sondern einfach nach html weiterschreiben möchte?
    PHP-Code:
    <?php
    // hier der PHPcode
    ?>
    <!-- hier dein html -->
    <?php
    // hier kann wieder PHP sein 
    ?>
    <!-- hier kann wieder html sein -->
    Es ist also beliebig mischbar. Das PHP wird nur durch die Tags "<?php ?>" eingeschlossen.

    Kann mir jemand ein paar Tips geben um hier an gute Info zu kommen?
    PHP in HTML? Siehe oben. Da gibt es keinen Zauber.
    Gruss Guin
    Mein Blog

  3. #3
    TP-Special Mod Avatar von steffenk
    Registriert seit
    Feb 2005
    Ort
    Haan / NRW
    Beiträge
    12.869
    wobei ich sagen muss das ich diese Mischung überhaupt nicht mag, es ist schwer zu lesen und daher auch schwer zu pflegen.
    Die gescheiteste Methode ist das Arbeiten mit HTML-Templates.

    TYPO3 · MySQLDumper · dislabs
    ·
    manche Mühlen mahlen schneller ...
    "Ich habe Rücken"
    Horst Schlämmer

  4. #4
    TP-Greis Avatar von Boris
    Registriert seit
    Mar 2001
    Ort
    Stuttgart & Kornwestheim
    Beiträge
    9.420
    wobei ich sagen muss das ich diese Mischung überhaupt nicht mag, es ist schwer zu lesen und daher auch schwer zu pflegen.
    Naja, wenn es um ein einziges Kontaktformular auf einer sonst statischen Seite geht, wäre die Arbeit mit Templates ein wenig zu viel.

    In solchen Fällen sitzt bei mir der gesamte PHP Code oben, darunter dann die reine HTML Ausgabe. Das ist noch sauber und übersichtlich genug.
    My software never has bugs. It just develops random features ...

    » DevShack - die Website des freien Webentwicklers Boris

  5. #5
    TP-Special Mod Avatar von steffenk
    Registriert seit
    Feb 2005
    Ort
    Haan / NRW
    Beiträge
    12.869
    jein

    Es muss ja nicht immer eine Template-Engine sein, auch ganz einfache Methoden sind möglich

    html (contactform.tmpl)
    HTML-Code:
    <h2>###MESSAGE###</h2>
    <form action="###ACTION###" method="post">
    ...
    </form>
    PHP-Code:
    echo strtr(file_get_contents('contactform.tmpl'), array(
      
    '###ACTION###' => $action,
      
    '###MESSAGE###' => $message,
    )); 

    TYPO3 · MySQLDumper · dislabs
    ·
    manche Mühlen mahlen schneller ...
    "Ich habe Rücken"
    Horst Schlämmer

  6. #6
    TP-Insider Avatar von Sascha79
    Registriert seit
    Jul 2008
    Ort
    Tübingen
    Beiträge
    674
    Das bring mal etwas Licht ins Dunkle.

    Dankeschön. Bin aber weiterhin für Vorschläge offen.
    Das Leben ist schön -
    Lehren ist die schönste Methode zu lernen.

  7. #7
    DSB
    DSB ist offline
    TP-Veteran Avatar von DSB
    Registriert seit
    Mar 2005
    Ort
    Weyhe
    Beiträge
    1.137
    Bleibt noch anzumerken, dass eine HTML-Datei standardmäßig nicht an den PHP-Interpreter geschickt wird, so dass PHP-Anweisungen normalerweise NICHT innerhalb von HTML-Dokumenten ausgeführt werden! Deshalb gilt normalerweise schon, dass PHP-Dokumente auch die Dateiendung .php haben sollten sollten.

    Damit auch HTML-Dokumente an den PHP-Interpreter gesendet und die auf der HTML-Seite enthaltenen PHP-Befehle ausgeführt werden, ist eine Einstellung im Webserver zu ändern. Allerdings werden dann grundsätzlich alle HTML-Dateien durch den PHP-Interpreter gejagt, was bei normalen HTML-Dateien unnötig ist und nur Performance kostet.

    Deshalb ist es wesentlich sauberer PHP-Dateien auch als solche zu kennzeichnen, indem man ihnen die Endung .php gibt.
    Gruß, DSB
    Einfaches Backup/ Restore Deiner MySQl-Datenbank
    Zend Certified Engineer PHP5

  8. #8
    TP-Insider Avatar von Sascha79
    Registriert seit
    Jul 2008
    Ort
    Tübingen
    Beiträge
    674
    Ist das hier eine saubere Möglichkeit, oder eher ungeeignet???


    Code:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html>
    <head>
     <title>html_testdokument</title>
    </head>
    <body>
    <div align="center">
    <form action="php_testdokument.php" method="post">
      Feld1: <input name="feld1" size="60" maxlength="60"><br>
      Feld2: <input name="feld2" size="60" maxlength="60"><br>
      <input type="submit" value="Absenden">
    </form>
    </div>
    </body>
    </html>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html>
    <head>
     <title>php_testdokument</title>
    </head><body>
    <?php
    printf("Feld 1:%s<br>Feld 2:%s",
           $_POST["feld1"],
           $_POST["feld2"]);
    ?>
    </body>
    </html>
    Das Leben ist schön -
    Lehren ist die schönste Methode zu lernen.

  9. #9
    DSB
    DSB ist offline
    TP-Veteran Avatar von DSB
    Registriert seit
    Mar 2005
    Ort
    Weyhe
    Beiträge
    1.137
    Das ist sauber, wobei ich es bevorzuge Affenformulare zu benutzen. D.h. die Ausgabe des Formulars und die Prüfung der Eingaben geschieht auf der gleichen Seite, so dass einfacher auf Falscheingaben reagiert werden kann.
    Prinzipeller Aufbau:
    PHP-Code:
    if (isset($_POST['formular_abgeschickt']))
    {
       
    //Prüfung der Eingaben und setzen von Fehlerausgaben
       
    ...
       if (
    $alles_Ok) { // Speichern der Daten und Weiterleitung zur nächsten Seite }
    }

    if (
    $fehler_aufgetreten)
    {
      
    // Ausgabe der Fehlermeldungen
    }

    //Ausgabe des Eingabeformulars
    ?> 
    Gruß, DSB
    Einfaches Backup/ Restore Deiner MySQl-Datenbank
    Zend Certified Engineer PHP5

  10. #10
    TP-Insider Avatar von Sascha79
    Registriert seit
    Jul 2008
    Ort
    Tübingen
    Beiträge
    674
    ...ich habe hier nun mal ein Bsp. in dem ich die Ausgabe in meinem Layout direkt über dem Formular haben möchte.

    Wenn ich das so mache ist alles Pefekt nur das, das echo über dem Layout ausgegeben wird.
    PHP-Code:
    <?php

    error_reporting
    (E_ALL);

    $db_host "localhost";
    $db_user "";
    $db_pass "";
    $db_name "Datenbank";

    if  (isset (
    $_POST['test'] ))

    {

      
    // Maskierende Slashes aus POST entfernen
        
    $_POST get_magic_quotes_gpc() ? array_map'stripslashes'$_POST ) : $_POST;
        
         
      
    //Inhalte der Textfeldern    aus POST holen
      
    $Name $_POST['Name'];
     
    //Verbindung zu Datenbank
    $conID mysql_connect $db_host$db_user$db_pass ) or die("Die Datenbank konnte nicht erreicht werden!");

    if (
    $conID)
    {
      
    mysql_select_db $db_name$conID );
    }

    //Inhalte sammeln der an die Dantenbank gesendet werden soll
    $sql "INSERT INTO `Tabelle`
              (`Name`)
           
           VALUES(
           '" 
    .mysql_real_escape_string ($nome)."'
           )"
    ;
           
    //Inhalte an Dantenbank senden
    mysql_query $sql );

          
    //Prüfen ob Datensatz hinzugefügt wurde
     
    if (mysql_affected_rows() == 1)
      {
      echo 
    "<h1>Die Daten wurden der Datenbank hinzugefügt!</h1>";
      }
     else
      {
      echo 
    "<h1>Die Daten konnten der Datenbank nicht hinzugefügt werden!</h1>";
      }
    }
      
    ?>

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Das ist ein Test!</title>
    <link rel="stylesheet" type="text/css" href="dateiname.css">
    </head>

    <body>

    <div id="container">
    <div id="borderwrap">

     <div id="header"></div><!--end header-->

    <!--beginn topnav--> 
     <div id="topnav">
      <ul id="navigation_top">
       <li></li>
       <li></li>
       <li></li>
       <li></li>
       <li></li>
       <li></li>
      </ul>
     </div>
    <!--end topnav-->
     
    <!--beginn content--> 
     <div id="content">
      <h1></h1>
      <h2></h2>
      <p></p>
            
       <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post" id="autonomoform" name="autonomoform">
       <input type="text" id="Name" name="Name" value="">
       <input type="submit" id="test" name="test" value="Testen">
       </form>
            
     </div><!--end content-->
     
     <div id="footer"></div><!--end footer-->

    </div><!--end borderwrap-->
    </div><!--end container-->
    </body>
    </html>
    ...wenn ich es nun aber so versuche...
    PHP-Code:
    <?php

    error_reporting
    (E_ALL);

    $db_host "localhost";
    $db_user "";
    $db_pass "";
    $db_name "Datenbank";

    if  (isset (
    $_POST['test'] ))

    {

      
    // Maskierende Slashes aus POST entfernen
        
    $_POST get_magic_quotes_gpc() ? array_map'stripslashes'$_POST ) : $_POST;
        
         
      
    //Inhalte der Textfeldern    aus POST holen
      
    $Name $_POST['Name'];
     
    //Verbindung zu Datenbank
    $conID mysql_connect $db_host$db_user$db_pass ) or die("Die Datenbank konnte nicht erreicht werden!");

    if (
    $conID)
    {
      
    mysql_select_db $db_name$conID );
    }

    //Inhalte sammeln der an die Dantenbank gesendet werden soll
    $sql "INSERT INTO `Tabelle`
              (`Name`)
           
           VALUES(
           '" 
    .mysql_real_escape_string ($nome)."'
           )"
    ;
           
    //Inhalte an Dantenbank senden
    mysql_query $sql );

    }
      
    ?>

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Das ist ein Test!</title>
    <link rel="stylesheet" type="text/css" href="dateiname.css">
    </head>

    <body>

    <div id="container">
    <div id="borderwrap">

     <div id="header"></div><!--end header-->

    <!--beginn topnav--> 
     <div id="topnav">
      <ul id="navigation_top">
       <li></li>
       <li></li>
       <li></li>
       <li></li>
       <li></li>
       <li></li>
      </ul>
     </div>
    <!--end topnav-->
     
    <!--beginn content--> 
     <div id="content">
      <h1></h1>
      <h2></h2>
      <p></p>
      
    <?php    
    //Prüfen ob Datensatz hinzugefügt wurde
     
    if (mysql_affected_rows() == 1)
      {
      echo 
    "<h1>Die Daten wurden der Datenbank hinzugefügt!</h1>";
      }
     else
      {
      echo 
    "<h1>Die Daten konnten der Datenbank nicht hinzugefügt werden!</h1>";
      }  
    ?>  
            
       <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post" id="autonomoform" name="autonomoform">
       <input type="text" id="Name" name="Name" value="">
       <input type="submit" id="test" name="test" value="Testen">
       </form>
            
     </div><!--end content-->
     
     <div id="footer"></div><!--end footer-->

    </div><!--end borderwrap-->
    </div><!--end container-->
    </body>
    </html>
    ...wird diese Fehlermeldung über dem Form ausgegeben.
    Warning: mysql_affected_rows() [function.mysql-affected-rows]: A link to the server could not be established in C:\xampp\htdocs\... on line 90.

    Wie kann ich das echo richtig in html einbinden?
    Leider gibt es über dieses Thema (PHP in HTML) sehr wenig Info im Netz.
    Geändert von Sascha79 (06.10.2008 um 01:54 Uhr)
    Das Leben ist schön -
    Lehren ist die schönste Methode zu lernen.

  11. #11
    TP-Greis Avatar von Boris
    Registriert seit
    Mar 2001
    Ort
    Stuttgart & Kornwestheim
    Beiträge
    9.420
    mysql_affected_rows muss direkt nach der Query erfolgen

    Wenn du die Meldung woanders platzieren möchtest, packe diese dann anstelle von echo() in eine Variable, z.B.

    $statusmeldung = "<h1>Die Daten wurden der Datenbank hinzugefügt!</h1>";

    Diese kannst du dann beliebig mit echo $statusmeldung; ausgeben.
    My software never has bugs. It just develops random features ...

    » DevShack - die Website des freien Webentwicklers Boris

  12. #12
    TP-Insider Avatar von Sascha79
    Registriert seit
    Jul 2008
    Ort
    Tübingen
    Beiträge
    674
    Zitat Zitat von Boris Beitrag anzeigen
    Diese kannst du dann beliebig mit echo $statusmeldung; ausgeben.
    ...dies habe ich so gemacht. Das Ergebniss: Es funktioniert, bis auf eine grosse Kleinigkeit. Es wird "Undefined variable" ausgegeben, der Vorgang wird aber trozdem ausgeführt.

    Mein Vorgehen:
    -habe im Netz nach Lösungen gesucht, gefunden hab ich das, das Problem mit register_global zusammenhängen könnte.
    -habe über phpinfo() festgestellt das register_global = off ist.
    -allerdings habe ich auch gelesen das es sehr sinnvoll ist, dieses Problem ohne register_global auf on zu stellen zu lösen.

    Was ich nicht verstehe ist das er die Variable im echo ja ausführt, also wieso sagt er mir das ich eine Variable verwenden möchte die nicht vorhanden ist?
    Das Leben ist schön -
    Lehren ist die schönste Methode zu lernen.

  13. #13
    TP-Specialist Avatar von phpBuddy
    Registriert seit
    Aug 2004
    Ort
    Kaiserslautern
    Beiträge
    4.678
    Bei Fehlermeldung und Hinweisen die nicht sofort klar sind, ist die Webseite PHP Fehlermeldungen eine gute Anlaufstelle. Dort findest Du auch, was hinter der Meldung Undefined Variable steckt. Informationen zu Register_Globals findest Du in der online Doku oder bei php::bar.

  14. #14
    TP-Insider Avatar von Sascha79
    Registriert seit
    Jul 2008
    Ort
    Tübingen
    Beiträge
    674
    ....ich kann´s euch sagen, jetzt wird es Zeit fürs Bett.

    Allerdings möchte ich vorher noch meine Lösung zeigen.
    PHP-Code:
    <?php 
    if (isset($statusmeldung))
    {
    echo 
    $statusmeldung;
    }
    ?>
    Jetzt wird die Fehlermeldung nichtmehr angezeigt. Wenn jemand noch eine bessere Idee hat, her damit. Bin halt doch noch ein schlapper Anfänger, aber heute Nacht hab ich nochmal nen ganzen Schlag dazugelernt.

    Eine letzte Frage hab ich aber noch.
    Was meint ihr zu Register_Globals, muss man sich damit wirklich noch befassen. Denn ich habe in php::bar gelessen, ab PHP6 soll diese Option abgeschafft werden.

    Könnte man nicht allgemein sagen das es besser ist mit register_global = off zu arbeiten?
    Das Leben ist schön -
    Lehren ist die schönste Methode zu lernen.

  15. #15
    TP-Veteran Avatar von Guin
    Registriert seit
    Nov 2006
    Ort
    Nordholz
    Beiträge
    1.684
    Könnte man nicht allgemein sagen das es besser ist mit register_global = off zu arbeiten?
    Das ist die allgemeine Meinung hier und in vielen anderen Foren.
    Gruss Guin
    Mein Blog

Seite 1 von 2 12 LetzteLetzte

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Ähnliche Themen

  1. Textmarken oder Textlinks in einem Dokument
    Von lordkeyboard im Forum GoLive
    Antworten: 2
    Letzter Beitrag: 01.04.2008, 17:38
  2. [CSS] mehrere mouseover Effekte in einem Dokument
    Von danihue im Forum HTML & CSS
    Antworten: 6
    Letzter Beitrag: 03.02.2006, 17:57
  3. InDesign Info: HKS Dokument richtig ausgeben
    Von m.weed im Forum Layout- & Vektor-Programme
    Antworten: 1
    Letzter Beitrag: 13.05.2005, 08:39
  4. Schriftart von einem gescannten Dokument
    Von Orgeneral im Forum Photoshop
    Antworten: 5
    Letzter Beitrag: 10.05.2005, 12:13
  5. css von einem dokument in ein neues übertragen
    Von motz im Forum Dreamweaver & andere Webeditoren
    Antworten: 2
    Letzter Beitrag: 05.04.2004, 16:34

Stichworte

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

Berechtigungen

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

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51