21. maj 2007 - 20:40Der er
9 kommentarer og 1 løsning
"Luk vindue funktion" i en if-statement
Jeg har dette script til upload af filer (nappet fra en eller anden php-tutorial-side - er nemlig ikke selv den store wiz):
//html-form// <?php //check that we have a file if((!empty($_FILES["filnavn"])) && ($_FILES['filnavn']['error'] == 0)) { //Check if the file is JPEG image and it's size is less than 350Kb $filename = basename($_FILES['filnavn']['name']); $ext = substr($filename, strrpos($filename, '.') + 1); if (($ext == "jpg") or ($ext == "jpeg") or ($ext == "JPG") or ($ext == "JPEG") && ($_FILES["filnavn"]["type"] == "image/jpeg") && ($_FILES["filnavn"]["size"] < 350000)) { //Determine the path to which we want to save this file $newname = dirname(__FILE__).'/../billeder/'.$filename; //Check if the file with the same name is already exists on the server if (!file_exists($newname)) { //Attempt to move the uploaded file to it's new place if ((move_uploaded_file($_FILES['filnavn']['tmp_name'],$newname))) { echo "Din fil er blevet gemt som: ".$newname.
$query = "INSERT INTO billeder SET billednavn='".$_FILES['filnavn']['name']."'";
$Result1 = mysql_query($query, $Hujelauget) or die(mysql_error());
} else { echo "Fejl: Der opstod et problem under overførslen"; } } else { echo "Fejl: Filen ".$_FILES["filnavn"]["name"]." eksisterer allerede"; } } else { echo "Fejl: kun .jpg billeder under 350Kb kan uploades"; } } else { echo "Fejl: din fil blev ikke overført"; } ?>
Jeg har nu tre spørgsmål:
1. Jeg kan ikke få lavet en "luk vinduet"-funktion i samme if-statement som "Din fil er blevet gemt som..." da jeg får fejl lige så snart jeg prøver at indsætte tags... Kan det ikke lade sig gøre?
2. I forlængelse af 1: Linjeskift? Ville gerne have "luk vindue"-funktionen et par linjer ned - men stadig ingen <br> tags.
3. Når upload-siden loades vises den generelle fejl "Fejl, din fil blev ikke overført" - fordi scriptet køres med det samme vinduet loader (tror jeg?). Kan man ikke ændre det?
Håber ikke jeg har stillet for lidt point i udsigt i forh. t. sværhedsgraden...?
1: Åbner selve vinduet i et popup vindue? Hvis ja, kan du bruge koden: <a href="#" onclick="window.close();">Luk Vindue</a>
2: Hvis ikke du vil bruge <br />, så skal du måske overveje <p> eller <div>
3: Du har garanteret en input submit knap, tjek om den er sat uden om din if/else, f.eks. if(isset($_POST['uploadFile'])) { //check that we have a file if((!empty($_FILES["filnavn"])) && ($_FILES['filnavn']['error'] == 0)) { .... echo "Fejl: din fil blev ikke overført"; } }
->1: ja, det er et popup vindue, men problemet er jo, at jeg får fejl, når jeg indsætter noget som helst kode, der starter med '<' i denne linje, som f.eks.:
if ((move_uploaded_file($_FILES['filnavn']['tmp_name'],$newname))) { echo "Din fil er blevet gemt som: ".$newname.<a href="#" onclick="window.close();">Luk Vindue</a>
giver fejl: unexpected '<'
og denne her, som jeg ellers troede lidt på:
if ((move_uploaded_file($_FILES['filnavn']['tmp_name'],$newname))) { echo "Din fil er blevet gemt som: ".$newname.?><a href="#" onclick="window.close();">Luk Vindue</a><?php ...//videre med php//...
giver fejl: unexpected ';'
2: stadig samme problem...
3: Med:
if(isset($_post['uploadFile'])) {
...//kode//...
echo "Fejl: din fil blev ikke overført"; } }
forsvinder fejlmeddelelsen ved load af vindue, men overførslen sker ikke. Der kommer hverken fejlmeddelelser eller noget...
Skal 'if(isset($_post['uploadFile']))' hos mig hedde 'if(isset($_post['filnavn']))' eller hvad? Jeg har prøvet - samme resultat...
1. og 2. er løst. Der manglede li'ssom ." i slutningen af en linje. Den ser nu sådan ud:
if ((move_uploaded_file($_FILES['filnavn']['tmp_name'],$newname))) { echo "It's done! The file has been saved as: ".$newname."."; ?> <br> <a href="#" onclick="window.close();">Luk Vindue</a>
<?php
osv.
if(isset... vil jeg gerne have til at virke, hvis nogen kan hjælpe???
//check that we have a file if((!empty($_FILES["filnavn"])) && ($_FILES['filnavn']['error'] == 0)) { //Check if the file is JPEG image and it's size is less than 350Kb $filename = basename($_FILES['filnavn']['name']); $ext = substr($filename, strrpos($filename, '.') + 1); if (($ext == "jpg") or ($ext == "jpeg") or ($ext == "JPG") or ($ext == "JPEG") && ($_FILES["filnavn"]["type"] == "image/jpeg") && ($_FILES["filnavn"]["size"] < 350000)) { //Determine the path to which we want to save this file $newname = dirname(__FILE__).'/../billeder/'.$filename; //Check if the file with the same name is already exists on the server if (!file_exists($newname)) { //Attempt to move the uploaded file to it's new place if ((move_uploaded_file($_FILES['filnavn']['tmp_name'],$newname))) { echo "Fedt! Din fil er gemt som: ".$newname.".";?> <br> <a href="#" onclick="window.close();">Luk Vindue</a><?php
$query = "INSERT INTO billeder SET billednavn='".$_FILES['filnavn']['name']."'";
$Result1 = mysql_query($query, $Hujelauget) or die(mysql_error());
} else { echo "Fejl: Der opstod et problem under overførslen"; } } else { echo "Fejl: Filen ".$_FILES["filnavn"]["name"]." eksisterer allerede"; } } else { echo "Fejl: kun .jpg billeder under 350Kb kan uploades"; }
} else { echo "Fejl: din fil blev ikke overført"; }
//Is the Submit button pushed? if(isset($_POST['Submit'])) { //check that we have a file if((!empty($_FILES["filnavn"])) && ($_FILES['filnavn']['error'] == 0)) { //Check if the file is JPEG image and it's size is less than 350Kb $filename = basename($_FILES['filnavn']['name']); $ext = substr($filename, strrpos($filename, '.') + 1); if (($ext == "jpg") or ($ext == "jpeg") or ($ext == "JPG") or ($ext == "JPEG") && ($_FILES["filnavn"]["type"] == "image/jpeg") && ($_FILES["filnavn"]["size"] < 350000)) { //Determine the path to which we want to save this file $newname = dirname(__FILE__).'/../billeder/'.$filename;
//Check if the file with the same name is already exists on the server if (!file_exists($newname)) { //Attempt to move the uploaded file to it's new place if ((move_uploaded_file($_FILES['filnavn']['tmp_name'],$newname))) { $respons = 'Fedt! Din fil er gemt som: '.$newname.'<br /><a href="#" onclick="window.close();">Luk Vindue</a>'; $query = "INSERT INTO billeder SET billednavn='".$_FILES['filnavn']['name']."'"; $Result1 = mysql_query($query, $Hujelauget) or die(mysql_error()); } else { $respons = "Fejl: Der opstod et problem under overførslen"; } } else { $respons = 'Fejl: Filen '.$_FILES['filnavn']['name'].' eksisterer allerede'; } } else { $respons = 'Fejl: kun .jpg billeder under 350Kb kan uploades'; } } else { $respons = 'Fejl: din fil blev ikke overført'; } } ?> <html> <head> <title>Upload billede</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> <?php if(!empty($respons)) { echo $respons . '<br />'; } ?> <form action="upload.php" method="post" enctype="multipart/form-data" name="upload" id="upload"> <p>Fil, der skal overføres: <input name="filnavn" type="file" id="filnavn"> </p> <p> <input name="Submit" type="submit" id="Submit" value="Overfør"> </p> </form> </body> </html>
Svar! Det er altid godt at lave din php kode først, og så output efterfølgende. Hvis nu man skulle få lyst til at bruge header() så vil du forstå hvorfor. :o)
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.