Som besökare på Hamsterpaj samtycker du till användandet av s.k. cookies för att förbättra din upplevelse hos oss. Jag förstår, ta bort denna ruta!
Annons

Php hjälp.

Skapad av Methylviologen, 2010-11-25 20:55 i Webbutveckling & Programmering

1 616
17 inlägg
0 poäng
Methylviologen
Visningsbild
P 31 Hjälte 747 inlägg
0
Hej! Har nyss börjat koda i PHP i skolan och har fått en uppgift, men jag får inte koden att fungera och min lärare visste inte heller vad problemet var...
Koden som jag har skrivit är:

if (isset($_POST['age1'])){
$age1 = $_POST['age1'];
}
if (isset($_POST['age2'])){
$age2 = $_POST['age2'];
}
if (isset($_POST['age3'])){
$age3 = $_POST['age3'];
}
if (isset($_POST['age4'])){
$age4 = $_POST['age4'];
}

if (($age1 > 6) && ($age2 > 6) && ($age3 > 6) && ($age4 > 6)){
$ag= '1';
}

Jag har från post tagit att $age1 är 2 och att $age2 är 19.
Men av någon anledning så blir $ag 1.
Jag frågade min lärare men han är inkompetent och kan inte hjälpa, så därför vänder jag mig till er, vad är fel? :)
MVH

Ingen status

Är reklamen ivägen? Logga in eller registrera dig så försvinner den!

Syndafloden
Visningsbild
P 33 Karlstad Hjälte 10 705 inlägg
0
Förstår inte riktigt. Förklara situationen, vad som ska hända och hur du skickar information etc : )

HEH, TIME FOR A BIT OF A ROUGH AND TUMBLE

Methylviologen
Visningsbild
P 31 Hjälte 747 inlägg
Trådskapare
0
Vi gör en uppgift där vi ska skapa en sida "åt" SF, man ska ha lite filmer, och meningen med denna klumpiga bit kod är att kontrollera åldersgränsen, har liknande koder som fortsätter med målsman etc, men de verkar bli fel någonstans eftersom den skriver $ag som 1 när den inte ska vara det :S
Behöver man dock veta det för att se fel? :D
MVH

Ingen status

Syndafloden
Visningsbild
P 33 Karlstad Hjälte 10 705 inlägg
0

Svar till None4dead [Gå till post]:
Varför har du fyra olika age-grejer?
Finns det fyra valbara åldrar eller hur går det till?
Matar man in sin ålder i ett formulär?

HEH, TIME FOR A BIT OF A ROUGH AND TUMBLE

Methylviologen
Visningsbild
P 31 Hjälte 747 inlägg
Trådskapare
0

Svar till Erotisk_Eruption [Gå till post]:
Man matar in åldrarna i ett <input> och de skickas med post till ett php formulär, enl. uppgiften skulle man max få köpa 4 biljetter så tog fram 4 variabler.

Ingen status

Syndafloden
Visningsbild
P 33 Karlstad Hjälte 10 705 inlägg
0

Svar till None4dead [Gå till post]:
Ålder borde bara behöva en variabel, efersom det bara är en som behöver dem. Jag skulle sätta upp ett formulär med ett textinput för ålder, sedan en select där du loopar fram options, 1-4, som POST'as till en mottagarsida.


På mottagarsidan skulle jag testa:
Ett stycke PHP-kod:


if (isset($_POST)) {
$age = $_POST['age'];
$num_tickets = $_POST['num_tickets'];
} else {
//Gör något annat.
}

Sedan testa om $age är mer elle rlika med tillåten ålder. Kan vara bra att testa så att $num_tickets är 0<x<=4.


HEH, TIME FOR A BIT OF A ROUGH AND TUMBLE

Methylviologen
Visningsbild
P 31 Hjälte 747 inlägg
Trådskapare
0

Svar till Erotisk_Eruption [Gå till post]:



typ som detta?

$o=1;
top
if ($age$o > 6){
$o+1
loop>top
}

else {
header (loc.....
}

Nu ska du veta att jag inte har någon aning om hur man skriver detta i php kod men man kan lägga upp det såhär? :D

Ingen status

Syndafloden
Visningsbild
P 33 Karlstad Hjälte 10 705 inlägg
0

Svar till None4dead [Gå till post]:
Det beror lite på var i koden du är.

Första sidan är nästan bara HTML, och går att skriva i bar aHTML (fast php är lite simplare bara).

andra sidan är också väldigt lätt.

Första sidan:
Jag tänker lite såhär, att vi har en sida där man fyller i sin information (ålder, om man är målsman, och vad man nu kan tänkas ehöva fylla i), och seda skickas den till en annan sida som kollar om det stämmer.


Såeh, första sidan lär väl innehålla något likt det här:
Ett stycke html-kod:


<form action="verify_data.php" method="post">
Skriv in din ålder: <input type="text" name="age" id="age"/><br/>
Välj antal biljetter:
<select> <!-- Skapar en rullista med alternativ //-->
<?php
//Loopar fram alternativen, istället för att manuellt skriva in dem.
for ($i = 1; i<=4; i++) {
echo "<option value="{$i}">{$i}</option>";
}
?>
</select>
<input type="submit" value="gå vidare"/>
</form>


Det är ett helt vanligt HTML-formulär som skickar postdata till php-sidan "Verify_data.php".det lilla PHP-blocket lägger till ett valbart alternativ (1-4) så länge $i är mindre än, eller lika med fyra.


Sedan, på verify_data så hämtar vi postdatan och assignar den till variabler, det har jag redan skrivit.
[code]
if (isset($_POST)) {
$age = $_POST['age'];
$num_tickets = $_POST['num_tickets'];
} else {
//Gör något annat.
}

[/code]
Testa sedan att köra en echo på typ $age för at se om det fungerar.

HEH, TIME FOR A BIT OF A ROUGH AND TUMBLE

Methylviologen
Visningsbild
P 31 Hjälte 747 inlägg
Trådskapare
0
Jag är ny till php och kan inte mycket :) Så undrar: Vad gör for kommandot? ;D for ($i = 1; i<=4; i++) är en loop som upprepar tills $i har varit 1-4?
Men i din text har du bara alternativ för 1 ålder? Medans alla personer kan ha olika? :)
Tack för att du tar dig tid att hjälpa btw :P

Ingen status

Syndafloden
Visningsbild
P 33 Karlstad Hjälte 10 705 inlägg
0

Svar till None4dead [Gå till post]:
Ah, jag tänkte som så att även om man beställer 4 biljetter är det bara en person som genomför köpet/hämtar ut biljetterna/sitter vid datorn.

Ska se omajg kan få igång ett fungerande exempel, ge mig några minuter.

For är en sorts loop, man gör en variabel ($i) med ett värde, sedan sätter man ett condition, edan säger man hur den ska hantera det hela.

Så nu blev det variabelnn $i =1, och sålänge i är mindre än eller lika med 4 så kommer loopen köra, och för varje runda så ökar den i med 1.

så den kollar om i är mindre än eller lika med fyra, så kör den koden i loopen och lägger på 1, sedan kör den igen etc.

HEH, TIME FOR A BIT OF A ROUGH AND TUMBLE

Methylviologen
Visningsbild
P 31 Hjälte 747 inlägg
Trådskapare
0
Pang så tror jag att jag fick det att fungera, dock så måste ju alla 4 åldrar vara ifyllda med min metod, då borde väl denna koden fungera?

if (isset($_POST['age1'])){
$age1=$_POST['age1'];
}

elseif(!isset($_POST['age1'])){
$age1=11;
}

åldersgränsen på bion är 11 ofc.

Ingen status

Syndafloden
Visningsbild
P 33 Karlstad Hjälte 10 705 inlägg
0

Svar till None4dead [Gå till post]:
Hum, det beror på vad du önskar fö rresultat. Nu kollar du ju om en ålder har angivits, om åldern inte angivits sätts den till 11.

Det borde gå att göra så att man först väjer antal biljetter, sedan kommer det upp åldersfält som motsvarar den valda mängden biljetter (dumt att skriva in fyra åldrar om man bara ska ha tre biljetter).

och om !isset() så borde man redirectas eller få upp en varning om att "Nähädu, ingen ålder angavs".

Tänker jag, jag kanske är ute och cyklar ._.

HEH, TIME FOR A BIT OF A ROUGH AND TUMBLE

Methylviologen
Visningsbild
P 31 Hjälte 747 inlägg
Trådskapare
0

Svar till Erotisk_Eruption [Gå till post]:
Det finns 4 text rutor som ligger:

Ange åldrar (Max 4): person1[ruta]person2[ruta]person3[ruta]person4[ruta]

isset satsen kollar om dessa är ikryssade och om den inte är det så hoppar den ju till elseif satsen som sätter att åldern är 11 på icke ikryssade rutor.
Fast det verkar inte fungera i praktiken :P

kommandor !isset är bara något som jag såg flyktigt men det betyder no isset eller?
Skulle det hjälpa om du fick hela koden? :P

Ingen status

Methylviologen
Visningsbild
P 31 Hjälte 747 inlägg
Trådskapare
0
Ang att välja antal biljetter för att sen få upp rutor så visste ingen i klassen eller läraren hur man skulle göra detta xD Så skippade det momentet för denna uppgiften.

Ingen status

Syndafloden
Visningsbild
P 33 Karlstad Hjälte 10 705 inlägg
0

Svar till None4dead [Gå till post]:
JAg ska ta fram ett fungerande exempel om det går!

Man genererar ett formulär där man selectar antalet biljetter och skickar til sig själv, typ.

HEH, TIME FOR A BIT OF A ROUGH AND TUMBLE

Methylviologen
Visningsbild
P 31 Hjälte 747 inlägg
Trådskapare
0


Koden ser nu ut såhär:
if (isset($_POST['age1'])){ //Sätter ålder till det angivna talet genom att först kontrollera om rutan är ikryssad.
$age1 = $_POST['age1'];
}
elseif (!isset($_POST['age1'])){
$age1=11;
}

if (isset($_POST['age2'])){ //Samma som ovan.
$age2 = $_POST['age2'];
}
elseif (!isset($_POST['age1'])){
$age2=11;
}

if (isset($_POST['age3'])){ //Samma som ovan.
$age3 = $_POST['age3'];
}
elseif (!isset($_POST['age1'])){
$age3=11;
}

if (isset($_POST['age4'])){ //Samma som ovan.
$age4 = $_POST['age4'];
}
elseif (!isset($_POST['age1'])){
$age4=11;
}

if (($age1 > 10) && ($age2 > 10) && ($age3 > 10) && ($age4 > 10)){
$age=1;
//kollar att alla är över den rekommenderade åldern.
}

elseif (($age1 > 6) && ($age2 > 6) && ($age3 > 6) && ($age4 >6) && (($age1 > 17) || ($age2 > 17) || ($age3 > 17) || ($age4 > 17))){
$age=1;
//Är inte alla rätt ålder så kollar koden om det finns en myndig person med.
}

else{
$age=2; //Om kunderna inte uppfyllde ålderskraven så blir de nekade.
}

if ($age==2) {
header('Location: ./ung.htm');
// Om en av personerna är under den "behövda" åldern så redirectas sidan till en hemsida som informerar om detta.
}


Ser du vad som kan orsaka felläsning? felkodat?

Ingen status

Syndafloden
Visningsbild
P 33 Karlstad Hjälte 10 705 inlägg
0
Svar till None4dead [Gå till post]:
Nu har jag fixat en rätt smidig grej.


Välj antal biljetter i en lista -> X antal inputs genereras -> fyller i ålder -> om ett eller flera av åldrarna är under tillåten ålder så skickas man till ung.php.

Vill du ha koden och förklaringar til hur det fungerar?
Det är rätt simpelt, ajghar fifflat php sedan oktober typ ^^



http://pastie.org/1326574 - form.php

http://pastie.org/1326576 - verify_data.php
Lägg dem i samma mapp.

man börjar på form.php, och kärnan i form.php är en ifelse-sats. Den kollar först isset($_GET), och om GET inte är satt så får man upp ett form, om GET är satt får man upp ett annat.

!isset(GET) ger ett formulär där man i en rullista väljer antalet biljetter man vill ha. När man trycke rpå "submit" skickas värdet till form.php?num=.
isset(GET), dvs. att man är på form.php?num=1, 2, 3 eller 4 visar ett form som skapar 1, 2, 3 eller 4 stycken ålders-inputfält.

Det formuläret skickar vidare till verify_data.php, som skapar X antal variabler, som motsvarar åldrarna som skickats, sedan kollar den så att inga åldrar är lägreän den tillåtna åldern, om någon ålder är det bryter den och skickar till ung.php.

Det går att göra det ännu snyggare, typ soma tt dra upp åldrarna i en array, det går att bygga in så den kollar om en myndig person finns med etc, men det orkade jag inte nu.

HEH, TIME FOR A BIT OF A ROUGH AND TUMBLE


Forum » Datorer & IT » Webbutveckling & Programmering » Php hjälp.

Ansvariga ordningsvakter:

Användare som läser i den här tråden just nu

1 utloggad

Skriv ett nytt inlägg

Hej! Innan du skriver om ett potentiellt problem så vill vi påminna dig om att du faktiskt inte är ensam. Du är inte onormal och världen kommer inte att gå under, vi lovar! Så slappna av och gilla livet i några minuter - känns det fortfarande hemskt? Skriv gärna ner dina tankar och frågor, vi älskar att hjälpa just dig!

Den här tråden är äldre än Rojks drömtjej!

Det senaste inlägget i den här tråden skrevs för över tre månader sedan. Är du säker på att du vill återuppliva diskussionen? Har du något vettigt att tillföra eller passar din fråga i en ny tråd? Onödiga återupplivningar kommer att låsas så tänk efter en extra gång!

Hjälp

Det här är en hjälpruta

Här får du korta tips och förklaringar om forumet. Välj kapitel i rullningslisten här ovanför.

Rutan uppdateras automagiskt

När du använder funktioner i forumet så visas bra tips här.


Annons
Annons
Annons
Annons