Avatar billede inctor Nybegynder
03. januar 2006 - 23:22 Der er 20 kommentarer og
1 løsning

Hvad Har Jeg Skrevet Forkert ?

Haii Derude, jeg har denne kode:

<?

@mysql_connect ("localhost" , "navn" , "kode");
@mysql_select_db ("db");

$select_info = mysql_query("SELECT * FROM users WHERE(id='$id')");
$row_info = mysql_fetch_array($select_info);

$sql = mysql_query("SELECT kommentar FROM banned WHERE ip = ".$row_info['username']." AND (datotid > NOW() OR ISNULL(datotid)) LIMIT 1");
$row = mysql_fetch_array($sql);
if(mysql_num_rows($row)>0) {
    //header("location: banned.php");
    echo "Din IP: <b>" . $row['ip'] . " </b> er banned<br>";
    echo "Besked fra admin: " . $row['kommentar'] . "<br>";
}
else
{
    echo "Velkommen: <b>".$row['ip']."</b>";
}

echo "<hr>";
echo "<a href=\"admin.php\">Admin Ban System</a>";

?>

den skulle gerne gøre følgene, tjekke om ens username er i tabellen banned, hvis det er det, så skal den udskrive:
    echo "Din IP: <b>" . $row['ip'] . " </b> er banned<br>";
    echo "Besked fra admin: " . $row['kommentar'] . "<br>";
... Tag jer ikk af der står IP, det har ikk noget at sige da jeg stadig kun tester og rowen os hedder ip i tabellen banned... men når jeg kalder siden får jeg følgende fejl:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\websider\vhosts\minside.dk\httpdocs\chatmap\chat\checkban.php on line 10

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in D:\websider\vhosts\minside.dk\httpdocs\chatmap\chat\checkban.php on line 11
Velkommen:
--------------------------------------------------------------------------------
Admin Ban System


Hvad har jeg lavet forkert ? Please Hjælp Hurtigt ! :D
Avatar billede erikjacobsen Ekspert
03. januar 2006 - 23:24 #1
Få at vide hvad der er galt med

$sql = mysql_query("SELECT kommentar FROM banned WHERE ip = ".$row_info['username']." AND (datotid > NOW() OR ISNULL(datotid)) LIMIT 1") or die(mysql_error());
Avatar billede inctor Nybegynder
03. januar 2006 - 23:26 #2
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND (datotid > NOW() OR ISNULL(datotid)) LIMIT 1' at line 1

Det står der ? og det betyder ?
Avatar billede inctor Nybegynder
03. januar 2006 - 23:27 #3
det virkede indtil jeg brugte username istedet for .. med ens ip virkede det ..
Avatar billede hmortensen Nybegynder
03. januar 2006 - 23:29 #4
Der mangler '' om værdien:
.. ip = '".$row_info['username']."' AND ...
Avatar billede inctor Nybegynder
03. januar 2006 - 23:31 #5
får denne fejl nu:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in D:\websider\vhosts\2cool4you.dk\httpdocs\chatmap\Chat\checkban.php on line 11
Velkommen:
--------------------------------------------------------------------------------
Admin Ban System

?
Avatar billede inctor Nybegynder
03. januar 2006 - 23:31 #6
Linie 11: mysql_num_rows($row)>0) {
Avatar billede hmortensen Nybegynder
03. januar 2006 - 23:32 #7
Det er heller ikke $sql men $row variablen du smider i.
Avatar billede inctor Nybegynder
03. januar 2006 - 23:33 #8
skal der så stå $sql ?
Avatar billede inctor Nybegynder
03. januar 2006 - 23:34 #9
det skulle der, får ingen fejl nu, men nu viser den ikke ens username
Avatar billede erikjacobsen Ekspert
03. januar 2006 - 23:42 #10
Når du siger SELECT kommentar FROM  ....  får du ikke feltet med navnet "ip" med ud.
Avatar billede inctor Nybegynder
03. januar 2006 - 23:42 #11
NååR Jaa Ups .. Sorry .. havde jeg overset .. ;D
Avatar billede inctor Nybegynder
03. januar 2006 - 23:46 #12
nu ser den såN her ud:


$select_info = mysql_query("SELECT * FROM users WHERE(id='$id')");
$row_info = mysql_fetch_array($select_info);

$sql = mysql_query("SELECT * FROM banned WHERE ip = '".$row_info['username']."' AND (datotid > NOW() OR ISNULL(datotid)) LIMIT 1") or die(mysql_error());
$row = mysql_fetch_array($sql);
if(mysql_num_rows($sql)>0) {
    echo "Din IP: <b>".$row['ip']." </b> er banned<br>";
    echo "Besked fra admin: " . $row['kommentar'] . "<br>";
}
else
{
    echo "Velkommen: <b>$row_info[username]</b>";
}

echo "<hr>";
echo "<a href=\"admin.php\">Admin Ban System</a>";

?>

har jeg flere fejl ? den viser stadig ikk mit username i banned, selvom jeg har indsat mit username i tabellen, og datetime er sat til om lang tid ..
Avatar billede erikjacobsen Ekspert
03. januar 2006 - 23:59 #13
Hvad får du ud?
Avatar billede inctor Nybegynder
04. januar 2006 - 00:05 #14
øhm har lige leget lidt med koden.. :D nu ser den såN her ud:


$select_info = mysql_query("SELECT * FROM users WHERE(id='$id')");
$row_info = mysql_fetch_array($select_info);
$sql = "SELECT * FROM banned WHERE ip = '".$row_info['username']."' AND (datotid > NOW() OR ISNULL(datotid)) LIMIT 1";
$query = mysql_query($sql);
$row = mysql_fetch_assoc($query);
if($row_info['username'] = $row['ip'])
{
   
    //header("location: checkban.php");
    echo "Din IP: <b>".$row['ip']."</b> er banned<br>";
    echo "Besked fra admin: " . $row['kommentar'] . "<br>";
}
else

{
    echo "Velkommen: <b>$row_info[username]</b>";
}

echo "<hr>";
echo "<a href=\"admin.php\">Admin Ban System</a>";

?>


Output:

Velkommen:
--------------------------------------------------------------------------------
Admin Ban System

og mit username er i tabellen banned ...
Avatar billede erikjacobsen Ekspert
04. januar 2006 - 00:12 #15
Ja, og hvad er $id ?
Avatar billede inctor Nybegynder
04. januar 2006 - 00:33 #16
den skal den hente fra en side før den her ..
Avatar billede inctor Nybegynder
04. januar 2006 - 01:32 #17
okay har fået den side til at virke nu, nu har jeg en side hvor den skal vise de bannede brugere ... Den ser således ud:
<?php

@mysql_connect ("localhost" , "cnavnt" , "kode");
@mysql_select_db ("cnavnt");

if(isset($_POST['ip']))
{
    $length = "";
    $ip = mysql_escape_string($_POST['ip']);
    $comment = mysql_escape_string($_POST['comment']);
   
    //DATE_ADD('1998-01-02', INTERVAL 31 DAY);
    switch($_POST['length'])
    {
        case 1:
            $length = "DATE_ADD(NOW(), INTERVAL 1 MINUTE)";
            break;
        case 2:
            $length = "DATE_ADD(NOW(), INTERVAL 30 MINUTE)";
            break;
        case 3:
            $length = "DATE_ADD(NOW(), INTERVAL 1 HOUR)";
            break;
        case 4:
            $length = "DATE_ADD(NOW(), INTERVAL 12 HOUR)";
            break;
        case 5:
            $length = "DATE_ADD(NOW(), INTERVAL 1 DAY)";
            break;
        case 6:
            $length = "DATE_ADD(NOW(), INTERVAL 1 WEEK)";
            break;
        case 7:
            $length = "DATE_ADD(NOW(), INTERVAL 1 MONTH)";
            break;
        case 8:
            $length = "DATE_ADD(NOW(), INTERVAL 1 YEAR)";
            break;
        default:
            $length = "NULL";
    }
    $sql = "INSERT INTO banned(ip,datotid,kommentar) VALUES('$_POST[ip]',".$length.",'".$comment."') ON DUPLICATE KEY UPDATE datotid=".$length.",kommentar='".$comment."'";
    $query = mysql_query($sql);
    if(mysql_affected_rows()==0)
    {
        echo mysql_error();
    }
}

echo "<table>\n";
echo "<form action=\"".$_SERVER['PHP_SELF']."\" method=\"POST\">\n";
echo "<tr><th>IP</th><th>Ban-længde</th><th>Kommentar</th></tr>\n";
echo "<tr><td><input type=\"text\" name=\"ip\"></td>\n";
echo "<td><select name=\"length\">\n";
echo "<option value=\"1\">1 minut</option>\n";
echo "<option value=\"2\">30 minutter</option>\n";
echo "<option value=\"3\">1 time</option>\n";
echo "<option value=\"4\">12 timer</option>\n";
echo "<option value=\"5\">1 dag</option>\n";
echo "<option value=\"6\">1 uge</option>\n";
echo "<option value=\"7\">1 måned</option>\n";
echo "<option value=\"8\">1 år</option>\n";
echo "<option value=\"9\">Altid</option>\n";
echo "</select>\n";
echo "</td>\n";
echo "<td><input type=\"text\" name=\"comment\"></td></tr>\n";
echo "<tr><td colspan=\"3\"><input type=\"submit\" value=\"Tilføj Bruger\"></td></tr>\n";
echo "</form>\n";
echo "</table>\n";


$select_user = mysql_query("SELECT * FROM banned ORDER BY ip ASC LIMIT 0,30") or die(mysql_error());
$row = mysql_fetch_array($select_user);

   
        echo "<table>\n";
        echo "<tr><th>IP</th><th>Ban-længde (Ban Udløber)</th><th>Kommentar</th></tr>\n";
        echo "<tr><td>" . $row['ip'] . "</td>\n";
        echo "<td>" . $row['datotid'] . "</td>\n";
        echo "<td>" . $row['kommentar'] . "</td></tr>\n";
        echo "</table>\n";
   
?>


den gemmer den nye bruger i db, men output viser kun en bruger? mit output:


IP    Ban-længde (Ban Udløber) Kommentar
Hej  2006-01-04 01:08:15      fas


hvor ligger ming fejl ? kan ikk selv se den ? :D
Avatar billede erikjacobsen Ekspert
04. januar 2006 - 09:37 #18
Når der skal flere ud skal du bruge en while

while ($row = mysql_fetch_array($select_user)) {
  ...din kode
}
Avatar billede inctor Nybegynder
10. januar 2006 - 10:28 #19
Hmm .. Morten oG Erik smid svar hvis i vil have point ..
Avatar billede erikjacobsen Ekspert
10. januar 2006 - 10:59 #20
Jeg samler ikke på point, tak.
Avatar billede inctor Nybegynder
26. februar 2006 - 20:29 #21
Okey, MOrten har ikk smidt svar så jeg tager dem selv så .. :)
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