Zum Inhalt springen

Empfohlene Beiträge

Geschrieben (bearbeitet)

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
Geschrieben
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...

Geschrieben
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..

Geschrieben
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?

Geschrieben (bearbeitet)

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
Geschrieben (bearbeitet)
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
Geschrieben

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?

Geschrieben
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?

Geschrieben

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.

Geschrieben

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.

Geschrieben

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.

Geschrieben (bearbeitet)

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_
Geschrieben

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.

Geschrieben

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?

Geschrieben

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.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...