04. maj 2005 - 13:57
Der er
38 kommentarer og 1 løsning
Upload side
Hej exp.dk
Jeg har tænkt lidt over at lave lidt til min hjemmeside (
www.hybbe.dk )
Princippet skal være som her:
http://www.brughjelmen.dk/gyffe/ Jeg vil gerne så det f.eks. kun er mig og en anden der har adgang til at uploade billeder / andre filer.. (Bemærk jeg skal kunne gi linket vidre til personer som kan se dem)
Skal jeg så til at rode med mysql?
Kan dette laves?
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Uhha det ser kompliceret ud :/
er det ikke, der skal stort set ingen redigering til. specielt ikke nr. 2
(og du kan faktisk ikke få noget som helst der er simplere :] )
Kan du fortælle mig hvad jeg skal redigere, og hvad jeg skal gøre i korte træk :)
Har fået det fixet nu! og chmod til 777 ! Hvad skal jeg gøre for at rette? Warning: move_uploaded_file(skildpadde-18.jpg): failed to open stream: Permission denied in /hsphere/local/home/hybbe/hybbe.dk/Upload/Upload.php on line 17 Warning: move_uploaded_file(): Unable to move '/tmp/phpObd62v' to 'skildpadde-18.jpg' in /hsphere/local/home/hybbe/hybbe.dk/Upload/Upload.php on line 17 Fejl
Har ikke kikket på linkene, men du kan jo starte med dette: (husk chmod til 0777!!!) <?php session_start(); $start_path = $_SERVER["DOCUMENT_ROOT"]; $dir = "/galleri/"; $dist = $start_path . $dir; // Hvor skal filen ligge???? Husk chmod af dir! $user_login = array("admin" => "pass", "bruger" => "b_pass"); // Brugernavne og passwords if(isset($_POST["bruger"], $_POST["password"])) { if(false !== (array_key_exists($_POST["bruger"], $user_login)) && $_POST["password"] == $user_login[$_POST["bruger"]]) { $_SESSION["user"] = 1; }else{ $_SESSION["besked"] = "Forkert brugernavn og/eller password"; } header("Location:". $_SERVER["PHP_SELF"] .""); exit(); } if (isset($_SESSION["user"], $_FILES["upfile"])) { if(is_uploaded_file($_FILES["upfile"]["tmp_name"])) { if(move_uploaded_file($_FILES["upfile"]["tmp_name"], $dist . $_FILES["upfile"]["name"])) { $_SESSION["besked"] = "Filen, ". $_FILES["upfile"]["name"] ." er uploadet. <a href=\"". $dir . $_FILES["upfile"]["name"] ."\">". $_FILES["upfile"]["name"] ."</a>"; }else{ $_SESSION["besked"] = "Filen blev ikke uploadet?"; } } header("Location:". $_SERVER["PHP_SELF"] .""); exit(); } if(isset($_GET["logud"])) { $_SESSION = array(); session_destroy(); header("Location:". $_SERVER["PHP_SELF"] .""); exit(); } ?> <html><head><title>Login og upload</title></head> <body> <center> <?php if(isset($_SESSION["user"])) { echo"<a href=\"". $_SERVER["PHP_SELF"] ."?logud=true\">Log ud</a><p>\n"; if(is_dir($dist)) { echo"<form enctype=\"multipart/form-data\" action=\"". $_SERVER["PHP_SELF"] ."\" method=\"post\">\n"; echo"Upload fil:<br />\n"; echo"<input name=\"upfile\" type=\"file\"> <input type=\"submit\" value=\"Upload\">\n"; echo"</form>"; }else{ echo"Fejl i dirangivelse!"; } }else{ ?> <form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post"> Brugernavn:<br> <input type="text" name="bruger"><br> Password:<br> <input type="password" name="password"><br> <input type="submit" value="Log ind"> </form> <?php } if(isset($_SESSION["besked"])) { echo $_SESSION["besked"]; unset($_SESSION["besked"]); } ?> </center> </body></html> Eller, du sørger for at stien til dir hvor filer skal ligge, er defineret "fuldt ud" Ikke noget med ../../dir, men /var/www/domain.dk/dir/ eller lign.
Og så lige lidt visning af filnavne og links: <?php $start_path = $_SERVER["DOCUMENT_ROOT"]; $dir = "/galleri/"; $dist = $start_path . $dir; ?> <html><head><title>uploadede filer:</title></head> <body> <center> <?php $d = dir($dist); while (false !== ($file = $d->read())) { if (is_file($dist ."/". $file)) { echo"<a href=\"". $dir . $file ."\">". $file ."</a><br />\n"; } } $d->close(); ?> </center> </body></html>
OKay hvorfor får jeg denne fejl :
http://www.hybbe.dk/Upload/Upload.php ? (prøv at uploade noget)
Og hvor skal jeg sætte dette hen i phpén :
<?php
$start_path = $_SERVER["DOCUMENT_ROOT"];
$dir = "/galleri/";
$dist = $start_path . $dir;
?>
<html><head><title>uploadede filer:</title></head>
<body>
<center>
<?php
$d = dir($dist);
while (false !== ($file = $d->read())) {
if (is_file($dist ."/". $file)) {
echo"<a href=\"". $dir . $file ."\">". $file ."</a><br />\n";
}
}
$d->close();
?>
</center>
</body></html>
Glemte at sige user & kode er det samme: exp
jahh, jeg har ikke været hjemme nogle dage, og det er meget som vinden blæser, om der kommer mail om nye indlæg. Men kikker lige på dit link..........
Du skal nok sætte dir til / $dir = "/"; for at uploade til roden af dit domain. Men hvorfor ikke lavet et "uploaddir"
Og det her kan jo sættes ind under uploadformen <?php $d = dir($dist); while (false !== ($file = $d->read())) { if (is_file($dist ."/". $file)) { echo"<a href=\"". $dir . $file ."\">". $file ."</a><br />\n"; } } $d->close(); ?>
Nu har jeg ikke så meget forstand på php! Men mit script ser således ud : <?php session_start(); $start_path = $_SERVER["DOCUMENT_ROOT"]; $dir = "/galleri/"; $dist = $start_path . $Upload; // Hvor skal filen ligge???? Husk chmod af dir! $user_login = array("exp" => "exp", "bruger" => "b_pass"); // Brugernavne og passwords if(isset($_POST["bruger"], $_POST["password"])) { if(false !== (array_key_exists($_POST["bruger"], $user_login)) && $_POST["password"] == $user_login[$_POST["bruger"]]) { $_SESSION["user"] = 1; }else{ $_SESSION["besked"] = "Forkert brugernavn og/eller password"; } header("Location:". $_SERVER["PHP_SELF"] .""); exit(); } if (isset($_SESSION["user"], $_FILES["upfile"])) { if(is_uploaded_file($_FILES["upfile"]["tmp_name"])) { if(move_uploaded_file($_FILES["upfile"]["tmp_name"], $dist . $_FILES["upfile"]["name"])) { $_SESSION["besked"] = "Filen, ". $_FILES["upfile"]["name"] ." er uploadet. <a href=\"". $dir . $_FILES["upfile"]["name"] ."\">". $_FILES["upfile"]["name"] ."</a>"; }else{ $_SESSION["besked"] = "Filen blev ikke uploadet?"; } } header("Location:". $_SERVER["PHP_SELF"] .""); exit(); } if(isset($_GET["logud"])) { $_SESSION = array(); session_destroy(); header("Location:". $_SERVER["PHP_SELF"] .""); exit(); } ?> <html><head><title>Login og upload</title></head> <body> <center> <?php if(isset($_SESSION["user"])) { echo"<a href=\"". $_SERVER["PHP_SELF"] ."?logud=true\">Log ud</a><p>\n"; if(is_dir($dist)) { echo"<form enctype=\"multipart/form-data\" action=\"". $_SERVER["PHP_SELF"] ."\" method=\"post\">\n"; echo"Upload fil:<br />\n"; echo"<input name=\"upfile\" type=\"file\"> <input type=\"submit\" value=\"Upload\">\n"; echo"</form>"; }else{ echo"Fejl i dirangivelse!"; } }else{ ?> <form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post"> Brugernavn:<br> <input type="text" name="bruger"><br> Password:<br> <input type="password" name="password"><br> <input type="submit" value="Log ind"> </form> <?php } if(isset($_SESSION["besked"])) { echo $_SESSION["besked"]; unset($_SESSION["besked"]); } ?> </center> </body></html> Jeg har tænkt at når man trykker upload skal filerne ryge hen til ; hybbe.dk/Upload/
<?php session_start(); $start_path = $_SERVER["DOCUMENT_ROOT"]; $dir = "/Upload/"; $dist = $start_path . $Upload; // Hvor skal filen ligge???? Husk chmod af dir! $user_login = array("exp" => "exp", "bruger" => "b_pass"); // Brugernavne og passwords if(isset($_POST["bruger"], $_POST["password"])) { if(false !== (array_key_exists($_POST["bruger"], $user_login)) && $_POST["password"] == $user_login[$_POST["bruger"]]) { $_SESSION["user"] = 1; }else{ $_SESSION["besked"] = "Forkert brugernavn og/eller password"; } header("Location:". $_SERVER["PHP_SELF"] .""); exit(); } if (isset($_SESSION["user"], $_FILES["upfile"])) { if(is_uploaded_file($_FILES["upfile"]["tmp_name"])) { if(move_uploaded_file($_FILES["upfile"]["tmp_name"], $dist . $_FILES["upfile"]["name"])) { $_SESSION["besked"] = "Filen, ". $_FILES["upfile"]["name"] ." er uploadet. <a href=\"". $dir . $_FILES["upfile"]["name"] ."\">". $_FILES["upfile"]["name"] ."</a>"; }else{ $_SESSION["besked"] = "Filen blev ikke uploadet?"; } } header("Location:". $_SERVER["PHP_SELF"] .""); exit(); } if(isset($_GET["logud"])) { $_SESSION = array(); session_destroy(); header("Location:". $_SERVER["PHP_SELF"] .""); exit(); } ?> <html><head><title>Login og upload</title></head> <body> <center> <?php if(isset($_SESSION["user"])) { echo"<a href=\"". $_SERVER["PHP_SELF"] ."?logud=true\">Log ud</a><p>\n"; if(is_dir($dist)) { echo"<form enctype=\"multipart/form-data\" action=\"". $_SERVER["PHP_SELF"] ."\" method=\"post\">\n"; echo"Upload fil:<br />\n"; echo"<input name=\"upfile\" type=\"file\"> <input type=\"submit\" value=\"Upload\">\n"; echo"</form>"; echo"Filer i ". $dir .":"; $d = dir($dist); while (false !== ($file = $d->read())) { if (is_file($dist ."/". $file)) { echo"<br />\n<a href=\"". $dir . $file ."\">". $file ."</a>"; } } $d->close(); }else{ echo"Fejl i dirangivelse!"; } }else{ ?> <form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post"> Brugernavn:<br> <input type="text" name="bruger"><br> Password:<br> <input type="password" name="password"><br> <input type="submit" value="Log ind"> </form> <?php } if(isset($_SESSION["besked"])) { echo $_SESSION["besked"]; unset($_SESSION["besked"]); } ?> </center> </body></html>
Hov for satan!!! $dist = $start_path . $Upload; skal være $dist = $start_path . $dir;
Nu har jeg ændret den til ; <?php session_start(); $start_path = $_SERVER["DOCUMENT_ROOT"]; $dir = "/galleri/"; $dist = $start_path . $dir; // Hvor skal filen ligge???? Husk chmod af dir! $user_login = array("exp" => "exp", "bruger" => "b_pass"); // Brugernavne og passwords if(isset($_POST["bruger"], $_POST["password"])) { if(false !== (array_key_exists($_POST["bruger"], $user_login)) && $_POST["password"] == $user_login[$_POST["bruger"]]) { $_SESSION["user"] = 1; }else{ $_SESSION["besked"] = "Forkert brugernavn og/eller password"; } header("Location:". $_SERVER["PHP_SELF"] .""); exit(); } if (isset($_SESSION["user"], $_FILES["upfile"])) { if(is_uploaded_file($_FILES["upfile"]["tmp_name"])) { if(move_uploaded_file($_FILES["upfile"]["tmp_name"], $dist . $_FILES["upfile"]["name"])) { $_SESSION["besked"] = "Filen, ". $_FILES["upfile"]["name"] ." er uploadet. <a href=\"". $dir . $_FILES["upfile"]["name"] ."\">". $_FILES["upfile"]["name"] ."</a>"; }else{ $_SESSION["besked"] = "Filen blev ikke uploadet?"; } } header("Location:". $_SERVER["PHP_SELF"] .""); exit(); } if(isset($_GET["logud"])) { $_SESSION = array(); session_destroy(); header("Location:". $_SERVER["PHP_SELF"] .""); exit(); } ?> <html><head><title>Login og upload</title></head> <body> <center> <?php if(isset($_SESSION["user"])) { echo"<a href=\"". $_SERVER["PHP_SELF"] ."?logud=true\">Log ud</a><p>\n"; if(is_dir($dist)) { echo"<form enctype=\"multipart/form-data\" action=\"". $_SERVER["PHP_SELF"] ."\" method=\"post\">\n"; echo"Upload fil:<br />\n"; echo"<input name=\"upfile\" type=\"file\"> <input type=\"submit\" value=\"Upload\">\n"; echo"</form>"; }else{ echo"Fejl i dirangivelse!"; } }else{ ?> <form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post"> Brugernavn:<br> <input type="text" name="bruger"><br> Password:<br> <input type="password" name="password"><br> <input type="submit" value="Log ind"> </form> <?php } if(isset($_SESSION["besked"])) { echo $_SESSION["besked"]; unset($_SESSION["besked"]); } ?> </center> </body></html> Men nu kommer fejlen "Forkert Dirangivelse"
Så ret $dir = "/galleri/"; til $dir = "/Upload/";
Yeah! Det virker! Det eneste jeg mangler nu er at den skal "vise" de filer der er uploadet!
Det gør dette jo: echo"Filer i ". $dir .":"; $d = dir($dist); while (false !== ($file = $d->read())) { if (is_file($dist ."/". $file)) { echo"<br />\n<a href=\"". $dir . $file ."\">". $file ."</a>"; } } $d->close(); sat ind lige efter uploadformen
Hvor skal det stå præcist :) ?
? if(is_dir($dist)) { echo"<form enctype=\"multipart/form-data\" action=\"". $_SERVER["PHP_SELF"] ."\" method=\"post\">\n"; echo"Upload fil:<br />\n"; echo"<input name=\"upfile\" type=\"file\"> <input type=\"submit\" value=\"Upload\">\n"; echo"</form>"; echo"Filer i ". $dir .":"; $d = dir($dist); while (false !== ($file = $d->read())) { if (is_file($dist ."/". $file)) { echo"<br />\n<a href=\"". $dir . $file ."\">". $file ."</a>"; } } $d->close(); }else{ echo"Fejl i dirangivelse!"; }
Hvad er det nu for en fejl jeg får ! Jeg har gjort sådan ;
<? include ("top.php") ?>
php koden her
<? include ("bund.php") ?>
Nu får jeg fejlen ; Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /hsphere/local/home/hybbe/hybbe.dk/top.php:6) in /hsphere/local/home/hybbe/hybbe.dk/Upload.php on line 3
www.hybbe.dk > Klik på upload så skriver den det
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /hsphere/local/home/hybbe/hybbe.dk/top.php:6) in /hsphere/local/home/hybbe/hybbe.dk/Upload.php on line 3 Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /hsphere/local/home/hybbe/hybbe.dk/top.php:6) in /hsphere/local/home/hybbe/hybbe.dk/Upload.php on line 3
læg et svar! har fået det til at virke
ehh, er det mig du mener? :O)
Vi tilbyder markedets bedste kurser inden for webudvikling