backslash problem bei dateiuplaod

stef@n

Mitglied
Hoi zusammen,
auch nach längerer losungssuche über die suchfunktion war es mir nicht möglich, mein problem zu lösen.

Ich lade per dateiuplaod ein bild auf den server. das problem ist, er findet das file nicht. Das Script macht zu jeden backslash (\) einen hinzu (bei einem sind es dann 2 und bei 2 dann 4 usw.)

PHP:
	  <form name="sendform" onsubmit="return checkdata()">  
      <!--<form name="sendform" action="1-input.php" enctype="multipart/form-data" method="POST" onSubmit="return checkdata()">
       -->
	    <table width="573" border="0" align="center" cellpadding="2" cellspacing="2">
          <tr> 
            <td colspan="2" class="tabledarkblue"><strong>Artikel einpflegen</strong></td>
          </tr>
          <tr> 
[...]            

            <td class="tablelightblue"><font size="1"><img src="/images/bg-5q.gif" width="5" height="1">w&auml;hlen 
              Sie ein Bild aus:</font></td>
            <td class="tablelightblue"> <input type="file" size="40" name="dateiForm"></td>
          </tr>
          <tr> 
            <td class="tabledarkblue"> <input type="reset" name="reset" value="  Zurückstellen"> 
            </td>
            <td class="tabledarkblue"> <div align="left"> 
                <input type="submit" name="submit" value=" Eintragen ">
              </div></td>
          </tr>
          <tr> 
            <td height="28" colspan="2"> <div align="center"> 
                <p align="left">&nbsp; </p>
              </div></td>
          </tr>
        </table>
      </form>
      <?php } else {

      /*** Datenbank Verbindung herstellen ***/
      db_connect();

      $leerpic   = "keinbild.jpg";
      $ordner    = "../images/";
      $datum     = "$HTTP_POST_VARS[yearForm]-$HTTP_POST_VARS[monthForm]-$HTTP_POST_VARS[dayForm]";

      $sqlid   = mysql_query("INSERT INTO artikel (id,title,nummer,grosse,gruppe,material,farbe,date,text,filename)
      		             				VALUES (NULL,'$HTTP_POST_VARS[titelForm]','$HTTP_POST_VARS[nummerForm]','$HTTP_POST_VARS[grosseForm]','$HTTP_POST_VARS[gruppeForm]','$HTTP_POST_VARS[materialForm]','$HTTP_POST_VARS[farbeForm]','$datum','$HTTP_POST_VARS[textForm]','".$ordner.$leerpic."')");
      $picid   = mysql_insert_id();

      /***** Pruefen ob eine Datei angegeben wurde *****/
	  if (isset($dateiForm)) {

		function stop ($msg, $error="") {
		    $fehler = "<br><br><Table border=0 width=450 align=\"center\" BgColor=\"#ffffff\" cellspacing=1 cellpadding=5>\n";
		    $fehler.= "<Tr><Td BgColor=\"#152845\" vAlign=\"top\" nowrap><b>Nachricht:</b></TD><TD BgColor=\"#274068\">$msg</Td></Tr>\n";
		    $fehler.= "<Tr><Td BgColor=\"#152845\" vAlign=\"top\" nowrap><b>Fehler:</b></TD><TD BgColor=\"#274068\">$error</Td></Tr>\n";
		    $fehler.= "<Tr><Td BgColor=\"#152845\" vAlign=\"top\" nowrap><b>Navigation</b></TD><TD BgColor=\"#274068\"><a href=\"javascript:history.back()\"><p align='center'><br>zurück<br> <br>
  <a href='1-input.php'>Produkt eintragen</a> | <a href='2-edit.php?seite=0'>Produkt 
  &auml;ndern</a> | <a href='3-anzeige.php?seite=0'>Produkt Liste</a> | <a href='main.php'>Hauptseite</a> 
  | <a href='http://www.maennlein.de'>maennlein.de</a></p></a></Td></Tr>\n";
		    $fehler.= "</Table>\n";
		    echo $fehler;
		    exit;
		}

		/*** Datei existent? ***/
      	if (!file_exists($dateiForm)) {
	  	  stop ("Entweder Sie haben keine Datei ausgewählt,oder die angegebene Datei konnte nicht gefunden werden!",$dateiForm);
	  	}
nun, hier hört es auf, bzw bricht das script ab, wiel es kein file findet, was ja kla ist bei einem pfad wie: C:\\dateien\\ordner\\bildname.jpg

hat jemand eine idee woran das liegt?

vielen Dank für Eure Hilfe,
Stef@n
 
Hi, das Problem kenne ich, da man mit einem Backslash Sonderzeichne bestimmt, kennst du ja sicher...

Zum Bleistift echo "\\"; kommt dann auch nur ein "\" raus, machst wie folgt:

\\ ersetzten durch / dann findet er den Pfad auch, das solltest du direkt nach dem Upload machen:

Hier der script
PHP:
$Muster = "[\\]";
$Ersatz = "/";
$Funktionierenderpfad= ereg_replace($Muster,$Ersatz,$Meinpfad);

Gruss Alexander
 
problem gelöst

Hoi,
dank dir für die Hilfe, aber die Pfade lokal haben doch einen backslash und keinen slash (wie im web), also müßte man "\\" mit "\" replacen.
Aber der Fehler lag im java script, der Form tag passte nicht.
mfg stef@n
 
Nee, du kannst den Pfad lokal auf der Maschine mit / angeben, das funktioniert auch... (wunderbarerweise)

Naja, wenn du den Fehler gefunden hast, dann noch viel Spaß
 
hoi, ächt das geht??
cool hab ich echt net gewußt bis etz.
Naja hab ich wieder was gelernt
Dank dir jedenfalls für deine hilfe.
mfg stef@n
 
Zurück