Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

PHP mit HTML-Code kombinieren

Empfohlene Antworten

Veröffentlicht

Hallo an alle!

Ich bin ein absoluter Neuling in PHP.

Habe aus einem Lehrbuch folgendes Beispiel eingetippt:

<?php //Datei: intro/formtest1.php
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN">
<html>
<head>
<meta http-equiv='content-type' content='text/html;
charset=ISO-8859-1'>
<title>Ein Formular mit PHP</title>
</head>
<body>
<?php // Wenn das Formular abgeschickt wurde, Daten ausgeben
if (isset($_POST['Abschicken'])){
printf("<p>Hallo %s %s</p>\n",$_POST['anrede'],$_POST['name']);
}
?>
<form method='POST' action='formtest1.php'>
<select name='anrede'>
<option>Frau</option>
<option>Herr</option>
</select>
<input type='text' name='name'>
<input type='submit' name='Abschicken' value='Los!'>
</form>
</body>
</html>

[/PHP]

Hier sollte man seinen Nachnamen eingeben, und nachdem man 'Los!' gedrückt hat, sollte auf dem Bildschirm 'Hallo Herr/Frau Blabla' erscheinen. Nach dem ich die Datei mit Firefox aufmache,steht bei mir auf dem Bildschirm

Hallo %s %s

\n",$_POST['anrede'],$_POST['name']); } ?>

und danach erst die Felder zum Nameneingeben und Abschicken, und nach dem Drücken auf 'Los!' ändert es sich absolut nichts.

Was mache ich falsch?

Bearbeitet von matse

Hallo an alle!

Ich bin ein absoluter Neuling in PHP.

Habe aus einem Lehrbuch folgendes Beispiel eingetippt:

<?php //Datei: intro/formtest1.php
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN">
<html>
<head>
<meta http-equiv='content-type' content='text/html;
charset=ISO-8859-1'>
<title>Ein Formular mit PHP</title>
</head>
<body>
<?php
// Wenn das Formular abgeschickt wurde, Daten ausgeben

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

?>
<p>Hallo
<?php echo $_POST['anrede']; ?>
<?php echo $_POST['name']; ?>
</p>
<?php
}

?>

<form method='POST' action='formtest1.php'>
<select name='anrede'>
<option>Frau</option>
<option>Herr</option>
</select>
<input type='text' name='name'>
<input type='submit' name='Abschicken' value='Los!'>
</form>
</body>
</html>

[/PHP]

Hier sollte man seinen Nachnamen eingeben, und nachdem man 'Los!' gedrückt hat, sollte auf dem Bildschirm 'Hallo Herr/Frau Blabla' erscheinen.

Das Problem bei mir ist, dass das 'Hallo' schon vom Anfang an auf dem Bildschirm steht, und nach dem Drücken auf 'Los!' sich absolut nichts ändert.

Was mache ich falsch?

gibt der option mal ein value... und dann mußt du ein if einbauen..

und der grund warum du hallo stehen hast ist einfach: du hast in einem <p> TAG (HTML) ein Hallo hingeschrieben...

und mach mal sinnvolle php blöcke... alles was php in einem <?php ?> machen.. und nicht jeden einzelnen befehl...

Ich habe es schon geändert. Siehe oben. Bekomme trotzdem nicht das gewünschte Ergebnis.

Hallo an alle!

Ich bin ein absoluter Neuling in PHP.

Habe aus einem Lehrbuch folgendes Beispiel eingetippt:

<?php //Datei: intro/formtest1.php
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN">
<html>
<head>
<meta http-equiv='content-type' content='text/html;
charset=ISO-8859-1'>
<title>Ein Formular mit PHP</title>
</head>
<body>
<?php // Wenn das Formular abgeschickt wurde, Daten ausgeben
if (isset($_POST['Abschicken'])){
printf("<p>Hallo %s %s</p>\n",$_POST['anrede'],$_POST['name']);
}
?>
<form method='POST' action='formtest1.php'>
<select name='anrede'>
<option>Frau</option>
<option>Herr</option>
</select>
<input type='text' name='name'>
<input type='submit' name='Abschicken' value='Los!'>
</form>
</body>
</html>

[/PHP]

Hier sollte man seinen Nachnamen eingeben, und nachdem man 'Los!' gedrückt hat, sollte auf dem Bildschirm 'Hallo Herr/Frau Blabla' erscheinen. Nach dem ich die Datei mit Firefox aufmache,steht bei mir auf dem Bildschirm

Hallo %s %s

\n",$_POST['anrede'],$_POST['name']); } ?>

und danach erst die Felder zum Nameneingeben und Abschicken, und nach dem Drücken auf 'Los!' ändert es sich absolut nichts.

Was mache ich falsch?

ich könnte dir jetzt ein code zeigen der geht, aber ob du dabei was lernst? lern vielleicht erstmal HTML damit du unterscheiden kannst, was was ist...

... ok ich würder erstmal mit echo arbeiten..

ich könnte dir jetzt ein code zeigen der geht, aber ob du dabei was lernst? lern vielleicht erstmal HTML damit du unterscheiden kannst, was was ist...

... ok ich würder erstmal mit echo arbeiten..

Das Problem ist, das laut dem Lehrbuch sollten die beiden Varianten (auch, wenn sie etwas unübersichtlich sind) reibungslos funktionieren.

Wie würde denn die Anweisung mit echo aussehen?

So der Code geht:

<form action=dieses_skript.php method=POST>

   <select name='anrede'>

     <option value=frau>Frau</option>

     <option value=herr>Herr</option>

   </select>

   <input type=text name=nachname>

   <input name=los type=submit value=los!>

</form>


<?php


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


echo "Hallo, ";


if ($_POST['anrede'] == "herr") echo "Herr ";

	else echo "Frau ";

		echo $_POST['nachname'];	


}


?>

Keine Ahnung, also oft sind in solchen Büchern sehr viele Fehler drin! Aber bekommst du ne Fehlermeldung?

dir mal das tutorial von Quakenet an... oder so..recherchiere im Internet, hier gibts viele guten Seiten wo man viel lernen kann vorallem aber: php.net

also HaveFun!

Bearbeitet von fisianer2009

Herzlichen Dank!

Ich werde es jetzt ausprobieren!

gibt der option mal ein value... und dann mußt du ein if einbauen..

Wenn man einer Option keine Value zuweist wird als Value das genommen was als Text drinnen steht. Von daher bräuchte man hier keine Value da dort ja schon drinnen steht "Herr" bzw. "Frau".

Und die If Abfrage sollte so auch einwandfrei funktionieren.

Keine Ahnung, also oft sind in solchen Büchern sehr viele Fehler drin!

Das bezweifle ich da ich mal davon ausgehe das es auch jemanden gibt der die Bücher abnimmt und die ja wohl kein Geld für etwas verlangen was nicht funktioniert.

Ich nehme an es liegt irgendwie an einer Fehleinstellung des Apache Servers..

Du kannst dir in der Abfrage ob $_POST["abschicken"] gesetzt ist ja auch testweise eine Ausgabe vom Post machen um zu überprüfen ob die Daten überhaupt richtig übermittelt werden.

<?php

echo "<pre>";
print_r($_POST);
echo "</pre>";

?>[/PHP]

Was verwendest du denn für einen Apache Clienten?

Bearbeitet von Mike1990

Ich bin verzweifelt!

Ich habe jetzt folgenden Text in meinem Editor:


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN">
<html>
<head>
<meta http-equiv='content-type' content='text/html;
charset=ISO-8859-1'>
<title>Ein Formular mit PHP</title>
</head>
<body>

<form method=POST action=formtest1.php>
<select name='anrede'>
<option value=frau>Frau</option>
<option value=herr>Herr</option>
</select>
<input type=text name=nachname>
<input type=submit name=Abschicken value='Los!'>
</form>

<?php // Wenn das Formular abgeschickt wurde, Daten ausgeben
if (isset($_POST['Abschicken'])){
echo "Hallo, ";
if ($_POST['anrede'] == "herr") echo "Herr ";
else echo "Frau ";
echo $_POST['nachname'];
}
?>

</body>
</html>
[/PHP]

Nachdem ich diese Datei mit Firefox geöffnet habe, bekomme ich zwei schöne Felder für die Eingabe und kann dann auf "Los!" drücken. Bekomme dann aber nicht die gewünschte Meldung "Hallo, Herr Sowieso!"

Was fehlt denn noch?

Was bekommst du denn für eine Meldung? Hast du vll. irgendwo die Seite auf einen Server damit wir uns die Ausgabe ansehen können?

Was bekommst du denn für eine Meldung?

Gar keine. Die Felder werden einfach geleert.

Hast du vll. irgendwo die Seite auf einen Server damit wir uns die Ausgabe ansehen können?

Äm... Soweit bin ich noch nicht. Wie bringe ich die auf einen Server?

Dazu musst du dir Webspace bei einen Anbieter holen der auch PHP unterstützt und dann die Datei per FTP einfach Hochladen und dann die Datei aufrufen.

Hier hat man eine gute Auflistung von kostenlosen Webhostern:

free PHP web hosting

Hmmm... also bei mir funktioniert es beides problemlos.

Kann dein Webspace denn überhaupt PHP? :confused:

mach mal eine Datei phpinfo.php und schreib folgendes rein:

<?php

phpinfo();

?>

Ruf die dann mal auf und schau, was dir angezeigt wird.

Die Datei hast du aber schon unter der Endung .php gespeichert oder? Andernfalls kann es nicht funktionieren.

hat er, aber vermutlich hat er gar kein webserver sondern tut genau das was er gesagt hat, er öffnet die datei mit firefox.

die beschreibung sieht jedenfalls so aus als würde die seite einfach nur angezeigt und nicht interpretiert.

darüber hinaus, solltest du dir dringend das einbetten von php in html abgewöhnen, ganz schlechter stil. frag mich wieso das immer noch in büchern beschrieben wird.

darüber hinaus, solltest du dir dringend das einbetten von php in html abgewöhnen, ganz schlechter stil.

hm, wie macht mans besser?

Anonsten @Threadersteller versuchs mal mit xampp

stichwort, templates .. haste sicher schon mal gehört ...

schon klar zum schnellen "testen" mag sowas ok sein, aber man sollte sich nich dran gewöhnen. leider wird dieses "testen" in einsteiger büchern so auf 800 seiten vorgemacht.

ja erstmal kleine Brötchen backen... :)

meinste? templates sind nicht sooo schwer.

im einfachsten fall hast du ein normales html dokument mit relativ frei wählbaren platzhaltern.

die kannst du dann vor der ausgabe mit

str_raplace(array('{%blub%}','{%test%}'),array('blah','huhu'),$sHTML);

ersetzen und das ganze per

echo $sHTML;

ausgeben.

find ich jetzt nicht unverständlicher als diesen eingebetteten mist.

ich meinte nicht das man einen neuling auf den ersten 10 seiten mit smarty-ähnlichen engines erschlagen soll, bei denen schon die entwickler selbst nicht mehr jedes detail verstehen.

aber man sollte doch davon absehen ihm zeug beizubringen das so hoffentlich nirgendwo gemacht wird.

Bearbeitet von _n4p_

Ansonsten wird auch oft mit includes von Dateien gearbeitet. Ob jetzt dynamische PHP-Dateien oder statische html-Dateien inkludiert werden, ist dabei dann ja egal.

Das wird dann mittels der PHP-Funktionen include(), include_once(), require(), und require_once() gemacht.

Danke euch allen. Ich werde mir jetzt ein Webspace einrichten und wahrscheinlich ein anderes Buch aus der Bibliothek holen:rolleyes:

Könnt ihr mir was empfelen?

Also für den Einstige finde ich "php for dummies" nicht schlecht. DAs ist aber halt eher was, wenn man noch gar keine Ahnung von PHP u.s.w. hat. Ich weiss nicht, inwiefern das bei dir zutrifft oder ob du schon genau weisst, was man unter Variablen, Konstanten, Operatoren und Funktionen zu verstehen hat, sowie wie man diese benutzt. Falls noch nicht, könnte das Buch etwas für dich sein und sollte auch in der Bücherei zu bekommen sein.

Und nein, das soll keine Anspielung oder so sein, sondern das Buch gibt es wirklich. :rolleyes:

Siehe hier.

hier gibts ein paar: http://forum.fachinformatiker.de/skript-webserverprogrammierung/137289-gute-lietratur-fuer-php-5-anfaenger.html ^^

das ding is halt, das du nicht nach dem ersten buch denken solltest du beherrschst php.

wenn du so ein grundlagen buch durchgelesen hast solltest du dir paar kleinere OSS projekte suchen und versuchen den code bzw das system zu verstehen.

Vielen Dank für die Tipps!

Vielleicht bin ich schon zu spät, aber bevor Du Dir Webspace besorgst, könntest Du das ganze auch lokal mit xampp machen.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.