det er sådan at jeg har skrevet den her kode;
- <?php
- $target_path = "uploads/";
-
- $target_path = $target_path . basename( $_FILES['uploadedfile']['name']);
-
- $titel = $_POST['titel'];
- $bid = $_POST['bid'];
- $beskrivelse = $_POST['beskrivelse'];
- $url = 'http://www.b2f.dk/uploads/'. basename( $_FILES['uploadedfile']['name']) .'';
-
- if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
- $res = 'Filen <a href="http://www.b2f.dk/uploads/'. basename( $_FILES['uploadedfile']['name']) .'" target="_blank">'. $titel .
- '</a> er blevet uploaded med succes!';
-
- mysql_query("INSERT INTO billede (bid, url, title, beskrivelse) VALUES ('$bid', '$url', '$titel', '$beskrivelse')");
- mysql_query("UPDATE brugere SET img = 'http://www.b2f.dk/uploads/". basename( $_FILES['uploadedfile']['name']) ."' WHERE id = '". $_SESSION['id'] ."'");
- }
- ?>
- <p>Tilbage til <a href="./?s=kontrolpanel"><strong><em>Kontrolpanel</em></strong></a></p>
- <p> </p>
- <div class="overskrift">Upload billede</div>
- <?php echo $res; ?>
- <form enctype="multipart/form-data" action="?s=ctr_upload" method="post">
- <input type="hidden" name="MAX_FILE_SIZE" value="10000000" />
- <input type="hidden" name="bid" value="<?php echo $_SESSION['id']; ?>" />
- Titel:<br /><input type="text" name="titel" /><br />
- Beskrivelse:<br /><input type="text" name="beskrivelse" /><br /><br />
- <input name="uploadedfile" type="file" /><br />
- <input type="submit" value="Upload" />
- </form>
men så gå den henne til en anden side "?s=ctr_upload"
eller har den upload det den skulle eller hvad?...
Prøv med det her i stedet for.
- <?php
-
- if(isset($_FILES['uploadedfile']['tmp_name']) && is_uploaded_file($_FILES['uploadedfile']['tmp_name'])) {
- $target_path = "uploads/";
-
- $target_path = $target_path . basename( $_FILES['uploadedfile']['name']);
-
- $titel = $_POST['titel'];
- $bid = $_POST['bid'];
- $beskrivelse = $_POST['beskrivelse'];
- $url = 'http://www.b2f.dk/uploads/'. basename( $_FILES['uploadedfile']['name']) .'';
-
- if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
- $res = 'Filen <a href="http://www.b2f.dk/uploads/'. basename( $_FILES['uploadedfile']['name']) .'" target="_blank">'. $titel .
- '</a> er blevet uploaded med succes!';
-
- mysql_query("INSERT INTO billede (bid, url, title, beskrivelse) VALUES ('$bid', '$url', '$titel', '$beskrivelse')");
- mysql_query("UPDATE brugere SET img = 'http://www.b2f.dk/uploads/". basename( $_FILES['uploadedfile']['name']) ."' WHERE id = '". $_SESSION['id'] ."'");
- }
- }
- ?>
- <p>Tilbage til <a href="./?s=kontrolpanel"><strong><em>Kontrolpanel</em></strong></a></p>
- <p> </p>
- <div class="overskrift">Upload billede</div>
- <?php echo $res; ?>
- <form enctype="multipart/form-data" action="" method="post">
- <input type="hidden" name="MAX_FILE_SIZE" value="10000000" />
- <input type="hidden" name="bid" value="<?php echo $_SESSION['id']; ?>" />
- Titel:<br /><input type="text" name="titel" /><br />
- Beskrivelse:<br /><input type="text" name="beskrivelse" /><br /><br />
- <input name="uploadedfile" type="file" /><br />
- <input type="submit" value="Upload" />
- </form>
Har rettet 2 ting:
1. Ændret din action="?s=ctr_upload" (som Nicholas foreslog).
2. Tilføjet "if(isset($_FILES['uploadedfile']['tmp_name']) && is_uploaded_file($_FILES['uploadedfile']['tmp_name']))", som tjekker om siden har nogen uploadet fil den skal behandle, ellers kører scriptet hver eneste gang du går ind på siden, også selvom der ingen fil er.
Et tip: Lad vær med at skrive hele stien ind til billedet (altså
http://..../billede.jpg). Hvis du skulle skifte mening om hvor billederne ligger, så har du et problem, for så skal du rette ALLE folks adresser til billederne. Nøjes med at gemme selve billednavnet.
Og så skal du huske en anden ting. Lige nu kalder du bare filen for "basename( $_FILES['uploadedfile']['name'])" - Det kan skabe nogle problemer for dig hvis 2 billeder hedder det samme. Så vil du enten få en fejl eller i værste tilfælde, den overskriver det gamle billede, og den bruger som uploadede det første billede vil få den anden brugers billede.
Kald evt. dine billednavne noget selv-deffineret. Her et klassisk eksempel på hvad dine billeder kunne hedde:
$filename = $_SESSION['id'] . "-" . time() . "_" . rand(10000, 99999);
Håber det hjælper dig lidt