Script Problem

Hallo

Ich habe mir mal vor ein paar Tagen ein Buch zum erlernen der PHP Sprache gekauft und habe ein Problem bei dem Script der Quadrierung.

[code]<?
funktion square($zahl){
return $zahl*$zahl;}
?>

Quadratfunktionen <? $a=$_GET['a']; echo"$a × $a=",square($a); ?> [/code] Zum errechnen des Wertes muß man ja nun in der Titelleiste "http://localhost/php/test3.php?a=8" eingeben. Dies funktioniert aber leider nicht. Vieleicht habe ich da etwas falsch verstanden, oder dort liegt ein Fehler im Script vor. Ich komme einfach nicht auf die Ursache des Fehlers.

Für Hilfe wäre ich euch sehr dankbar. Ich muß ja schließlich jeden Schritt verstehen.

Wofür steht denn das &#215 ?

Das ist eine numerische Entity. Somit wird ein Multiplikationszeichen ausgegeben.

Achso, ok. Mit der Abfrage ?a=8 gibst du der Variablen “a” einen Wert zum rechnen.

Ich kenn mich in PHP auch nicht wirklich aus, aber müsstest du dem Script nicht sagen dass $zahl=$a ist? :astonished:

Das wird mit der Zeile bewältigt:

“$zahl” ist eine festgelegte Funktion, welche auch gleich Zahlen erkennt, die via “$_GET” zugeordnet ist.

dieses Sript sollte wenn ?a=8 an die url angehängt wird 8 * 8 = 64 ausgeben, wenn du a = 6 übergibst dann 6 * 6 = 36 und so wieter …

was geht denn da nicht?

So viele Augen, und niemand sieht das “,” anstatt des “.”:

Außerdem gibt es in PHP eine Funktion zum Potenzieren: pow($zahl,$exponent); -> pow($a,2);

hey :slight_smile:

hast du überhaupt einen webserver installiert? =) also einer der php unterstützt

zum unterschied -> html kannste so gucken ( weils nur darstellung/keine berechung ist) für php brauchste nen server ( weil da ja etwas verarbeitet wird)

Tja leute. Leider funktioniert das alles bei meinem lokalen Webserver von Apache (xamp) nicht.

freggle:
Deine Version mit dem austauschen geht leider auch nicht.

Ich hoffe ihr kommt noch die verflixte Lösung. Ich weiß nämlich leider gar nicht mehr weiter.
Denn wie gesagt, ich fange gerade erst mal an mit PHP.

Trotzdem erst mal danke an alle.

Andauernd kommt dieser Text:

Vielleicht sagt euch das ja was.

Ja.
Das ist zumeist ein vergessenes “;” am Zeilenende.
Allerdings in der Zeile zuvor - recht verwirrend am Anfang :wink:

In Deinem Fall ist der Fehler aber schon am Anfang: “<?” müsste doch eigentlich “<?php” heissen…?

im Übrigen: Dein Script hat einen fehler bei der textausgabe.

echo"$a &#215; $a=",square($a);
imo (bin aber selber Anfänger, daher ohne Gewähr :wink: ) müsste es so notiert werden:

Also einfache statt doppelte Anführungszeichen, und ein Punkt statt Komma.

Hallo,

sieht denn keiner, dass am Anfang des Codes “funktion” statt “function” steht? :smiley:

So müsste es funktionieren (getestet mit PHP 5):

[code]<?
function square($zahl){
return $zahl*$zahl;}
?>

Quadratfunktionen <? $a=$_GET['a']; echo"$a × $a=",square($a); ?> [/code]

Beim echo kann man statt demm . auch ein , schreiben, aber schöner finde ich es mit einem Punkt.

Bei Funktionen kann man beim Aufruf Parameter übergeben in den Klammern, welche im Funktions-Header (denke mal, dass das “function name($params)” so heißt) angegeben werden müssen.

Die Fehlermeldung tritt meistens auf, wenn irgendwo ein " bzw ’ nicht geschlossen wird.
In diesem Fall weiß ich nicht, wieso PHP die Fehlermeldung in Zeile 5 anzeigt, aber in meinem PHP-Editor wird nur “square” (Syntaxfehler: unerwartete(s) “square”) und die “{” (Syntaxfehler) unterringelt.

MfG
Fabsch

m, ja, entweder bin ich zu dicht oder keiner hier sieht das:

[code]<?
function square($zahl){
return $zahl*$zahl;}
?>

Quadratfunktionen <? $a=$_GET['a']; echo"$a × $a=",square($a); ?> [/code]

ist falsch, weil foglende ziele nicht richtige geschrieben worden ist:

das müsste normaler weise so heißen:

dann müsste das script eig. laufen, die funktion würd ich aber
übersichtlicher gestalten:

function square($parameter1)
{

$return = $parameter1 * $parameter1;

return $return;

}

mfg
der autor

Ähm an dieser Zeile ist alles in Ordnung… wie ich schon geschrieben habe, geht das so auch, nur ist es so nicht allzu schön, aber es geht und funktioniert!

Und wie du auch nochmal geschrieben hast, ist die 2. Zeile (das “funktion” statt “function” ist falsch) falsch.

i.deFix:
Soweit ich es gelernt habe, kann man in einer PHP Datei das PHP am anfang weglassen.

BBLL*:
Dein Beispiel funktioniert in dieser Schreibform so auch. Ich bleibe aber erst mal an der Form wie ich es gelernt habe. Wenn ich das Buch durch bin, kann ich mich immer noch um die verschiedenen Varianten der Schreibweisen kümmern.

Fabsch:
Vielen dank für deinen Tipp mit dem Wort „function“. Das war der gesuchte Fehler gewesen und jetzt funktioniert es auch wie es soll. :p Manchmal sieht man ja den Wald vor lauter Bäumen nicht mehr.

Somit kann sich der Thead auch wieder schließen und ich beruhigt weiterlernen.

:wink: Danke an alle wegen der Mühe und den zahlreichen Vorschlägen. :wink:

Meine Lösung (kanns leider nicht testen)

hoff das ist richtig =)

verwendet keine short-Tags, die sind auf bplaced zwar aktiviert, aber das muss nicht immer der Fall sein

also statt <? ?> <?php ?>