djevel666 Skrevet 8. september 2007 Del Skrevet 8. september 2007 Koss kan eg sette ein sperre viss brukeren ikkje har nokk penger til å reise?? Sei viss brukeren har 1000 kr og det koster 1001 kr for å reise... så ska han ikke kunne reise!... Kode: <? ob_start(); include("config.php"); if ($logged[username]) { // the user is logged in! We continue... if (!$_POST[update]) { echo(" <center><form method=\"POST\"> <p> <label> <input type=\"radio\" name=\"by\" value=\"Oslo\" id=\"Reise_0\"> Oslo</label> <br> <label> <input type=\"radio\" name=\"by\" value=\"Bergen\" id=\"Reise_1\"> Bergen</label> <br> <label> <input type=\"radio\" name=\"by\" value=\"Stavanger\" id=\"Reise_2\"> Haugesund</label> <br> </p> <input type=\"submit\" name=\"update\" value=\"Update\"></td> <label></label> <p> </p> </form> </center>"); } else { $by = htmlspecialchars($_POST[by]); // the above lines get rid of all html. echo ("Velkommen til $_POST[by]!"); $update = mysql_query("UPDATE users SET `by` = '$by' where username = '$logged[username]'"); $update = mysql_query("UPDATE users SET penger = penger - 1001 WHERE username = '$logged[username]'"); // updates the information in the database. } } else { // They aren't logged in! echo (""); } ?> Lenke til kommentar
Martin A. Skrevet 8. september 2007 Del Skrevet 8. september 2007 Her var det mye rart å ta tak i. Vi starter på toppen. 1. Short-tags er noe man IKKE bør bruke. Søk litt rundt på forumet så finner du ut at dette er en mening alle deler. Det fjernes forøvrig totalt i PHP6, og du vil få problemet om webhosten slår det av, eller du bytter til en ny host som har dette av. Bytt ut alle <? med <?php. 2. Alle arraynøkler skal innkapsles med fnutter. $_POST[update] => $_POST['update'] $logged[username] => $logged['username'] 3. if (!$_POST[update]), den er ikke særlig elegant. if( !isset( $_POST['update'] ) ) ser penere ut. Mulig det funker bedre også. 4. Bruk echo ' '; om du ikke har noen variabler som skal printes direkte i echo. Man tjener vistnok et par microsekunder på det, da PHP ikke går gjennom teksten og leter etter variabler. Da kan du samtidig kvitte deg med escapeing( \"tekst\" ) av " ". 5. Koden din kan ikke bli Valid (X)HTML. method="POST" skal være method="post". Mulig at action="" er et påkrevd parameter. Dette kommer vel ann på hvilken DOCTYPE man bruker. 6. Slutt å lag enkle små kodesnutter i WYSIWYG-editorer. De har en tendens til å lage masse unødvendig kode som dett: <label></label> <p> </p> 7. $update = mysql_query("UPDATE users SET `by` = '$by' where username = '$logged[username]'"); $update = mysql_query("UPDATE users SET penger = penger - 1001 WHERE username = '$logged[username]'"); Disse to kan slåes sammen til ett query. $update = mysql_query("UPDATE users SET `by` = '$by', penger = penger-1001 WHERE username = '{$logged['username']}'"); Ta også nytte av $update for å sjekke at spørringen faktisk ble godtatt. if( $update === FALSE ) { echo mysql_error(); } For å hive inn den berømte "sperren" som var spørsmålet ditt, må du først kjøre en spørring som sjekker hvor mange penger brukeren faktisk har. } else { $by = htmlspecialchars($_POST[by]); $q = "SELECT penger FROM users WHERE id='{$logged['id']}'"; $res = mysql_query( $q ); $user = mysql_fetch_assoc( $res ); if( $user['money'] > 1001 ) { $update = mysql_query("UPDATE users SET `by` = '$by', penger = penger-1001 WHERE username = '{$logged['username']}'"); if( $update === TRUE ) { echo "Velkommen til {$by}"; } } } Lenke til kommentar
Peter Skrevet 8. september 2007 Del Skrevet 8. september 2007 (endret) Litt rar sjekk der. if( $user['money'] >= $travel['price'] ) { // enough money } else { // insufficient funds } evt. if( $user['money'] < 1001 ) // no travel allowed Endret 8. september 2007 av Nazgul Lenke til kommentar
djevel666 Skrevet 8. september 2007 Forfatter Del Skrevet 8. september 2007 (endret) takk for svar.. ska teste dei nå Edit: Sperren som du sa M4rTiN. Koss seier eg til brukeren om han har forlite penger? Endret 8. september 2007 av djevel666 Lenke til kommentar
Peter Skrevet 8. september 2007 Del Skrevet 8. september 2007 takk for svar.. ska teste dei nå Edit: Sperren som du sa M4rTiN. Koss seier eg til brukeren om han har forlite penger? 9454733[/snapback] Du BURDE kunne grunnleggende PHP, med if-else-struktur før du begir deg ut på et PHP-prosjekt. Lenke til kommentar
KVTL Skrevet 28. januar 2008 Del Skrevet 28. januar 2008 Emnetittelen i denne tråden er lite beskrivende for trådens innhold og det er derfor ingen god emnetittel. Jo bedre og mer beskrivende emnetittelen er, jo lettere er det for andre å skjønne trådens innhold og det vil være lettere å treffe den riktige forumbrukeren med det rette svaret. Ber deg derfor om å endre emnetittel slik at du unngår at en moderator stenger tråden. Vennligst forsøk å ha dette i tankene neste gang du starter en tråd, og orienter deg om hva vår nettikette sier om dårlig bruk av emnetitler. Bruk -knappen i første post for å endre emnetittelen. (Dette innlegget vil bli fjernet ved endring av emnetittel. Ikke kommenter dette innlegget, men gjerne dette innlegget når tittelen er endret, så vil det bli fjernet..) Lenke til kommentar
ThorB Skrevet 3. februar 2008 Del Skrevet 3. februar 2008 1. Short-tags er noe man IKKE bør bruke. Søk litt rundt på forumet så finner du ut at dette er en mening alle deler. Det fjernes forøvrig totalt i PHP6, og du vil få problemet om webhosten slår det av, eller du bytter til en ny host som har dette av. Bytt ut alle <? med <?php. den fjernes ikke i PHP6. hvis du søker i php's møtereferater, så ser du at de har bestemt for å beholde shorttags i PHP6, men å kvitte seg med %% (asp tag style)... men enig i at man bør holde seg til long tags, av den enkle grunn av at shorttags er konfigurerbar av/på og at det er stor sannsynlighet for at den blir fjernet en gang i fremtiden. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå