Avatar billede Slettet bruger
29. august 2004 - 21:27 Der er 6 kommentarer og
1 løsning

Fejl i newsscript til kald - er koden gyldig eller ændret

Prøver at lære lidt Mysql/PHP ved hjælp af et færdigt script, og får denne fejlmelding ved start af index.php efter upload på frac.dk -
Får samme fejl når jeg afvikler på min egen localhost !
............................
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in  /index.php on line 11
............................
index.php ser således ud :

<html>
<head>
<title>index</title>
</head>
<body>

<?php
include("config.php");

$query = mysql_query("SELECT id, file, title, CONCAT(LEFT(text, 200), '...') AS short FROM news ORDER BY id DESC");
(linie 11)while ($row = mysql_fetch_array($query)) {
    echo "<p><b>$row[title]</b><br>";
    echo "<img border='0' src='$row[file]' style='float: left;' width='75' height='75'>";
    echo "<font size='1' face='Tahoma'>";
    echo "$row[short]";
    echo "</font></p>";
    echo "<p><font size='1' face='Tahoma'><a href='show.php?id=$row[id]'>Læs mere...</a></font></p>";
    echo "<br><br>";
}

echo "<p align='center'><a href='admin_login.php'>Admin</a></p>";
?>

</body>
</html>
Avatar billede taskmgr Nybegynder
29. august 2004 - 21:29 #1
Prøv at ændre denne linie:
$query = mysql_query("SELECT id, file, title, CONCAT(LEFT(text, 200), '...') AS short FROM news ORDER BY id DESC");

til:
$query = mysql_query("SELECT id, file, title, CONCAT(LEFT(text, 200), '...') AS short FROM news ORDER BY id DESC") or die(mysql_error());

Se så hvad den fortæller.
Avatar billede Slettet bruger
29. august 2004 - 23:24 #2
Det var nok ventet en fejl- beklager men det kom der ikke - det er pinligt men det skulle være så nemt, men nu får jeg fejl i login. Det ser ud som admin ikke bliver skrevet i db.

jeg ved ikke om du gider, men selvfølgelig for max point, vil du se på det, her kommer det øvrige :

config.php

<?php
$con = mysql_connect("localhost", "root", "");
mysql_select_db("new");
?>
.........
admin_login.php

<?php
session_start();
if (isset($_POST['logind'])) {
    include("config.php");
    $queryadmin = mysql_query("SELECT COUNT(id) FROM admin WHERE user='$_POST[nick]' AND pass='$_POST[pass]'");
    $admin = mysql_fetch_array($queryadmin);
    if ($admin['0'] > 0) {
        $_SESSION['aid'] = 1;
        header("Location: admin.php");
        exit;
    }
}   
?>

<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
Brugernavn: <input type="text" name="root"><br/>
Kodeord  : <input type="password" name=""><br/>
<input type="submit" name="logind" value="Log ind">
</form>
..........
admin.php

<?php
session_start();
if (isset($_SESSION['aid'])) {
    include("config.php");
    if($_POST['upload']){
        if ($_POST['pic'] == 1) {
            $files = $_FILES['upfil']['name'];
            $dist = $_SERVER["DOCUMENT_ROOT"] . "/";
            move_uploaded_file($_FILES['upfil']['tmp_name'], $dist . $files);
        }
        elseif ($_POST['pic'] == 2) {
            $files = "opdatering.gif";
        } else {
            $files = "nopic.gif";
        }
        mysql_query("INSERT INTO news (title, text, name, file) values ('$_POST[title]', '$_POST[text]', '$_POST[name]', '$files')");
        header("Location: index.php");
    }
?>

<html>
<head>
<title>Admin system</title>
</head>
<body>
<p><b>Admin system</b></p>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
<p><input type="text" name="name" size="30" value="forfatter">
<p><input type="text" name="title" size="30" value="overskrift"></p>
<p>Billede:</p>
<p><input type="radio" value="1" checked name="pic"> <input type="file" name="upfil" size="20"> &nbsp;</p>
<p><input type="radio" value="2" checked name="pic"> opdatering på siden</p>
<p><input type="radio" value="3" checked name="pic"> intet billede</p>
<p><textarea rows="6" name="text" cols="26">nyhed</textarea></p>
<p><input type="submit" value="tryk nyhed" name="upload"></p>
</form>
<p align='left'><a href='index.php'>&lt;-- tilbage </a></p>
</body>
</html>

<?php
}
?>
..........

show.php

<?php
include("config.php");
if($_POST['send'] && $_POST['name'] != "navn" && isset($_POST['name'])){
    $_POST['text'] = ereg_replace("<([^>]+)>", "", $_POST['text']);
    mysql_query("INSERT INTO comment (newsid, text, name, mail) values ('$_POST[newsid]', '$_POST[text]', '$_POST[name]', '$_POST[mail]')");
    header("Location: show.php?id=$_GET[id]");
}
?>

<html>
<head>
<title>Nyheden.........</title>
</head>
<body>

<?php
$query = mysql_query("SELECT id, title, text, name FROM news WHERE id='$_GET[id]'");
$row = mysql_fetch_array($query);
echo "<p align='center'><b>$row[title]</b></p>";
echo "<p align='left'><font size='1' face='Tahoma'>";
echo nl2br($row['text']);
echo "</font><p align='left'><font size='1' face='Tahoma'>Skrevet af: [$row[name]]</font></p>";
echo "<p align='left'><a href='index.php'>&lt;-- tilbage </a></p>";
?>

<p align="center"><b>Kommentarer</b></p>
<hr size="1" color="#000000">
<div align="center">
  <center>
  <table border="0" width="350">
    <?php
    $query = mysql_query("SELECT name, text, mail FROM comment WHERE newsid='$_GET[id]' ORDER BY id DESC");
    while ($rows = mysql_fetch_array($query)) {
        echo "<tr>";
        echo "<td width='100%'>";
        echo "<hr size='1' color='#000000' noshade>";
        echo "<p><b>".nl2br($rows['text'])."</b><b><br>";
        echo "</b>af <a href='mailto:$row[mail]'>$rows[name]</a></td>";
        echo "</tr>";
    }
    ?>
  </table>
  </center>
</div>
<hr size="1" color="#000000" noshade width="350">
<form action="<?php echo $_SERVER['PHP_SELF']."?id=$_GET[id]"; ?>" method="post">
<p align="center"><input type="text" name="name" size="20" value="navn"><br>
<input type="text" name="mail" size="20" value="e-mail"></p>
<p align="center"><textarea rows="2" name="text" cols="20">kommentar</textarea></p>
<p align="center"><input type="submit" value="Send" name="send"></p>
<input type="hidden" name="newsid" value="<?php echo $row['id']; ?>">
</form>
<p align="left">&nbsp;</p>
</body>
</html>

......

tabel.sql

CREATE TABLE `news` (
  `id` int(11) NOT NULL auto_increment,
  `title` varchar(100) NOT NULL default '',
  `text` text NOT NULL,
  `name` varchar(100) NOT NULL default '',
  `file` varchar(100) NOT NULL default '',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;

CREATE TABLE `comment` (
  `id` int(11) NOT NULL auto_increment,
  `newsid` int(11) NOT NULL default '0',
  `text` text NOT NULL,
  `name` varchar(100) NOT NULL default '',
  `mail` varchar(150) NOT NULL default '',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;

CREATE TABLE `admin` (
  `id` int(11) NOT NULL auto_increment,
  `user` varchar(30) NOT NULL default '',
  `pass` varchar(50) NOT NULL default '',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;
Avatar billede taskmgr Nybegynder
29. august 2004 - 23:33 #3
Jeg vil gerne hjælpe, men du må lige forklare nærmere hvor du får fejl, og hvilken fejl du får :)
Avatar billede Slettet bruger
30. august 2004 - 11:38 #4
Tak for det...
Jeg aktiverer index.php ( får nu ingen fejl, som angivet i org spm.)
den indlæser ny side kun med ADMIN, altså denne fra index.php

echo "<p align='center'><a href='admin_login.php'>Admin</a></p>";

når jeg så aktiverer ADMIN den kalder admin_login.php for at logge ind og jeg skriver "ROOT" og ingen "PASS", (har prøvet med forskellige user og pass) kommer den blot tilbage med ADMIN-LOGin skærmen igen, altså der bliver ikke logget ind.
.............
>snip fra admin_login.php
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
Brugernavn: <input type="text" name="root"><br/>
Kodeord  : <input type="password" name=""><br/>
<input type="submit" name="logind" value="Log ind">
</form>
..........

er det ikke sådan at dette skal skrives i db ?
..........
>snip fra tabel.sql
CREATE TABLE `admin` (
  `id` int(11) NOT NULL auto_increment,
  `user` varchar(30) NOT NULL default '',
  `pass` varchar(50) NOT NULL default '',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;
...........

Det iriterer mig bare at jeg ikke kan få det til at virke, det er sikkert som sædvanlig en lille ting, som f.eks en space eller tom linie mellem HTML og PHP.
Avatar billede taskmgr Nybegynder
30. august 2004 - 11:47 #5
Prøv at rette admin_login.php til dette:

<?php
session_start();
if (isset($_POST['logind'])) {
    include("config.php");
    $queryadmin = mysql_query("SELECT id FROM admin WHERE user='".$_POST['user']."' AND pass='".$_POST['pass']."'") or die(mysql_error());
    if (mysql_num_rows($queryadmin) > 0) {
        $_SESSION['aid'] = 1;
        header("Location: admin.php");
        exit;
    }
}   
?>

<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
Brugernavn: <input type="text" name="user"><br/>
Kodeord  : <input type="password" name="pass"><br/>
<input type="submit" name="logind" value="Log ind">
</form>
Avatar billede Slettet bruger
30. august 2004 - 17:47 #6
Det hjalp desværre ikke, kommer kun til login siden.
kan man ikke indsætte en code der oplyser fejl i admin_login.php der fortæller lidt om fejl, måske lidt dumt spm. men jeg er jo nybegynder !
Avatar billede Slettet bruger
01. september 2004 - 19:34 #7
Nå !....Det problem fik vi ikke løst
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