• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Mit echo eine HTML-/PHP-Seite ausgeben?

rantanplan2000

Mitglied
Hallo,

ich bin dabei erste Schritte mit php zu machen.

Nun suche ich, denn ich denke das geht bestimmt, - die richtige schreibweise mit echo eine php oder html seite auszugeben. so wie include nur eben mit echo.

echo file_get_contents("test.html"); das funktioniert, aber ist es auch die richtige lösung? gibt ja immer mehrere arten - und ich weis jetzt eben nicht genau ...

die andere frage - kann ich einem echo auch sagen wo es angezeigt werden soll? also echo in div class xy z.b. oder muss der echo befehl immer da stehen wo es angezeigt werden soll?

liebe grüße und danke
 
Zuletzt bearbeitet:
Werbung:
Das kommt darauf an. mit file_get_contents() bekomme ich bspw. den Inhalt schön in einen String übergeben, den ich verarbeiten/parsen kann. Das nutze ich bspw. in meinem Template-Controller. Handelt es sich allerdings um eine .php Seite, die noch durch den PHP-Interpreter gejagt werden muss, sollte man eher include verwenden.
Ansonsten ist file_get_contents() die empfohlene Variante.
 
Werbung:
okay danke.

ja in dem test wollte ich eben eine externe seite mit dem echo befehl laden. das normale include kenne ich ja, geht eben in verbindung mit echo. also in dem beispiel wollte ich über die suchergebnise eben mein head.php laden, einfach zum testen.
 
das normale include kenne ich ja, geht eben in verbindung mit echo.
Die Konstellation habe ich noch nie gesehen, geschweige denn gebraucht...

also in dem beispiel wollte ich über die suchergebnise eben mein head.php laden, einfach zum testen.
Ja, wie gesagt: bei einer .php Datei ist include sicher die bessere Wahl, sofern sich auch PHP-Code darin befindet. Aber um einen Dateiinhalt einfach nur auszugeben mit echo bleibt file_get_contents() die sinnvollere Wahl.

Vielleicht zeigst Du anhand von ein bisschen Code mal, was genau Du machst, dann können wir Dir sicherlich genau sagen, was für den Fall die bessere Wahl ist...
 
Bin gerade etwas am experimentieren. ich will praktisch neben den ergebnissen einfach html code einbauen und da dachte ich kann ich einfach einen include benutzen, statt viele html direkt ins php. also als beispiel zwichen vorname und nachname einfach einen großen html bereich (dient wie gesagt nur zur übung).

Code:
<!doctype html>
<html lang="de">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Titel</title>
  </head>


  <body>

Hallo alter
<div>
<form action = "" method = "post">
   <p><input name="anfang"></p>
   <p><input type="submit"> <input type="reset"></p>
</form>


Lorem ipsum dolor sit amet, consectetur adipisicing elit. Reiciendis, blanditiis, cumque! Voluptatem, quia? Sapiente, veniam magnam explicabo, repellat saepe dolorum adipisci suscipit eligendi ut. Repellat fugiat delectus quas sit quos?


<div style="background:red; width:500px;">

<?php
   $con = mysqli_connect("", "root", "");
   mysqli_select_db($con, "firma");

   $sql = "SELECT name, vorname, gehalt FROM personen";
   $sql .= " WHERE name LIKE '" . $_POST["anfang"] . "'";   // "%'" Ungefähr

   $res = mysqli_query($con, $sql);
   $num = mysqli_num_rows($res);
 
   if($num > 0) echo "Ihre Ergebnis:<br>";
   else         echo "Sorry, keine Ergebnisse gefunden.<br>";


   echo "<table>";

   while ($dsatz = mysqli_fetch_assoc($res))
   
   {
     echo "<tr>";
     echo "<td>" . $dsatz["name"] . "</td>";
     echo "<td>" . $dsatz["vorname"] . "</td>";
     echo "<td>";
     include ("test.php");
     echo "</td>";
     echo "<td>" . $dsatz["name"] . "</td>";
     echo "</tr>";

   }

   echo "</table>";

   mysqli_close($con);

?>


</div>

</body>
</html>

aber wenn ich schon dabei bin. wenn ich die suche in eine externe php mache, läd ja beim anzeigen eine neue seite. jetzt wollte ich alles aber dynamisch laden, daher habe ich den code erstmal direkt ins html gemacht.

brauche ich dafür dann ajax oder ist der code falsch in dem fall?

wenn ich den direkt in die html schreibe steht halt leider immer :

Notice: Undefined index: anfang in C:\xampp\htdocs\index.php on line 37

( $sql .= " WHERE name LIKE '" . $_POST["anfang"] . "'"; // "%'" Ungefähr )

dort. liegt wohl daran dass keine suche so gefunden wird, wenn ich was suche und finde verschwindet die warnung.


also zusammenfassung:

ich wollte die suche so erstellen, dass es dynamisch ohne url änderung läd. dass ich in eine bestehende seite eben die ergebnisse anzeigen lassen kann.

dazu will ich zwischen den abfrageergebnissen ein include einbauen, alternative eben einfach html als echo - also wollte d nur testen ob und wie sowas dann geht.

z.b. vielleicht für später mal, wenn man einen artikel läd, dass oben dann der name angezeigt wird aus der sql - dann kommt die beschreibung (standart text mit einer include einbindung) mittig z.b. dann die technischen angaben aus der sql und am ende der preis. also wie gesagt nur als übung, will keinen shop oder so machen :)
 
Werbung:
Notice: Undefined index: anfang in C:\xampp\htdocs\index.php on line 37
Das'n Klassiker. Beim ersten Aufruf der Seite existieren keine Daten im POST, also gibt es auch kein $_POST['anfang'].
http://www.php-rocks.de/thema/66-undefined-index-var-in-on-line.html

dazu will ich zwischen den abfrageergebnissen ein include einbauen, alternative eben einfach html als echo - also wollte d nur testen ob und wie sowas dann geht.
Hier bedenkst Du nicht, dass PHP zur der Zeit gar nicht mehr läuft! PHP "generiert" ein HTML-Dokument zur Laufzeit. Das was Dir angezeigt wird, ist das Ergebnis dessen und kann weder was mit include anfangen, noch ist es dort existent!

Für Dein Vorhaben empfiehlt sich tatsächlich ein XHttpRequest, aber bevor Du daran gehst, solltest Du erstmal verstehen, was da überhaupt passiert und Dein Test mit dem Kompromiss des neu Ladens lauffähig machen. Dann kann Ajax immer noch drauf gepfropft werden...
 
Danke für den Link.

habe jetzt

if ( isset($_POST['submitted']) ) {

}

um den ganzen php code gebaut, der fehler ist weg. cool! :- )
der fehlergrund war irgendwie klar, das beheben allerdings nicht.
wieder was gelernt. :)

ist es eigentlich besser so ein php extern zu verlinken, oder ist es eigentlich egal? also zwecks sicherheit und performance. habe jetzt ein buch, aber beim punkt sicherheit bin ich noch nicht. nur so die ersten gedanken sind ja, ich muss die sql daten ja eintragen später - die muss ich ja schützen wenn jemand die seite runterläd oder den code anschaut.


mysqli also improved gibt es seit php 5 oder schon früher? wenn ich mal im internet php hilfe suche - auf was muss ich achten? ab php 5 oder höher?
 
Zuletzt bearbeitet:
Zurück
Oben