PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : phpinfo klappt, Formular übergibt aber keine Variablen



Gutschy
08.03.04, 23:31
Hi, nach langem Grübeln über mein LAMP Eigenbau ist mir aufgefallen das PHP zwar innerhalb einer Seite läuft z.B.

<html>
<head>
<title>Wochentag</title>
</head>
<body>
<h1>Wochentag<br></h1>
<?
$tag=array("Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag");
$tagzahl=date("w"); //Tag ermitteln
echo "Heute ist $tag[$tagzahl].";
?>
</body>
</html>

aber Formulare wohl nicht mal ein bisschen. Wie reparier ich das denn? Natürlich können die Variablen auch nicht in eine Datenbank geschrieben werden, was mich erstmal auf das Problem gebracht hat. Es gibt da wohl so eine Globale Variable:confused: oder so :rolleyes: die könnte glaub ich helfen, und ausserdem hab ich einen fetten Schnupfen und überhaupt.....

Also kurz, ein Formular übergibt keine Variablen, was kann ich dagegen tun?

sirmoloch
08.03.04, 23:41
$_GET bzw. $_POST benutzt?

Mr. Unix (http://www.mrunix.de) ist dein Freund...;)

Bubble
08.03.04, 23:57
Original geschrieben von Gutschy

Also kurz, ein Formular übergibt keine Variablen, was kann ich dagegen tun?

Vielleicht mal das Beispiel posten? Herrje, es kann 1000 Gründe geben warum es nicht tut, wie glaubst du dass hier einer helfen kann wenn du nicht mal das dazugehörige Beispiel postest inklusive der Fehlermeldung?

Hier ein Beispiel zu posten das a) funktioniert und b) nicht das Geringste mit deinem Problem zu tun hat versteh ich nicht.
Bubble

Destroyer69
09.03.04, 00:21
$name = $HTTP_POST_VARS["name"]; << so sollten die Variablen uebergeben werden seit neuestem sozusagen .... wenns hilft :)

Gutschy
09.03.04, 00:37
Is ja gut!!! Steh ein bisschen neben mir.:ugly:

Kurz gesagt es geht immernoch um: Duplicate entry '0' for key

Das ist die eigentliche Fehlermeldung, ich hab dann die Tabelle variiert, von:


mysql> desc veranstalter;
+-------------------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------------+----------+------+-----+---------+-------+
| Veranstalter_NR | int(5) | | PRI | 0 | |
| Veranstaltungsort | char(30) | YES | | NULL | |
| Adresse | char(40) | YES | | NULL | |
| Veranstalter | char(30) | YES | | NULL | |
+-------------------+----------+------+-----+---------+-------+
4 rows in set (0.00 sec)


in


mysql> desc veranstalterC;
+-------------------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------------+----------+------+-----+---------+-------+
| Veranstalter_NR | int(5) | YES | | NULL | |
| Veranstaltungsort | char(30) | YES | | NULL | |
| Adresse | char(40) | YES | | NULL | |
| Veranstalter | char(30) | YES | | NULL | |
+-------------------+----------+------+-----+---------+-------+
4 rows in set (0.00 sec)


Was immerhin die Fehlermeldung beseitigt hat, aus logischen Gründen. An die Tabelle wurden aber nur Nullen übergeben.


mysql> select*from veranstalterC;
+-----------------+-------------------+---------+--------------+
| Veranstalter_NR | Veranstaltungsort | Adresse | Veranstalter |
+-----------------+-------------------+---------+--------------+
| 0 | | | |
| 0 | | | |
| 0 | | | |
| 0 | | | |
| 0 | | | |
| 0 | | | |
| 0 | | | |
| 0 | | | |
| 0 | | | |
+-----------------+-------------------+---------+--------------+
9 rows in set (0.00 sec)


Dann kam mir die Ahnung das etwas mit dem PHP nicht stimmen könnte, also ein Testformular:



<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Formular Test</title>
</head>
<body>
<form action="testauswertung.php" method="post">
Anrede<input type="radio" name="Anrede" value="m"> Herr
<input type="radio" name="Anrede" value="w"> Frau<br>
Ihr Name: <input type="text" name="Name">
<input type="submit">
</form>
</body>
</html>


Und die Auswertung:



<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>testauswertung</title>
</head>
<body>
<?php
if ($Anrede=="m") {
echo "Hallo Herr ";
}
else {
echo "Hallo Frau ";
}
echo "<b>$Name</b>, herzlich willkommen!\n<br>";

?>

</body>
</html>


Was leider nur zur folgenden Ausgabe führt:


Hallo Frau , herzlich willkommen!


Hoffe ihr könnt euch jetzt ein klareres Bild meines Problems machen.

Destroyer69
09.03.04, 02:48
Bin zwar nich so der PHPprofi, aber so wie es ausschaut fehlen in Deiner auswertung.php die Variablen die du aus dem Formular übergeben willst....
----schnipp----
<?php
// eingaben aus formular und die daten fuer emailversand in variablen
// speichern
$Anrede = $HTTP_POST_VARS["Anrede"];
if ($Anrede=="m") {
echo "Hallo Herr ";
}
else {
echo "Hallo Frau ";
}
echo "<b>$Name</b>, herzlich willkommen!\n<br>";
?>

.... probiers mal so

:)

Destroyer69
09.03.04, 02:52
ups...evtl. muss noch das "value=m" uebergeben werden....das weiss ich aber jetz nich is ja schon bissel spaet aehh frueh :D .... nachti

Athluxpower
09.03.04, 02:55
Hier noch was zum Lesen ....

http://www.dclp-faq.de/q/q-formular-variablen.html

Pingu
09.03.04, 08:04
Hier auch noch was zum lesen: php.net/globals (http://www.php.net/globals)

Pingu

Gutschy
09.03.04, 17:22
Ok, genau das wars. Da ich vorher schon mal mit der Version PHP 4.1 gearbeitet habe war die Verwirrung noch verwirrender, weil da ja der Code ohne Probs lief, aber da ab Version 4.2 die "register_globals" standartmnäßig auf "off" gestellt sind:rolleyes:.

Also nochmal danke an Alle, ihr habt mir wirklich sehr gut geholfen!!!!:cool: