was tun,wenn kein bild raufgeladen wird

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • was tun,wenn kein bild raufgeladen wird

    hallo!
    ich hänge jetzt schon so lange zeit an einem problem und ich komme irgendwie einen schritt vorwärts und fünf schritte zurück.
    ich habe mir ein primitives cms zusammengebastelt,was eigentlich recht gut funktioniert.aber ich habe ein riesengroßes problem,was den bildupload betrifft.
    der bildupload und das auslesen funktionieren wirklich einwandfrei.
    ich habe es so gemacht,daß ich zählen lasse,wie viele datensätz in der datenbank vorhanden sind,um eins erhöhe und einen bestimmten namen davor setze,wenn ich den bildnamen erstellen lasse,den ich dann in die datenbank reinschreibe und auch wieder auslesen lasse.
    also der dateiname mit pfad sieht dann so aus: bilder_upload/newsuprojekte/nepr_1.jpg
    lade ich allerdings kein bild mit hinauf,sondern nur meine anderen formulardaten, dann bekommen ich diesen pfad:
    bilder_upload/newsuprojekte/nepr_1.
    und das ist mein problem.
    es soll nämlich auch vorkommen,daß kein bild bereitgestellt wird.
    firefox zeigt die bilder ohne dateiendung nicht an,also so wie ich mir das vorgestellt habe. bilder,die ich raufgeladen habe werden angezeigt,die anderen nicht.
    aber der ie spielt da nicht mit. der liest auch die bilder aus,bzw will sie auslesen, die keine dateiendung haben und dann kommt halt dieses liebe rote x.
    ich weiß jetzt nicht wo ich ansetzen soll.
    ich habe mir ein pixelbild gemacht,daß hochgeladen werden soll,wenn kein bild raufgeladen wird.aber dann kommen ja sicher fehlermeldungen,weil das bild schon im ordner liegt.außerdem weiß ich nicht,wo ich das script da angreifen kann.
    mit diesem code funktioniert es nicht:
    Code:
    if ($_POST["userfile"] == "")
    	{
    	$filename="pixel.gif";
    	$dest="$path$filename";
    	}
    oder muß ich das beim auslesen machen-wenn ja,dann sitze ich momentan auf der leitung,wie das gehen soll.
    der code fürs auslesen sieht so aus:
    Code:
    include ("incl.inc.php");
    	
       $res = mysql_query("select * from knw");
       $num = mysql_num_rows($res);   
       echo "<table border = '0'>";   
       while ($dsatz = mysql_fetch_assoc($res))
       {
          echo "<tr>";
          echo '<td colspan="3"><span class="fett">' . $dsatz["ueberschrift"] . '</span></td>';
    	  echo "</tr><tr>";
          echo "<td width = '600'>" . $dsatz["text"] . 
    "</td>"; 
    	  echo '<td width = "250">
    <a href="http://' . $dsatz["link"] . 
    '" target="_blank">' . $dsatz["link"] . 
    '</td>';
    	  echo '<td width = "250">
    <img src="../Backend/' . $dsatz["bilderurl"] .
     '" width="100" height="100" border="0" ></td>'; 	  
          echo "</tr>";
    	  echo "<tr>";
    	  echo "<td colspan='3'>&nbsp</td>";
    	  echo "</tr>";
          
       }   
       echo "</table>";
    ich bin echt schon verzweifelt,weil ich nicht weiterkomme.
    mein ganzes script sieht folgendermaßen aus:
    Code:
    <? 
    if($gesendet){ 
    
    	
    	include ("incl.inc.php");
    	
       $res = mysql_query("select count(*) from knw");
       $res2 = mysql_fetch_array($res);
      $anz = $res2[0] ;
    	 $anz1 = $anz + 1;
    	$filename = ""; 
    	
    	$name=$deindomain.$path.$filename.$anz1; 
    	if ($HTTP_POST_FILES['userfile']['tmp_name']
    <> 'none'){    
    		$file = $HTTP_POST_FILES
    ['userfile']['name']; 
    		$temp = $HTTP_POST_FILES
    ['userfile']['tmp_name']; 
    		$path_parts = pathinfo($file); 
    		$filename = "nepr_" . $anz1 . "." . $path_parts["extension"]; 
    		
    		$dest = $path.$filename; 
    		
    	
    		copy($temp, $dest); 
    		$sqlab = "INSERT knw";
          $sqlab .= "(ueberschrift,
     text,link,bilderurl)";
          $sqlab .= " VALUES ";
          $sqlab .= "('$ue', '$te', 
    '$li','$dest')";
    	  mysql_query($sqlab);
    		echo "<b>Der Datensatz 
    wurde gespeichert</b>";
    		
         
    				}
    				}
    				
    				 ?>
    Ich hoffe,daß mir jemand weiterhelfen kann.
    vielen dank.
    mfg,alex
    Zuletzt geändert von neworder666; 27.02.2007, 13:48.

  • #2
    ich denke du suchst das $_FILES['dein_user_file']['error'] - array

    Freedom is a state of mind. Not a state in which we live.

    troxdev.ch | animefieber

    Kommentar


    • #3
      hy!
      wie meinst du das?
      ich will keine fehlermeldungen ausgeben lassen.

      Kommentar


      • #4
        Hi,

        weiß nicht, ob ich Dich richtig verstanden habe, aber ich hab mal
        was ähnliches gemacht.

        Wenn in dem Durchsuchen Feld nichts drin ist (also kein Bild
        ausgewählt), dann wird auch kein Pfad in die Datenbank geschrieben.

        Beim Auslesen überprüfe ich:

        Pfad vorhanden? Dann Pfad="<img src=\"werwer.jpg\">"
        oder so.
        Wenn kein Pfad vorhanden ist, dann hab ich ein Standardbild,
        auf dem steht "kein bild vorhanden".
        Bei Dir würde es auch ein transparentes GIF tun.

        Oder lag ich jetzt völlig falsch?
        Gruß, Coni
        ~~ codito ergo sum - ich code, also bin ich! ~~

        Kommentar


        • #5
          Regeln lesen, Code umbrechen, vor nächster Antwort, sonst *trash*
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            hallo!
            nein,nein, im prinzip hast du mich richtig verstanden.
            aber ich habe ein paar probleme etwas umzusetzen.
            wenn ich ein bild uploaden will,dann ist alles ok.
            will ich aber keines uploaden,dann soll in die datenbank nichts hineingeschrieben werden,aber ich schaffe es nicht,daß im code zu befehlen.
            ich habe folgendes versucht:
            und zwar wollte ich überprüfen,ob im uploadfeld etwas drinnen steht,also der name eines bildes,nachdem ich auf durchsuchen geklickt habe,oder nicht.aber das nimmt er mir nicht.
            mein ansatz war folgender:
            Code:
            if ($_POST['userfile'] !='') 
            {
             also wenn im uploadfeld ein
             bildernamen drinnen ist,dann
             soll er in die datenbank schreiben
            }
            elseif ($_POST['userfile'] == '')
            {
            dann habe ich angenommen,
            daß kein bildnamen drinnen ist
             und dann soll er auch nix in die
             datenbank schreiben
            }
            aber das funktioniert nicht,zumindest bei mir nicht und ich weiß nicht,wie ich das ändern kann.
            das ist mal mein erstes problem.
            das zweite problem ist,wenn es jetzt worklich funktionieren würde,daß er nur die bilderpfade in die datenbank schreibt,wo auch wirklich bilder hochgeladen wurden,wie kann ich dann in die while schleife einbauen,daß er mir nur bilder ausliest,die auch in der datenbank drinnen stehen?
            mfg,alex
            Zuletzt geändert von neworder666; 27.02.2007, 13:48.

            Kommentar


            • #7
              Breche jetzt endlich deinen verdammten Code um!
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                Hm, versteh ich jetzt nicht ganz.
                Du hast doch irgendwo so ein ein Upload-Teil:

                PHP-Code:

                 
                <form action=\"upload.php\" method=\"post\" enctype=\"multipart/form-data\" name=\"form1\">
                  <input type=\"file\" name=\"datei\">
                // und so weiter 
                Wenn kein Bild ausgewählt wurde, dann ist doch $datei leer - und somit der Pfad in der Datenbank?

                Was die While-Schleife betrifft, würd ich es so machen:

                PHP-Code:
                While(mysql_fetch_row($query))
                {

                 if(
                $array[0]!=""// oder mit empty() 
                   
                {
                  
                // Bild anzeigen
                   
                }

                Weiß nicht, ob das die eleganteste Methode ist, funzt bei mir aber ganz gut.
                Gruß, Coni
                ~~ codito ergo sum - ich code, also bin ich! ~~

                Kommentar


                • #9
                  Hm, mir ist noch was eingefallen.
                  Du hast doch das sowieso schon zerlegt und dann die Variable

                  $path_parts["extension"]

                  DIE müßte doch zumindest leer sein, wenn kein Bild da ist.
                  Nutze doch die dann für Deine IF, bzw. etwa so:

                  PHP-Code:
                  if(!isset($path_parts["extension"]))
                  {

                  $pfad="";

                  Gruß, Coni
                  ~~ codito ergo sum - ich code, also bin ich! ~~

                  Kommentar


                  • #10
                    ich lade nicht nur gleichzeitig ein bild in die datenbank, sondern
                    auch ein paar strings.
                    aber ich werde das heut noch mal überarbeiten.
                    nur eine frage hätte ich noch.
                    beim auslesen: wie kann sagen,daß man alle datensätz auslesen
                    möchte,aber wenn in der datenbank bei einem bild kein pfad eingetragen ist,dann nicht.
                    also diese syntax kann ich ja nicht verwenden:
                    Code:
                    SELECT * FROM tabelle WHERE bilderurl NOT NULL
                    Dann würden ja einige Datensätz nicht angezeigt werden.
                    Wie kann ich das realisieren?
                    mfg,alex

                    Kommentar


                    • #11
                      Original geschrieben von neworder666
                      Dann würden ja einige Datensätz nicht angezeigt werden.
                      Damit wäre ja genau das, was du haben wolltest -
                      beim auslesen: wie kann sagen,daß man alle datensätz auslesen möchte,aber wenn in der datenbank bei einem bild kein pfad eingetragen ist,dann nicht.
                      - erfüllt.
                      Wie kann ich das realisieren?
                      In dem du erst mal klar definierst, was genau du erreichen willst - anstatt immer so'n Wischi-Waschi-Zeug von dir zu geben, was schon in sich widersprüchlich ist.


                      Wenn du dein Problem mal klarer definierst, dann sollte dir nämlich auch selber deutlicher werden, wo die Lösung liegen könnte.
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Kommentar


                      • #12
                        Original geschrieben von neworder666
                        ich lade nicht nur gleichzeitig ein bild in die datenbank, sondern
                        auch ein paar strings.
                        Na und? Die stehen doch sicher in anderen Variablen und dann auch
                        in anderen Tabellenspalten, oder?

                        wie kann sagen,daß man alle datensätz auslesen
                        möchte,aber wenn in der datenbank bei einem bild kein pfad eingetragen ist,dann nicht.
                        also diese syntax kann ich ja nicht verwenden:
                        Dann würden ja einige Datensätz nicht angezeigt werden.
                        Wie kann ich das realisieren?
                        mfg,alex
                        Willst Du

                        a) Den gesamten Datensatz nicht anzeigen lassen, wenn der Bildpfad
                        nicht vorhanden ist? Dann kannst Du das so nehmen.

                        b) Nur das Bild nicht anzeigen, aber den restlichen Kram?
                        Dann siehe meine IF-Anweisung oben... es geht dann ja schlicht
                        darum, daß der leere Bildpfad nicht angezeigt wird.
                        Gruß, Coni
                        ~~ codito ergo sum - ich code, also bin ich! ~~

                        Kommentar

                        Lädt...
                        X