PelleP Skrevet 5. mai 2010 Del Skrevet 5. mai 2010 Jeg har akkurat begynt å lære php. Bare for å prøve meg litt har jeg laget nedenstående programsnutt som skal la en bruker logge seg inn og ut av MySQL. Det ser ut til at den gjør det den skal, men jeg får en litt irriterende feilmelding: "Warning: mysql_close() expects parameter 1 to be resource, null given in /opt/lampp/htdocs/brukeradministrasjon/min_sql_admin.php on line 33". Kan noen forklare hvorfor, og om det finnes en enkel løsning? <?php $db_server = null; if (isset($_POST['bruker']) && isset($_POST['passord'])) { $bruker = get_post('bruker'); $passord = get_post('passord'); $db_server = mysql_connect('localhost', $bruker, $passord); if(!$db_server) echo ("Unable to connect to MySQL: " . mysql_error()); else { echo $bruker . " er logget in!<br /><br />"; $query = "SHOW databases"; $result = mysql_query($query); if(!$result) echo ("FEIL!" . mysql_error()); else { $rows = mysql_num_rows($result); for($j = 0; $j < $rows; ++$j) { $row = mysql_fetch_row($result); echo $row[0] . "<br />"; } } } } if (isset($_POST['logut'])) { mysql_close($db_server); if(!$db_server) echo "Logget ut!"; } if(!$db_server) { echo <<<_END <form action="min_sql_admin.php" method="post"> <pre> Bruker <input type="text" name="bruker" /> Passord <input type="text" name="passord" /> <input type="submit" value="LOG IN" /> </pre> </form> _END; } else { echo <<<_END <form action="min_sql_admin.php" method="post"> <pre> <input type="hidden" name="logut" value="yes" /> <input type="submit" value="Log ut" /> </pre> _END; } function get_post($var) { return $_POST[$var]; } ?> Lenke til kommentar
Warz Skrevet 5. mai 2010 Del Skrevet 5. mai 2010 Når du kobler deg til mysql er det ikke sånn at denne koblingen varer helt til du kjører mysql_close(). Nei, den stenges hver gang en webside er ferdig loadet. Med andre ord vil ikke variabelen $db_server finnes når du havner i if isset($_POST['logut']) setningen. Derfor, flytt mysql_connect helt til toppen av scriptet. Det vil løse problemet. For øverig skal det ikke være nødvendig å bruke mysql_close() da, som nevnt, database forbindelsen stenges når php scriptet er ferdig kjørt/siden loadet. Lenke til kommentar
PelleP Skrevet 5. mai 2010 Forfatter Del Skrevet 5. mai 2010 Sjekt å vite! Tusen takk! 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å