Avatar billede netspinner Nybegynder
10. december 2004 - 15:14 Der er 1 løsning

Stort upload-script virker ikke!

Hej,
jeg har lavet en kraftig modificering af AHV's "news", problemet er bare at mine billeder ikke vil vises. De bliver fint uploadet til et bibliotek på serveren, men kan ikke vises på index-siden...

Jeg lister her samtlige filer i håbet om at en eller anden har lyst til at kigge koden igennem, meget gerne teste på egen server.

Database
========
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 ;




1/5 - admin.php
===============
<?php
session_start();
if (isset($_SESSION['aid'])) {
    include("config.php");
    if($_POST['upload']){
        if ($_POST['pic'] == 1) {
            $files = $_FILES['upfil']['name'];
            $dist = "/home/02/testupload/pics/";
            //$dist = $_SERVER["DOCUMENT_ROOT"] . "/pics/"; //gammel løsning
            move_uploaded_file($_FILES['upfil']['tmp_name'], $dist . $files);
        }
      elseif ($_POST['pic'] == 2) {
        $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>
<link rel="stylesheet" type="text/css" href="style.css">
</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="Photographer">
<p><input type="text" name="title" size="30" value="Title"></p>
<p>Picture:</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"> Article w/o picture</p>
<p><textarea rows="10" name="text" cols="40">Description</textarea></p> <!--gamle: rows:6;cols:26-->
<p><input type="submit" value="Submit" name="upload"></p>
</form>
<p align='left'><a href='index.php'>&lt;-- Go back </a></p>
</body>
</html>
<?
}
?>




2/5 - admin_login.php
=====================
<?php
session_start();
if (isset($_POST['login'])) {
    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;
    }
}   
?>
<link rel="stylesheet" type="text/css" href="style.css">
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
Nickname: <input type="text" name="nick"><br/>
Password: <input type="password" name="pass"><br/>
<input type="submit" name="login" value="Log In">
</form>




3/5 - config.php
================´
<?php
$con = mysql_connect("host", "user", "passw");
mysql_select_db("database");
?>




4/5 - index.php
===============
<html>
<head>
<title>index</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>

<?php
include("config.php");
echo "<p align='center'><a href='admin_login.php'>Admin</a></p>";
$query = mysql_query("SELECT id, file, title, CONCAT(LEFT(text, 200), '...') AS short FROM news ORDER BY id DESC");
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]'>Read more...</a></font></p>";
    echo "<br><br>";
}
?>
</body>
</html>



5/5 - 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>The Pictures</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<script language=\"JavaScript\">
    function print()
    {
    if (navigator.appName != \"Netscape\" || navigator.appVersion.substring(0,1) > 4) window.print();
    }
</script>
<p align='right'><i><b>Your Options >></i></b> <a href="java script:print();"><img src="printable.gif" border="0"><small> Print</small></a></img>&nbsp;&nbsp;&nbsp;<a href="mailto:?subject='link'!"><img src="email.bmp" border="0"><small> Notify Friend</small></a></p>
<?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'>Uploaded By: [$row[name]]</font></p>";
echo "<p align='left'><a href='index.php'>&lt;-- Go back </a></p>";
?>

<p align="center"><b>User Comments</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>by <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">Name <input type="text" name="name" size="20" value=""><br>
E-mail <input type="text" name="mail" size="20" value=""></p>
<p align="center"><textarea rows="2" name="text" cols="20"></textarea></p>
<p align="center"><input type="submit" value="Submit Comment" name="send"></p>
<input type="hidden" name="newsid" value="<?php echo $row['id']; ?>">
</form>
<p align="left">&nbsp;</p>
</body>
</html>


Til slut skal man lige oprette og CHMOD'e (777) et bibliotek "pics", hvor billederne gemmes.
Avatar billede netspinner Nybegynder
19. april 2005 - 09:50 #1
Nu er der gået for lang tid, og problemet blev løst, hiver pointene hjem igen ;-)
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