was ist bei diesem Skript falsch?

danielmueller

Gesperrt
Ich bin gerade dabei PHP zu lernen, ich komme bei folgendem Beispiel nicht mehr weiter:
(Zu sehen gibt es das ganze unter:
http://www.daniel-portal.de/test/Test2.php )

PHP:
<html>
<head><title>Z&auml;hl browser z&auml;hl!</title></head>
<body>
<table style="border:#009999 1px solid" bgcolor="#f1f1f1">
<form actin=Test.php method="post">
<tr>
<td>
<input name="w1">
</td>
<td>Hier bitte die Zahl eingeben mit der Browser anfangen soll zu z&auml;hlen!</td>
<tr>
<td>
<input name="w2"
</td>
<td>Hier bitte eine Zahl eingeben bis zu der der Browser z&auml;hlen soll!</td>
</tr>
<tr>
<td><input name="w3"></td>
<td>Hier bitte eingeben in welchen Abschnitten der Browser z&auml;hlen soll!</td>
</tr>
<tr>
<td><input type="submit"</td>
<td><input type="reset"</td>
</tr>
</table>
</form>
<div style="border:#006699 1px solid"; bgcolor="#f1f1f1"; color="blue";>
<?php
$a=$w1;
$b=$w2;
$c=$w3;
if (($a+$b+$c)==0)
  echo"Bitte die Felder oben ausf&uuml;llen!";
else
  while ($a<=$b);
    print ("<b>$a\n</b>"); 
    $a=$a+$c;
?>
</div></body>
</html>
 
<?php
$a=$w1;
$b=$w2;
$c=$w3;
if (($a+$b+$c)==0) {
echo"Bitte die Felder oben ausf&uuml;llen!";
}else {
while ($a<=$b); {
print ("<b>$a\n</b>");
$a=$a+$c;
}
}
?>
 
<?php
$a=$w1;
$b=$w2;
$c=$w3;
if (($a+$b+$c)==0)
echo"Bitte die Felder oben ausf&uuml;llen!";
else
while ($a<=$b);
print ("<b>$a\n</b>");
$a=$a+$c;
?>

Naja, so gesehen ist an dem Skript nichts falsch. Aber prüfe das hier:

1. Mach mal
phpinfo()
und teste, ob dein Hoster vielleicht
register_globlas=off
eingestellt hat. Denn dann kannst Du über ein Formular, je nachdem ob's "post" oder "get" ist, auch nur über die entsprechenden Variablen zugreifen. Es gibt auch noch $_request welches beide Anfragen aufnimmt. Probiers dann mal mit diesem Skript:

$a = $_REQUEST['a'];
$b = $_REQUEST['b'];
$c = $_REQUEST['c']

if (($a+$b+$c)==0)
echo"Bitte die Felder oben ausf&uuml;llen!";
else
{
while ($a<=$b);
{
print ("<b>$a\n</b>");
$a=$a+$c;
}
}

Gruß Xabbu!
 
Zuletzt bearbeitet:
THX für die schnellen Antworten. Mit danubes Skript geht es nun allerdings ist mir ein wenig unklar warum meins denn nicht gefunzt hat, laut den mir bekannten Regeln hätte es nämlich eigentlich gehen müssen. Warum muss man denn

else {
while ($a<=$b); {
print ("<b>$a\n</b>");
$a=$a+$c;

}
}


Die Roten {} setztn bez. wozu sind die gut?
 
Die geschweiften Klammern { } musst Du setzen, wenn Du in einer Abfrage mehrere Befehle ausführen willst.
z.B.:

if($a==$b)
{
erster befehl;
zweiter befehl;
usw....
}

Wenn Du nur einen Befehl ausführen willst, brauchst Du keine geschweiften Klammern:

if($a==$b)
ein_Befehl;


Gruß Xabbu!
 
Zurück