Upload script mit Viewer & Mysql

  • Hallo,
    Ich bin neu hier und weis nicht so ganz wie man höflich fragt, also wenn ich irgendwie komisch rüberkomme dann sagt es mir bitte :).

    Mein Problem ist, dass ich ein Upload script gemacht habe, wo aber der eigentlich, wenn man auf den submit button klickt ein Text kommen soll oder noch besser wäre eine Weiterleitung zu einer Seite mit diesem Text, Also wenn man eine Datei hochlädt, dann speichert er in der MYSQL Datenbank folgende Einträge (URL zur Datei, Passwort zum ändern, title, Beschreibung, ID), und wenn man die datei aufrufen möchte, muss man diesen link eingeben "http://meineseite.de/datei.php?ID=[und hier muss die ID rein]".

    Meine frage wäre damit, wie bekomme ich hin, dass wenn man auf den submit button klickt zu diesem Link weitergeleitet wird.

    hier ist der link

    und hier ist mein code:

    <?php
    $link = mysql_connect('mysql server', 'name', 'passwort');
    if (!$link) {
    die('Keine Verbindung möglich: ' . mysql_error());
    }
    mysql_select_db('puzzzle');
    $id = mysql_insert_id();


    echo $newname;


    define ("MAX_SIZE","6144");


    function getExtension($str) {
    $i = strrpos($str,".");
    if (!$i) { return ""; }
    $l = strlen($str) - $i;
    $ext = substr($str,$i+1,$l);
    return $ext;
    }
    $title = ereg_replace("[^A-Za-z0-9]", "", $_POST['title']);
    $passwort = ereg_replace("[^A-Za-z0-9]", "", $_POST['passwort']);
    $beschreibung = ereg_replace("[^A-Za-z0-9]", "", $_POST['beschreibung']);


    $errors=0;


    if(isset($_POST['Submit']))
    {

    $image=$_FILES['image']['name'];

    if ($image)
    {

    $filename = stripslashes($_FILES['image']['name']);

    $extension = getExtension($filename);
    $extension = strtolower($extension);

    if (($extension != "jpg") && ($extension != "jpeg") && ($extension != "png") && ($extension != "gif") && ($extension != ""))
    {

    echo '<h1>Ungültiges Bildformat!</h1><hr>';
    $errors=1;
    }
    else
    {


    $size=filesize($_FILES['image']['tmp_name']);


    if ($size > MAX_SIZE*1024)
    {
    echo '<h1>Die Datei darf nicht größer als 6MB sein!</h1><hr>';
    $errors=1;
    }


    $image_name=time().'.'.$extension;


    $newname="images/".$image_name;


    $copied = copy($_FILES['image']['tmp_name'], $newname);
    if (!$copied)
    {
    echo '<h1>Konnte nicht Hochgeladen werden! Versuche es nocheinmal.</h1><hr>';
    $errors=1;
    }}}}


    if(isset($_POST['Submit']) && !$errors)
    {
    $sql = mysql_query("INSERT INTO testico (id, title, beschreibung, bildort)
    VALUES('$id','$title','$beschreibung','http://pic.puzzzle.org/$newname')");
    printf("%d\n", mysql_insert_id());
    echo "<h1>Erfolgreich Hochgeladen.</h1><hr><a href=profile.php?id=$nr>Hier</a> ist dein Bild!<hr>";
    echo "Bildnummer:";
    printf("%d\n", mysql_insert_id());


    echo "<hr>";

    }


    ?>
    <html>
    <head>
    <meta name="XAR Files" content="index_htm_files/xr_files.txt"/>
    <title>index</title>
    <meta http-equiv="Content-Type" content="text/html; charset=Windows-1252"/>
    <meta name="Generator" content="Xara HTML filter v.4.0.4.653"/>
    <link rel="stylesheet" type="text/css" href="index_htm_files/xr_main.css"/>
    <link rel="stylesheet" type="text/css" href="index_htm_files/xr_text.css"/>
    <script type="text/javascript" src="index_htm_files/roe.js"></script>


    <style type="text/css">
    html, body {margin:0; padding:0; width:100%; height:100%; overflow:hidden; text-align:left;}
    body {font-family:timesnewroman, papyrus;}
    #bkgrnd {position:fixed; top:0; left:0; width:100%; height:100%; z-index:1;}
    #content { position:absolute; z-index:2;}
    </style>


    </HEAD>


    <body>
    <div>
    <img src="images/background.jpg" alt="background image" id="bkgrnd">
    </div>


    <div id="content">
    <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->


    <div class="xr_ap" id="xr_xr" style="width: 946px; height: 742px; top:0px; left:50%; margin-left: -473px;">
    <script type="text/javascript">var xr_xr=document.getElementById("xr_xr")</script>


    <div class="xr_ap" id="xr_xri" style="width: 946px; height: 742px; clip: rect(0px, 946px, 742px, 0px);">
    <img class="xr_ap" src="index_htm_files/5.png" alt="" title="" style="left: 204px; top: 35px; width: 567px; height: 695px;"/>
    <a href="http://music.puzzzle.org" onclick="return(xr_nn());">
    <img class="xr_ap" src="index_htm_files/11.png" alt="" title="" onmousemove="xr_mo(this,0,event)" style="left: 273px; top: 82px; width: 417px; height: 133px;"/>
    </a>
    <div style="position: absolute; left: 321px; top: 380px; width: 300px; height: 100px; overflow: hidden;">


    <form name="newad" method="post" enctype="multipart/form-data" action="">
    Passwort:
    <input name="passwort" type="text" value="<?php echo "$passwort"; ?>" /><br>



    <table>
    <tr><td><input type="file" name="image"></td></tr>
    <tr><td><input name="Submit" type="submit" value="Hochladen"></td></tr>
    </table>
    </div>
    <span class="xr_s0" style="position: absolute; left:232px; top:251px;">
    <span class="xr_tl" style="top: -22px;">Teilen Sie ihre Selbst aufgenommenen Songs </span>
    <span class="xr_tl" style="top: 5px;">mit ihren Freunden oder der ganzen Welt.</span>
    <span class="xr_tl xr_s1" style="top: 32px;"><span class="xr_s0">Einfach auswählen und hochladen.</span></span>
    </span>
    <img class="xr_ap" src="index_htm_files/8.png" alt="" title="" style="left: 222px; top: 329px; width: 486px; height: 18px;"/>
    <img class="xr_ap" src="index_htm_files/8.png" alt="" title="" style="left: 222px; top: 499px; width: 486px; height: 18px;"/>
    <img class="xr_ap" src="index_htm_files/9.png" alt="" title="" style="left: 224px; top: 530px; width: 214px; height: 166px;"/>
    <span class="xr_s0" style="position: absolute; left:484px; top:547px;">
    <span class="xr_tl" style="top: -22px;">powered by</span>
    </span>
    <a href="http://puzzzle.org" onclick="return(xr_nn());">
    <img class="xr_ap" src="index_htm_files/10.png" alt="" title="" onmousemove="xr_mo(this,0,event)" style="left: 432px; top: 567px; width: 267px; height: 99px;"/>
    </a>
    <div id="xr_xo0" class="xr_ap" style="left:0; top:0; width:946px; height:100px; visibility:hidden;">
    <a href="" onclick="return(false);">
    </a>
    </div>
    <div id="xr_xd0"></div>
    </div>
    </div>


    <script type="text/javascript">xr_aeh()</script>
    </html>

  • Würdest du bitte die Formatierungsmöglichkeiten des Forums, sprichh BB-Tags, benutzen, um den Quellcode lesbarer zu machen. So eine Buchstaben-Wüste sieht sich niemand an.

  • hier ist das fertige, aber ich möchte, dass er die Zahl hinter bildnummer, bei dem link mit einfügt und automatisch weitergeleited wirdhttp://pic.puzzzle.org/upload.php

  • Jetzt mal ehrlich, hättest du Lust dich diesen Quellcode durchzuwühlen? So wie das aktuell aussieht wohl eher nicht.

  • Achte auf meine Kommentare:

  • Was du willst ist nicht

    PHP
    printf("%d\n", mysql_insert_id());


    sondern

    PHP
    $nr= mysql_insert_id();
  • Entschuldigung,

    Also beim Drücken des Submit buttons wird das bild hochgeladen, wenn das bild hoch geladen wurde erscheint ein link mit (profile.php?id=$nr)
    ich möchte aber, dass er automatisch zum link weiterleitet und nicht, dass man dadrauf klicken muss.

  • Da bekomme ich diesen Fehler

    Zitat
    Zitat

    Warning: Cannot modify header information - headers already sent by (output started at /home/web1634/public_html/pic/upload.php:4) in/home/web1634/public_html/pic/upload.php on line 86


    was heist das?



  • Das heißt:

    Code
    output started at /home/web1634/public_html/pic/upload.php in Zeile 4

    Das hätte dir google auch verraten können! Vor Aufruf der Funktion header darf nichts zum Browser geschickt werden, kein Leerzeichen, keine Leerzeile und auch kein HTML-Code.

  • Ja und? Das Speichern in eine Datenbank hat im Normalfall keinen Output, oder?

    EVA-Prinzip

    Einmal editiert, zuletzt von Bandit (11. April 2012 um 17:17)

  • muss das so sein? Also bei mir funktioniert das net

    PHP
    <html><body bgcolor=#F9FFB3><font face="Arial"><center><?php  $link = mysql_connect('server', 'name', 'passwort');  if (!$link)   {         die('Keine Verbindung möglich: ' . mysql_error());  }  mysql_select_db('puzzzle');  // Was soll hier ein mysql_insert_id???  $id = mysql_insert_id();  // Wo kommt $newname her???  echo $newname;  define ("MAX_SIZE","6144");    function getExtension($str)   {              $i = strrpos($str,".");              if (!$i) { return ""; }              $l = strlen($str) - $i;              $ext = substr($str,$i+1,$l);              return $ext;   }  // Wie soll bei ersten Aufruf $_POST belegt sein?  $title = ereg_replace("[^A-Za-z0-9]", "", $_POST['title']);  $passwort = ereg_replace("[^A-Za-z0-9]", "", $_POST['passwort']);  $beschreibung = ereg_replace("[^A-Za-z0-9]", "", $_POST['beschreibung']);  $errors=0;  if(isset($_POST['Submit']))    {          // Hier sollte erst einmal  $_FILES['image']['error'] überprüft werden!!     $image=$_FILES['image']['name'];               if ($image)           {                     $filename = stripslashes($_FILES['image']['name']);                      $extension = getExtension($filename);                $extension = strtolower($extension);             if (($extension != "jpg") && ($extension != "jpeg") && ($extension != "png") && ($extension != "gif") && ($extension != ""))                 {                               echo '<h1>Ungültiges Bildformat!</h1><hr>';                       $errors=1;                }                else                {          $size=filesize($_FILES['image']['tmp_name']);          if ($size > MAX_SIZE*1024)          {                 echo '<h1>Die Datei darf nicht größer als 6MB sein!</h1><hr>';                 $errors=1;          }          $image_name=time().'.'.$extension;          $newname="images/".$image_name;          // Nicht copy, sondern move_uploaded_file verwenden!!          $copied = copy($_FILES['image']['tmp_name'], $newname);          if (!$copied)           {                 echo '<h1>Konnte nicht Hochgeladen werden! Versuche es nocheinmal.</h1><hr>';                 $errors=1;          }       }     }  }  if(isset($_POST['Submit']) && !$errors)    { // ++++++++++++++++++++++++++++++++++++++++++++++++HIER HABE ICH WAS VERÄNDERT+++++++++++++++++++++++++++++header("Location: http://domain.de/profile.php?id=$nr");    exit;// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++     // Ohne ein mysql_real_escape_string schreibt man nichts in die DB!!     $sql = mysql_query("INSERT INTO testico (id, title, beschreibung, bildort) VALUES('$id','$title','$beschreibung','http://pic.puzzzle.org/$newname')");      // Hier fehlt eine Überprüfung mit mysql_errno oder mysql_error!!!     printf("%d\n", mysql_insert_id());         // Wo soll $nr herkommen???     echo "<h1>Erfolgreich Hochgeladen.</h1><hr><a href=profile.php?id=$nr>Hier</a> ist dein Bild!<hr>";         echo "Bildnummer:";         printf("%d\n", mysql_insert_id());     echo "<hr>";  } ?> <!--next comes the form, you must set the enctype to "multipart/frm-data" and use an input type "file" -->  <form name="newad" method="post" enctype="multipart/form-data"  action="">  Passwort: <input name="passwort" type="text" value="<?php echo "$passwort"; ?>" /><br>  <!--    Beschreibung:<br> <textarea name="beschreibung" cols="42" rows="8" id="beschreibung">    <?php// echo "$beschreibung"; ?>    </textarea> -->     <table>          <tr>       <td><input type="file" name="image"></td>     </tr>          <tr>       <td><input name="Submit" type="submit" value="Hochladen"></td>     </tr>    </table> </font>  </center>  </form>  </body> </html>