21. november 2010 - 02:53Der er
26 kommentarer og 2 løsninger
Lille php kode, virker ikke?
Hej alle på experten, jeg er igang med at få genopfrisket lidt php:) Og derfor er jeg begyndt på at lave lidt sjovt med php, og jeg har lige prøvet at lave et login system uden session, så det skal i ikke tage her af, og det er overhovedet ikke sikkert, men jeg vil bare lige prøve lidt af hvert, for at få det frem i hovedet igen:)... det skal ikke sige jeg har været expert, men jeg kunne da lidt engang:)
Nå nu til min kode:
<?php
$db = mysql_connect("localhost", "root", ""); mysql_select_db("123", $db); $table = $_POST['login']; $mysql_result = mysql_query ("SELECT joke FROM jokes WHERE joke_no=1", $db); if ($mysql_result == "admin") {
echo "you are logged in"; } else{ echo "you are not logged in"; } ?>
Kan nogen se fejlen her?, i min database er joke_no=1's verdi admin(eller hvad man nu siger)
Du husker funktionen mysql_result() fra gamle dage og mener, korrekt, at den kan bruges her. Men du husker ikke hvordan. Det skal jeg vise dig. Foerst vil jeg foreslaa at du kalder variabelen noget andet end $mysql_result for ikke at forvirre. Denne kode skulle virke:
$result = mysql_query ("SELECT joke FROM jokes WHERE joke_no=1", $db); if (mysql_result($result, 0) == "admin") { echo "you are logged in"; } else { echo "you are not logged in"; }
Jeg har gjort alt, det du sagde, og det virker fint hvis jeg f. eks giver en variabel værdien "admin" og så siger i min if sætning at hvis værdien på den variabel er "admin", så skal den bla bla..... og det virker fint, men hvis jeg derimod, ændre min variabel, til at hente infomationen fra databasen, så siger den bare "you are not logged in"... min kode ser på nuværende tidspunkt således ud:
<?php $admin = "admin"; $db = mysql_connect("localhost", "root", ""); mysql_select_db("123", $db); $table = $_POST['login']; $mysql_pass = mysql_result($result, 0); $result = mysql_query ("SELECT joke FROM jokes WHERE joke_no=1", $db); if ($mysql_pass == "admin") { echo "you are logged in"; } else { echo "you are not logged in"; } ?>
$result = mysql_query ("SELECT joke FROM jokes WHERE joke_no=1", $db); $mysql_pass = mysql_result($result, 0);
eller.... men det virker stadig ikke, kan i ikke skrive en helt korrekt mysql data, som jeg bare skal indsætte via en mysql forspørgsel... og så rette hele koden til?
Jeg har vaeret udenbys indtil nu, derfor har jeg ikke fulgt med i traaden.
Er det garanteret at din tabel er created og vaerdier indsat noejagtigt som du siger i #5?
I saafald skal det virke som sagt i #7. Inden jeg svarede lavede jeg en mini-database og en mini-hjemmeside, og jeg fik resultatet 'you are logged in'.
Et paar hjaelpeforslag:
(1) Brug i din query "...or die(mysql_error())"; Saa fortaeller mysql dig hvis noget gaar galt med queryen.
(2) Skriv resultatet af queryen ud (allerede naevnt i andre indlaeg): echo $mysql_pass; Saa kan du se hvad resultatet er. Det skulle gerne vaere 'admin'
Saa hele koden, med udgangspunkt i koden i dit oprindelige spoergsmaal og de ovennaevnte forslag:
<?php
$db = mysql_connect("localhost", "root", ""); mysql_select_db("123", $db); //$table = $_POST['login']; $result = mysql_query ("SELECT joke FROM jokes WHERE joke_no=1", $db) or die(mysql_error()); $mysql_pass = mysql_result($result, 0); echo $mysql_pass; if ($mysql_pass == "admin") echo "you are logged in"; else echo "you are not logged in"; ?>
Og saa en kommentar. Du siger:"Kan i ikke bare lave hele koden..." Det skal ikke glemmes at Eksperten er hjaelp til selvhjaelp.
He, det virker stadig ikke:(.... og ja jeg ved godt at Eksperten er hjælp til selvhjælp... men jeg tænkte at hvis i skrev koden, kunne jeg være sikker på at det ikke var koden der var noget galt med:)
cyberman29, hvis du har kopieret den kode jeg gav i #16 eller den udvidede version webweaver gav i #18 og det saa ikke virker, saa er det ikke koden det er galt med. Jeg har testet koden, og webweaver som har stoerre erfaring end jeg bekraefter koden. Saa det maa vaere noget andet der er galt. Lad os se den kode du koerer og som ikke virker. Enten kopier det her rub og stub eller giv os et link hvor vi kan se den. Samtidig bekraeft at tabel og data du bruger er noejagtig som angivet i #5 eller giv os den reviderede tabel og data.
Okay, Jeg har nu kopiret den rub og stup.... men kan i ikke give mig noget data som jeg bare skal lave i en mysql forespørgsel... så vi er sikre på at min mysql data er korrekt:)
cyberman29, du kom ikke tilbage. Misforstod jeg dit indlaeg #20, at du havde kopieret din kode 'rub og stup' saa vi kan se den? I saa fald glemte du at inkludere koden, eller et link til koden, og det bad jeg om i #21. Hvis det er forkert, hvordan kommer vi saa videre?
Jeg lavede som sagt for test en mini-hjemmeside med tilhoerende mysql tabel som virker efter hensigt. Jeg kaldte tabellen cyberman og den sidder paa mit eget mysql (som jeg i koden har xxx'et ud.) Her er hjemmesiden der siger "you are logged in" http://christianjorgensen.be/cyberman.php . Koden og tabellen er vist herunder. Hvis du har brug for yderligere hjaelp kommer du nok til at vise din egen kode.
Der er ikke mange x'er i koden. Det er vel ikke dine login oplysninger til din MySQL du lige har postet Christian_Belgien? I såfald må du hellere lige hive fat i en co admin og få rettet indlægget.
Okay, men hvem er co admin, og ja det var det vidst:/..... men undskyld jeg ikke lige har været aktiv for tiden... men jeg kigger på min mail, og ser om der kommer nye indlæg, og jeg har ikke modtaget nogle mail, at der var kommet noget nyt her, så undskyld:/
Men bare rolig, login oplysninger var bare fra min localserver, som jeg kørte på min computer
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.