POST VARS
hans
- php
hi,
folgendes script funzt bei mir einfach nicht! kann das an $POST_VARS oder ähnlichem liegen? wie ist den die syntax richtig in der if bedingung??
thx!
<?
if (testclick)
{
echo "click auf testclick";
}
?>
<form action="<? $PHP_SELF; ?>" method="post">
<table width="200" border="1" align="CENTER">
<tr bgcolor="Gray">
<td align="middle">
<input type="submit" name="testclick" value="testclick">
</tr>
</table>
</form>
hallöchen»» hi,
folgendes script funzt bei mir einfach nicht! kann das an $POST_VARS oder ähnlichem liegen? wie ist den die syntax richtig in der if bedingung??
thx!
<?
if ($testclick == "testclick")
^^^^^^^^^^^^^ //vergiss die variablenbezeichnung nicht
{
echo "click auf testclick";
}
?><form action="<? $PHP_SELF; ?>" method="post">
<table width="200" border="1" align="CENTER">
<tr bgcolor="Gray">
<td align="middle"><input type="submit" name="testclick" value="testclick">
</tr>
</table>
romy
</form>
es handelt sich bei der variablen um einen string, der nicht einfach mit == verglichen werden kann, sondern hier muss der befehl strcmp herhalten. strcmp gibt den wert 0 und nicht 1 zurück, wenn die strings übereinstimmen. ausserdem sollte man vorher die existenz prüfen, ob diese variable überhaupt übermittelt wurde, um scriptfehler zu vermeiden. das kannst du mit:
if (isset($_POST["testclick"] AND !strcmp($_POST["testclick"], "testclick"))
if ($testclick == "testclick")
^^^^^^^^^^^^^ //vergiss die variablenbezeichnung nicht
{
echo "click auf testclick";
}
?>
Ilja
hallöchen
es handelt sich bei der variablen um einen string, der nicht einfach mit == verglichen werden kann, sondern hier muss der befehl strcmp
das stimmt nicht, natürlich kann man strings mit dem == Operator vergleichen
herhalten. strcmp gibt den wert 0 und nicht 1 zurück, wenn die strings
ach ne
übereinstimmen. ausserdem sollte man vorher die existenz prüfen, ob diese variable überhaupt übermittelt wurde, um scriptfehler zu vermeiden. das kannst du mit:
willst du mich schicken, ich weiss wie man das auswertet
sicherlich ist es besser vorher auf Vorhandensein zu überprüfen, aber so hatte ich die Frage nicht verstanden, ausserdem muss es aber gar nicht sein, denn wenn sie nicht gesetzt ist, gibt er halt false zurück und das soll er doch...
ausserdem kann ich sehr wohl auch ohne _POST auf die Variablen zugreifen je nach register globals on/off.
if (isset($_POST["testclick"] AND !strcmp($_POST["testclick"], "testclick"))
if ($testclick == "testclick")
^^^^^^^^^^^^^ //vergiss die variablenbezeichnung nicht
{
echo "click auf testclick";
}
?>
ist echt nicht böse gemeint, ich muss mich aber trotzdem nicht belehren lassen
was hattest DU mit der Nummer bezweckt?
romy
Ilja
ich wollte niemanden verbessern, sondern bei dem problem helfen. ich habe halt gelernt, strings mit der funktion strcmp zu vergleichen und nicht mit dem vergleichs-operator. bei mir bekomme ich auch jedesmal eine warnung, wenn ich eine variable abfragen will, die noch nicht existent ist. deswegen prüfe ich variablen immer auf existens, die aus formularen kommen. was die einstellung betrifft, so werden die meisten srcipte auf fremden server ausgeführt, wo man oftmals aus sicherheitsgründen die variablen aus formularen nicht mehr direkt über den variablennamen ansprechen kann. wenn man einen eigenen server hat, so kann man den natürlich entsprechend einstellen, was aber zu problemen fürhren kann, wenn man die scripte auf andere server überträgt.
wie auch immer, wenn es mehrere lösungen gibt, kann er sich ja eine aussuchen.
Ilja
hallöchen
es handelt sich bei der variablen um einen string, der nicht einfach mit == verglichen werden kann, sondern hier muss der befehl strcmp
das stimmt nicht, natürlich kann man strings mit dem == Operator vergleichen
herhalten. strcmp gibt den wert 0 und nicht 1 zurück, wenn die strings
ach ne
übereinstimmen. ausserdem sollte man vorher die existenz prüfen, ob diese variable überhaupt übermittelt wurde, um scriptfehler zu vermeiden. das kannst du mit:
willst du mich schicken, ich weiss wie man das auswertet
sicherlich ist es besser vorher auf Vorhandensein zu überprüfen, aber so hatte ich die Frage nicht verstanden, ausserdem muss es aber gar nicht sein, denn wenn sie nicht gesetzt ist, gibt er halt false zurück und das soll er doch...
ausserdem kann ich sehr wohl auch ohne _POST auf die Variablen zugreifen je nach register globals on/off.if (isset($_POST["testclick"] AND !strcmp($_POST["testclick"], "testclick"))
if ($testclick == "testclick")
^^^^^^^^^^^^^ //vergiss die variablenbezeichnung nicht
{
echo "click auf testclick";
}
?>ist echt nicht böse gemeint, ich muss mich aber trotzdem nicht belehren lassen
was hattest DU mit der Nummer bezweckt?
romy
Hallo,
folgendes script funzt bei mir einfach nicht! kann das an $POST_VARS oder ähnlichem liegen? wie ist den die syntax richtig in der if bedingung??
1. Syntax if ist i.O.!
2. Im if-Statement benutz mal $HTTP_POST_VARS["testclick"] anstatt testlick
3. in der <form action Zeile schreib
<form action="<? echo $PHP_SELF; ?>" method="post">
4. Zum Testen würde ich einfach mal ein
<?
echo $HTTP_POST_VARS["testclick"];
if ($HTTP_POST_VARS["testclick"])
{
echo "click auf testclick";
}
?>
<form action="<? echo $PHP_SELF; ?>" method="post">
<table width="200" border="1" align="CENTER">
<tr bgcolor="Gray">
<td align="middle"><input type="submit" name="testclick" value="testclick">
</tr>
</table></form>
Das sollte eigentlich laufen.
Liebe Grüße
Martin
Hallo,
hast Du Dir schon mal Kontrollausgaben anzeigen lassen?
Es wurde Dir empfohlen, mit $HTTP_POST_VARS[] zu arbeiten.
define("DEBUG","TRUE"); // jeweils auf TRUE setzen zum Testen...
<?
if (DEBUG) {echo $testclick}
if (testclick)
if $testclick // oder eben die $HTTP_...
{
echo "click auf testclick";
}
?><form action="<? $PHP_SELF; ?>" method="post">
dann musst Du aber hier auch mit $HTTP_SERVER_VARS[PHP_SELF] arbeiten.
<table width="200" border="1" align="CENTER">
<tr bgcolor="Gray">
<td align="middle"><input type="submit" name="testclick" value="testclick">
</tr>
</table></form>
Liebe Grüße aus <http//www.braunschweig.de>
Tom