Ergebnis 1 bis 10 von 10
  1. #1
    Fortgeschrittener
    Registriert seit
    11.10.2008
    Beiträge
    47

    Standard Nur der erste Eintrag wird gemacht o.O

    Hi, ich habe folgendes Problem, in einer PHP datei soll etwas in meine MySQL Tabelle geschriben werden, der erste eintrag funktioniert die restlichen nicht mehr, woran liegt das?
    MySQL Tabelle:


    PHP-code:
    PHP-Code:
    <?php
    $seite 
    $_SERVER["REQUEST_URI"];
    $name $_POST["name"];
    if(
    $_SESSION[user_id] != '')
    {
    echo 
    '
    <form action="'
    .$seite.'" method="post" enctype="multipart/form-data">
    Datei:<input type="file" name="datei"><br>
    Name des Bildes<input type="text" name="name"><br>
    <input type="submit" value="Hochladen">
    </form>'
    ;
    if(
    $name != '')
    {
    move_uploaded_file($_FILES['datei']['tmp_name'], "upload/".$_FILES['datei']['name'].""); 
    $abfrage "SELECT COUNT(id) FROM ".$prefix."bildupload";
    $ergebnis mysql_query($abfrage);
    $menge mysql_fetch_row($ergebnis);
    $menge $menge[0];
    $id++;
    $pfad "upload/".$_FILES['datei']['name']."";
    $eintrag "INSERT INTO ".$prefix."bildupload
    (id, pfad, name, author)
    VALUES
    ('
    $id', '$pfad', '$name', '$userdata['name']')";
    $eintragen mysql_query($eintrag);
    if(
    $eintragen == true)
       {
       echo 
    "Bild wurde erfolgreich hochgeladen!";
       }
    else
       {
       echo 
    "Fehler beim Speichern";
       }
    }
    }
    else
    {
    echo 
    'Du musst eingeloggt sein!';
    }
    ?>
    für alle die mir sagen wollen das der Bildupload unsicher ist da die datei typen nicht gefilter werden, das weiß ich, filterung kommt später.

  2. #2
    Tsutomu Shimomura Avatar von -=Player=-
    Registriert seit
    15.02.2006
    Beiträge
    1.549

    Standard

    ich glaube es liegt daran, dass du die id in sql auf auto_increment eingestellt hast, aber du in deinen Script eine feste ID bestimmst.
    Wenn du eine eigene ID eintragen willst, darf die id in sql nicht auto_increment seid.
    Wenn du die id vortlaufend haben willst, darfst du in deinen INSERT query keine ID bestimmen.

  3. #3
    Transpinguin Avatar von IRET
    Registriert seit
    02.09.2008
    Beiträge
    1.295

    Standard

    Hier ist ein Fehler
    Code:
    ('$id', '$pfad', '$name', '$userdata['name']')";
    $userdata['name'] musst du vorher deklarieren.
    Wegen den '
    Also $userdata=$userdata['name'];
    Geändert von IRET (01.06.2009 um 16:48 Uhr) Grund: haha eine Fehler^^

  4. #4
    Fortgeschrittener
    Registriert seit
    11.10.2008
    Beiträge
    47

    Standard

    aber beim ersten mal funktioniert ja alles einwandfrei

  5. #5
    Transpinguin Avatar von IRET
    Registriert seit
    02.09.2008
    Beiträge
    1.295

    Standard

    Du verstehst mich anscheinend nicht ganz.
    Hier mal der code der Funktionieren sollte.
    PHP-Code:
    <?php
    //Hier die Fehlerbehebung.
    $userdata $userdata['name'];
    //ende
    $seite $_SERVER["REQUEST_URI"];
    $name $_POST["name"];
    if(
    $_SESSION[user_id] != '')
    {
    echo 
    '
    <form action="'
    .$seite.'" method="post" enctype="multipart/form-data">
    Datei:<input type="file" name="datei"><br>
    Name des Bildes<input type="text" name="name"><br>
    <input type="submit" value="Hochladen">
    </form>'
    ;
    if(
    $name != '')
    {
    move_uploaded_file($_FILES['datei']['tmp_name'], "upload/".$_FILES['datei']['name'].""); 
    $abfrage "SELECT COUNT(id) FROM ".$prefix."bildupload";
    $ergebnis mysql_query($abfrage);
    $menge mysql_fetch_row($ergebnis);
    $menge $menge[0];
    $id++;
    $pfad "upload/".$_FILES['datei']['name']."";
    //hier habe ich $userdata['name'] mit $userdata welche am Anfang deklariert wurde ersetzt.
    $eintrag "INSERT INTO ".$prefix."bildupload
    (id, pfad, name, author)
    VALUES
    ('
    $id', '$pfad', '$name', '$userdata')";
    $eintragen mysql_query($eintrag);
    if(
    $eintragen == true)
       {
       echo 
    "Bild wurde erfolgreich hochgeladen!";
       }
    else
       {
       echo 
    "Fehler beim Speichern";
       }
    }
    }
    else
    {
    echo 
    'Du musst eingeloggt sein!';
    }
    ?>
    Hab dir auch dazu geschrieben was ich gemacht hab.

  6. #6
    Fortgeschrittener
    Registriert seit
    11.10.2008
    Beiträge
    47

    Standard

    aber beim ersten mal funktioniert es ja

    Edit: dein code fu nktioniert auch nicht
    Geändert von adrian2005 (01.06.2009 um 17:31 Uhr)

  7. #7
    Tsutomu Shimomura Avatar von -=Player=-
    Registriert seit
    15.02.2006
    Beiträge
    1.549

    Standard

    hast du mal das mit dem auto_increment ausprobiert?

  8. #8
    Fortgeschrittener
    Registriert seit
    11.10.2008
    Beiträge
    47

    Standard

    Ja hab ich. Ich hab mal mysql_error() eingebaut, folgender fehler wird angezeigt:
    Duplicate entry '1' for key 1

  9. #9
    Kevin Lee Poulsen Avatar von VeN0m
    Registriert seit
    30.12.2008
    Beiträge
    1.270

    Standard

    Rate mal, woran das liegt... Hast Du mal Players Beiträge gelesen? Wenn die ID auf auto_increment (Automatischer Eintrag) steht wird für jeden Eintrag eine neue ID generiert. Sofern Du dann die ID angibst gibt es einen Fehler (diesen, da die ID wohl schon existiert).

    Code:
    $eintrag = "INSERT INTO ".$prefix."bildupload
    (id, pfad, name, author)
    VALUES
    ('$id', '$pfad', '$name', '$userdata['name']')";
    Muss so aussehen:

    Code:
    $eintrag = "INSERT INTO ".$prefix."bildupload
    (id, pfad, name, author)
    VALUES
    ('', '$pfad', '$name', '$userdata['name']')";
    Heißt: "id" wird entfernt aus den VALUES. Das heißt, dass die ID per auto_increment generiert wird. Du kannst aber die ID eigentlich komplett weglassen.
    Come to the dark side - We have cookies

  10. #10
    Fortgeschrittener
    Registriert seit
    11.10.2008
    Beiträge
    47

    Standard

    Es hat sich erledigt @ power-sven hab deine antwort nicht mehr gelesen. trotzdem danke

    kann geschlossen werden.

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •