Permalänk
Inaktiv

PHP kod, rätta mig ?

Tjenare har testat mig på PHP och undrar vad som är wrong med detta ?

<html>
<head></head>
<body>

<form name="formular">
<input type="text" name="term1">
+
<input type="text" name="term2">
=
<br />
<input type="submit" name="send">
<?php
if(isset{$_POST['send'])}{

print "term1 + term2";
}
?>
<br />
</form>
</body>
</html>

Permalänk
Medlem

Du har gjort flera fel. Testa med nedanstående kod och jämför den med din, så lär du upptäcka felen.

<?php if(isset($_POST['send'])) { echo $_POST['term1'] + $_POST['term2']; } ?>

Jag (och de flesta andra) föredrar att använda echo istället för print. Det är helt enkelt snyggare och sägs vara bättre.

Permalänk
Inaktiv

Aaah, det funkade..
Fick bort erroren men fick inget reslutat tack så mycket nu ska jag kolla överm mina misstag tack!

Permalänk
Medlem

Kan vara så att datan plockas in som strängar istället. Testa med:

echo (int)$_POST['term1'] + (int)$_POST['term2'];

Permalänk
Inaktiv

tack tack!

Permalänk
Inaktiv

Vet du hur jag ska beté mig för att få värdena i term1 och 2 stå kvar i text fälten? dem försvinner

Permalänk
Medlem

Det är för att sidan laddas om när man skickar iväg formuläret. Kan du dock lösa enkelt genom att sätta value-attribut på textfälten, t ex:

<input type="text" name="term1" value="<?php echo $_POST['term1']; ?>">

Inte det snyggaste sättet att skriva koden på, men det funkar. Jag brukar bygga upp all HTML i en variabel i PHP och sen skriva ut alltsammans i slutet.

Permalänk
Inaktiv

Funkar inte :S

Permalänk
Inaktiv

Det funkar om man trycker på submit knappen men inte första gångeN ?

Permalänk
Medlem

Hur menar du med första gången?

Permalänk
Inaktiv

När jag går in på sidan..

Permalänk
Medlem

Såklart att det inte funkar, då har ju ingen POST-data skickats.

Permalänk
Medlem
Skrivet av anon167155:

När jag går in på sidan..

För att du ska kunna lagrat något har du tre alternativ beroende på hur permanent det ska vara!

1. Databas, här kan du lagra allt du vill hur länge du vill. Alla kommer åt dessa (om du inte har lösenord etc)

2. Kakor, här kan du spara uppgifterna på din egen dator hur länge du vill. Bara du kommer åt dessa

3. Session, lagras tills webläsaren sängs ner.

Permalänk
Inaktiv

En Session skulle nog vara bra men då är frågan hur gör man en sådan?

Permalänk
Inaktiv

Men Ivarska, hur ska det kunna stå ingenting då?
Asså varför står det errors och inte ingenting?

Permalänk
Medlem

Skulle tro du får Undefined index: varningar första gången du går in på sidan?

Det är för att första gången du går in så finns inte term1 och term2 definerade.

testa

value="<?php if(isset($_POST['term1'])) echo $term1; ?>">

istället

Permalänk
Inaktiv

Då blir det inget error först
men sen när jag ska "räkna" så blir det error och inget resultat detta error kommer upp:
( ! ) Notice: Undefined variable: term1 in C:\wamp\www\Projects\Raknare\index.php on line 11 Call Stack #TimeMemoryFunctionLocation 10.0007685184{main}( )..\index.php:0 "> + ( ! ) Notice: Undefined variable: term2 in C:\wamp\www\Projects\Raknare\index.php on line 13 Call Stack #TimeMemoryFunctionLocation 10.0007685184{main}( )..\index.php:0 "> = 848
( ! ) Notice: Undefined variable: term1 in C:\wamp\www\Projects\Raknare\index.php on line 29 Call Stack #TimeMemoryFunctionLocation 10.0007685184{main}( )..\index.php:0 "> - ( ! ) Notice: Undefined variable: term2 in C:\wamp\www\Projects\Raknare\index.php on line 31 Call Stack #TimeMemoryFunctionLocation 10.0007685184{main}( )..\index.php:0 "> = 0
( ! ) Notice: Undefined variable: term1 in C:\wamp\www\Projects\Raknare\index.php on line 48 Call Stack #TimeMemoryFunctionLocation 10.0007685184{main}( )..\index.php:0 "> * ( ! ) Notice: Undefined variable: term2 in C:\wamp\www\Projects\Raknare\index.php on line 50 Call Stack #TimeMemoryFunctionLocation 10.0007685184{main}( )..\index.php:0 "> = 179776

Permalänk
Medlem
Skrivet av anon167155:

Då blir det inget error först
men sen när jag ska "räkna" så blir det error och inget resultat detta error kommer upp: ...

Det är för att han gjorde en liten miss; det finns ingen variabel vid namn $term1, såvida man inte har aktiverat register_globals (vilket inte rekommenderas). Kör med nedanstående istället, och försök gärna att se logiken så att du även lär dig.

value="<?php if(isset($_POST['term1'])) echo $_POST['term1']; ?>">

Innan var det: "Om $_POST['term1'] är satt, skriv ut $term1."
Nu är det: "Om $_POST['term1'] är satt, skriv ut $_POST['term1']."

Permalänk
Medlem

Ja glömde POST där på echon. Sorry,

Permalänk
Medlem

Antar att post är standard, men jag skulle rekommendera att lägga till method="post" i din form-tag. Det andra alternativet är method="get", vilket gör att variablerna skickas i url:en.