Avatar billede kack Nybegynder
24. november 2004 - 20:56 Der er 7 kommentarer og
1 løsning

Warning: mysql_fetch_array()

Hva betyder dette:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /customers/kack.dk/kack.dk/httpd.www/kackcommunity/login.php on line 6
?

Dette er min kode:

<?php
session_start();
include "db_connect.php";
if($tjek == "yes") {
$sql = mysql_query("SELECT * FROM BRUGERE WHERE brugernavn = '$fbruger'");
$btjek = mysql_fetch_array($sql);
if($fkode == $btjek[kodeord]){
$brugernavn = $btjek[brugernavn];
session_register("brugernavn");
header("location: login_ok.php");
}
else{
$ermsg = "Forkert brugernavn eller password \n";
}
}
if($brugernavn){
header("location: login_ok.php");
}
else{
?>
<HTML>
<HEAD>
<TITLE> community </TITLE>
</HEAD>
<BODY>

<?
if($ermsg){
echo "<font color=\"red\" size=\"2\" face=\"Tahoma\">". $ermsg . "</font><br><br>\n";
}

?>

<FORM ACTION="<?=$PHP_SELF?>" METHOD="POST" NAME="FORM">
<input type="hidden" name="tjek" value="yes">
Brugernavn : <input name="fbruger" type="text"><br>
Kodeord : <input name="fkode" type="password"><br>
<input type="submit" value="login">
</form>
<b><a href="opret.php">- Opret bruger</a></b>
</BODY>
</HTML>
<?
}
?>

Hvad kan der være galt?
Avatar billede schaefner Juniormester
24. november 2004 - 20:57 #1
Tjek hvilken fejl du får fra mySQL:

$sql = mysql_query("SELECT * FROM BRUGERE WHERE brugernavn = '$fbruger'") or die(mysql_error());

Måske BRUGERE skal være med småt?
Avatar billede schaefner Juniormester
24. november 2004 - 20:58 #2
og hvor kommer $fbruger fra?
Avatar billede schaefner Juniormester
24. november 2004 - 20:59 #3
Ahh, den kommer fra din form, så skule du måske også prøve:

$sql = mysql_query("SELECT * FROM BRUGERE WHERE brugernavn = '".$_POST['fbruger']."'") or die(mysql_error());
Avatar billede schaefner Juniormester
24. november 2004 - 21:04 #4
Alt i alt ville jeg lave det sådan:

<?php
session_start();
include("db_connect.php");

if (isset($_POST['tjek'])) {
    $result = mysql_query("SELECT COUNT(*) FROM BRUGERE WHERE brugernavn = '".$_POST['fbruger']."' AND kodeord = '".$_POST['fkode']."'") or die(mysql_error());
    if (mysql_result($result, 0) == 1) {
        $_SESSION['brugernavn'] = $_POST['fbruger'];
        header("Location: login_ok.php");
    } else {
        $ermsg = "Forkert brugernavn eller password\n";
    }
}
?>
<HTML>
<HEAD>
<TITLE> community </TITLE>
</HEAD>
<BODY>

<?php
if (isset($ermsg)) {
    print "<font color=\"red\" size=\"2\" face=\"Tahoma\">". $ermsg . "</font><br><br>\n";
}
?>

<form action="<?php print $_SERVER['PHP_SELF']; ?>" method="post" name="frm">
<input type="hidden" name="tjek" value="1">

Brugernavn : <input name="fbruger" type="text"><br>
Kodeord : <input name="fkode" type="password"><br><br>

<input type="submit" value="Login">
</form>

<b><a href="opret.php">- Opret bruger</a></b>

</body>
</html>
Avatar billede kack Nybegynder
24. november 2004 - 21:04 #5
Tak for din ekstrem hurtige hjælp! Tror ssq det hjalp :)

Men hvorfor viser den ikke det der står i min login-ok.php fil?

<?php
session_start();
include "db_connect.php";

if($brugernavn){
if($page){

echo "<HTML>\n <HEAD>\n <TITLE> community </TITLE>\n </HEAD>\n <BODY>";

if($page == "bliste"){
$sql = mysql_query("select * from brugere");
echo "\t komplet liste over alle bruger:<br><br>";
$strNumber = 0;
while($row = mysql_fetch_array($sql)) {
$strNumber = $strNumber+1;
echo "\t\t #$strNumber - <a OnClick=\"parent.location.href='?page=profil&id=$row[id]'\" style=\"cursor:hand\">$row[brugernavn]</a><br>\n";
}
if($page == "profil"){

$sql = mysql_query("select * from brugere where id = '$id'");
while($row = mysql_fetch_array($sql)) {

echo "\n\t velkommen til $row[brugernavn]'s profil.\n \t Du kan kontakte $row[brugernavn] på følgene e-mail $row[email] \n \n \t <br> Der er ikke andet her.";

}
if($id == NULL){
echo "\n Den afsøgte bruger blev ikke fundet. <br>\n Prøv igen senere.\n";
}
}
if($page == "rbruger"){

if($module){
mysql_query("UPDATE brugere SET email = '$email' WHERE brugernavn = '$brugernavn' OR id = '$brugerinfo[id]");
echo "\n \t<script> \n \t alert(\"Din profil er nu redigeret\"); \n \t parent.location.href='?page=profil&id=$brugerinfo[id]'; \n \t </script>\n";
}

echo "\t <form action=\"login_ok.php\" method=\"post\">\n";
echo "\t <input type=\"hidden\" name=\"page\" value=\"rbruger\"> \n";
echo "\t <input type=\"hidden\" name=\"module\" value=\"action\"> \n";
echo "\t <input type=\"text\" name=\"email\">\n\n";
echo "<input type=\"submit\" value=\"Rediger profil\">\n \t</form>\n";
}

echo "</BODY>\n </HTML>";
}
else{


?>
<HTML>
<HEAD>
<TITLE> community </TITLE>
</HEAD>

<body link="#000000" vlink="#000000" alink="#000000">

<DIV align=left>
<TABLE style="BORDER-COLLAPSE: collapse" borderColor=#111111 height=198 cellSpacing=0 cellPadding=0 width=432 border=0>
<TBODY>
<TR>
<TD vAlign=top width=157 height=198>

<font size="2" face="tahoma">

<a OnClick="parent.frame.location.href='?page=bliste';" style="cursor:hand">Brugerliste</a><br>
<a OnClick="parent.frame.location.href='?page=rbruger';" style="cursor:hand">Ret bruger</a><br>
<a OnClick="parent.location.href='?mod=logOut';" style="cursor:hand">Log af</a>

</TD>
<TD vAlign=top width=269 height=198>
<iframe name="frame" src="?page=start" width="200" height="300" frameborder="0">
</iframe>
</TD></TR>
</TBODY>
</TABLE>
</DIV>

</BODY>
</HTML>
<?
}
if(!$brugernavn){
header("location: login.php?ermsg=Du er ikke logget ind.");
}
}
}
?>

Skal dog lige siges at jeg ikke selv har lavet dette community men er noget jeg har fået fra en tut på www.phpuniverset.dk

Så det er derfor jeg er så hjælpeløs :S
Avatar billede schaefner Juniormester
24. november 2004 - 21:08 #6
For at tjekke om folk er logget ind ville jeg gøre således:

<?php
session_start();
if (!isset($_SESSION['brugernavn'])){
    header("Location: login.php?ermsg=Du+er+ikke+logget+ind");
    exir;
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title></title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
</head>

<body>

Du er logget hvis du kan se det her :)

</body>
</html>

Den sender brugeren til login.php hvis ikke $_SESSION['brugernavn'] er sat
Avatar billede schaefner Juniormester
24. november 2004 - 21:12 #7
Så kan du f.eks. gøre sådan for at udskrive brugernavnet

<?php
print "Du er logget ind som: ".$_SESSION['brugernavn']."<br />";
?>

Læs i øvrigt mere om session her: http://razor.dk/php/guider/sessions/

Med venlig hilsen
Jesper Sørensen
Avatar billede kack Nybegynder
24. november 2004 - 21:15 #8
Tak for det ;) HEr er dine points ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester