PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : bin absoluter php-n00b


Q-Volt
2002-08-30, 17:31:32
ich habe jetzt angefangen, mich ein wenig mit php auseinanderzusetzen. leider bin ich bis jetzt nicht sehr weit gekommen.

ich habe apache und php installiert.
mein erstes script hat auch schon funktioniert, ist auch nicht sehr anspruchsvoll:

<?
echo "test";
?>

da erscheint, genau wie es sein soll "test" als ausgabe.



aber schon das zweite script funktioniert nicht mehr:

<?
echo "Sie haben $eingabe eingegeben";
?>

die html datei:

<html>
<body>
<form action="eingabe.php" method="post">
<input type="Text" name="eingabe" size="30"><br>
<input type="Submit" name="senden" value="GO!!!">
</form>
</body>
</html>

da erscheint dann nur "Sie haben eingegeben". auch wenn ich bei der html datei irgendwas in das textfield eintippe.

was mache ich falsch?

govou
2002-08-30, 17:55:22
1. Wo hast du Php gehosted? (ich hab bei Puretec und dein Script funzt da!)
2. Versuchs mal mit
echo "Sie haben ".$eingabe." eingegeben";
3. Hier (http://www.dclp-faq.de) findest du Antwort auf (fast) alle Fragen, und hier (http://www.schattenbaum.net/php) meistens auch!

Captain America
2002-08-30, 18:59:40
Du hast wahrscheinlich register_gobals = off in der php.ini. Wenn register_globals = off ist, werden Formular und Query Daten _nicht_ automatisch in normale Variablen gespeichert. In dem Beispiel hier heisst das: $_POST["eingabe"] hat den Wert des Formularfeldes, aber $eingabe nicht.

Wenn du willst, dass auch $eingabe einen Wert hat, musst du in der php.ini "register_globals = on" ändern.

register_globals wurde in neuen PHP-Versionen aus Sicherheitsgründen standardmässig auf off gestellt.

<?
echo "Sie haben " . $_POST["eingabe"] . " eingegeben";
?>

Mehr info: www.php3.de -> nach "register_globals" suchen.

Q-Volt
2002-08-30, 19:11:19
@Mr.B
ich habs bisher nur lokal ausprobiert.

@Captain America
und wie ist register_gobals auf den meisten servern eingestellt?
weil es bringt mir ja nichts, wenns zwar bei mir kokal geht aber dann auf dem server nicht.

@all
danke ich probiers mal aus. wenns nicht geht, rühr ich mich nochmal :)

Q-Volt
2002-08-30, 23:31:38
ok, mit $_Post gehts. mit ".$eingabe." gehts komischerweise nicht. (hab "register_globals" auf "on" gestellt)

jetzt habe ich auch das problem, wie ich eine neue zeile mache, wenn es mehrere "echos" mit variablen hintereinander sind. der befehl dafür ist \n, das weiß ich. aber wo kommt der hin?
für $_Post finde ich da nichts.

Crazy Aimer
2002-08-31, 18:07:05
folgender vorschlag:
du hast eine datei namens "formular.php":


<html>
<body>
<form action="eingabe.php" method="POST">
<input type="Text" name="eingabe" size="30"><br>
<input type="Submit" name="senden" value="GO!!!">
</form>
</body>
</html>


und eine namens "eingabe.php":


<html>
<body>
print "Ihre Eingabe war: \"$eingabe\".";
</body>
</html>


oder du baust über eine if-anweisung alles in einem:
bsp: "eingabe.php":


<html>
<body>
<?php
if( isset($eingabe) && $eingabe != "" ) {
print "Ihre Eingabe war: \"$eingabe\".";
}
else {
print "<form action=\"$PHP_SELF\" method=\"POST\">";
print "<input type=\"Text\" name=\"eingabe\" size=30><br>";
print "<input type=\"Submit\" name=\"senden\" value=\"GO!!!\">";
print "</form>";
}
</body>
</html>


wie du willst ... hab das script jetzt nicht ausprobiert aber müsste klappen :D

Marcel
2002-09-05, 12:01:30
Originally posted by Q-Volt
ok, mit $_Post gehts. mit ".$eingabe." gehts komischerweise nicht. (hab "register_globals" auf "on" gestellt)

jetzt habe ich auch das problem, wie ich eine neue zeile mache, wenn es mehrere "echos" mit variablen hintereinander sind. der befehl dafür ist \n, das weiß ich. aber wo kommt der hin?
für $_Post finde ich da nichts.

\n packst Du einfach in den auszugebenden Text:

<?
echo "Jetzt kommt ein\nZeilenumbruch.";
?>

Schade nur, dass ein HTML-Browser sich darum nicht kümmert.
Der Zeilenumbruch wird also nur sichtbar, wenn Du Dir den HTML-Quelltext der erzeugten Seite anschaust.
Cooler kommt da schon:

<?
echo "Jetzt kommt ein<br>Zeilenumbruch.";
?>

Gruß,
Marcel