Upload-script

[code]// UPLOAD-SCRIPT

$target = “…/fotos/”;
$target = $target . basename( $_FILES[‘datei’][‘name’]) ;
$ok=1;
if(move_uploaded_file($_FILES[‘datei’][‘tmp_name’], $target))
{
echo “Die Datei wurde hochgeladen.”;
}
else {
echo “Ein Fehler ist beim Hochladen aufgetreten.”;
}

// SQL-SCRIPT

mysql_query(“INSERT INTO bla
(xxxx)
VALUES
(’$xxxxx’)”)
or die(mysql_error());[/code]

Das ist mein Grundgerüst - und so funktioniert es auch. Probier mal die Dateitypen-Funktion zu entfernen - zum Test ob es daran liegt.

Dateitypen-Funktion hab ich raus gemacht, geht immer noch nicht

Hast du dein Script mal mit dem aus meinem letzten Post hier verglichen. Hast du dich vlt irgendwo vertippt? Das Script so wie es dort steht läuft nämlich fast tadellos… Bin auch selbst noch am debuggen, aber das Einfügen in die DB sowie das hochladen klappen wunderbar.

Da fehlt die Angabe, wie die Daten beim Verschicken zu kodieren sind - ohne die wird das mit dem Dateiupload nichts.

Btw., ziemlich unsinnig, solche grossen HTML-Bereiche komplett mit echo auszugeben.

so bin erst jetzt wieder dazu gekommen weiter zu basteln.

hab jetzt folgendes gemacht:
123.php

<?php

//properties of the uploaded file
$name = $_FILES["myfile"]["name"];
$type = $_FILES["myfile"]["type"];
$size = $_FILES["myfile"]["size"];
$temp = $_FILES["myfile"]["tmp_name"];
$error = $_FILES["myfile"]["error"];

if ($error > 0)
   die("Error uploading file! Code $error.");
else
{
 if ($type == "image/gif" || "image/JPG" || $size > 5000000) // conditions for the file
 {
  die("That format is not allowed or file size is too big!");
 }
 else
 {
 move_uploaded_file($temp,"dateien/turniere/".$name);
 echo "Upload complete!";
 }

}
?>

456.php

//Datenbank verbinden
include "../zugang.php.inc";

$datum="";
$veranstaltung="";
$webseite="";
//$ausschreibung="";

    $datum=mysql_real_escape_string($_POST['datum']);
    $veranstaltung=mysql_real_escape_string($_POST['veranstaltung']);
    $webseite=mysql_real_escape_string($_POST['webseite']);

mysql_query("INSERT INTO turnierkalender
(datum, veranstaltung, ausschreibung, webseite)
VALUES
('$datum', '$veranstaltung', '$ausschreibung', '$webseite')")
or die(mysql_error());


mysql_close($link);

echo "<div id=\"box2\">\n";
echo "<p><b><font size=\"+2\">Turniere eintragen</font></b></p>\n";
echo "<table border=\"0\" cellpadding=\"1\" cellspacing=\"2\">\n";
echo "<tr>\n";
echo "<td align=\"left\">Datum des Turniers:</td><td align=\"left\"><input name=\"datum\" type=\"text\" id=\"datum\" size=\"60\" maxlength=\"50\" class=\"eingabe\"";
echo " value=\"".$datum."\"";
echo "></td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td align=\"left\">Turniername:</td><td align=\"left\"><input name=\"veranstaltung\" type=\"text\" id=\"veranstaltung\" size=\"60\" maxlength=\"50\" class=\"eingabe\"";
echo " value=\"".$veranstaltung."\"";
echo "></td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td align=\"left\">Webseite:</td><td align=\"left\"><input name=\"webseite\" type=\"text\" id=\"webseite\" size=\"60\" maxlength=\"50\" class=\"eingabe\"";
echo " value=\"".$webseite."\"";
echo "></td>\n";
?>
 <tr>
  <td>Ausschreibung:</td>
  <td><form action='123.php'method='POST' enctype='multipart/form-data'>
  <input type='file' name='myfile'></td>
  </tr>
</table>
  <input type='submit' value='Upload'>
  </form>

<?php
echo "</div>\n";
?>

im moment bringt er immer die meldung "That format is not allowed or file size is too big!"
egal was ich versuche hochzuladen.

ob das ganze so funktioniert vom aufbau weiß ich auch nicht.

Die Abfrage ist unsinnig.
"image/JPG" ist immer "wahr", und damit deine gesamte Abfrage.

Du kannst die ersten beiden Vergleiche nicht derart "abkürzen", sondern musst zwei mal $type vergleichen, und die Ergebnisse dieser Vergleiche dann per ODER verknüpfen.

Die Abfrage ist unsinnig.
“image/JPG” ist immer “wahr”, und damit deine gesamte Abfrage.

Du kannst die ersten beiden Vergleiche nicht derart “abkürzen”, sondern musst zwei mal $type vergleichen, und die Ergebnisse dieser Vergleiche dann per ODER verknüpfen.

hast du deinen beitrag geändert, da stand och erst was anders?!

so?

Ja - weil mir auch nicht auf Anhieb aufgefallen war, wie unsinnig deine If-Abfrage war :slight_smile:

[quote]so?

Die zusätzlichen Klammerungen braucht es nicht unbedingt, und du kannst auch beim Operator || bleiben, statt OR zu benutzen. (Die beiden sind zwar fast gleichwertig, aber eben nicht ganz - was die Operator-Rangfolge angeht.)

mir ist egal ob || oder or. ich lass jetzt aber mal das or stehen.

if ($type==".pdf") OR ($type==".doc") else $size > 5000000)

kann man das dann so machen?

edit: oder so?

if ($type==".pdf") OR ($type==".doc") OR ($size > 5000000)

Weder noch.
If erfordert mindestens die Klammerung der gesamten Bedingung.
Und das mit dem else im ersten Beispiel ist ganz grosser Humbug.

ja dass mit dem ersten else is humbug, ist mir aber auch erst danach gekommen.

bin da nicht so fit in dem zeug

[code]if ($error > 0)
die(“Error uploading file! Code $error.”);
else
{
if (($type==".pdf") OR ($type==".doc") OR ($size > 5000000)) // conditions for the file
{
die(“That format is not allowed or file size is too big!”);
}
else
{
move_uploaded_file($temp,“dateien/test/”.$name);
echo “Upload complete!”;
}

}[/code]

so stehts jetzt gerade der upload klappt nur läd er immer noch alles mögliche hoch

Dann kommt jetzt wieder das, was ich ursprünglich vorhin schon schreiben wollte:

Kontrolliere die Inhalte der Variablen, deren Inhalt du hier prüfst.

und jetzt auf deutsch so dass ich es auch verstehe

hab ich variablen verwechselt?

Du sollst kontrollieren, ob auch wirklich das drinsteht, was du in deinen If-Bedingungen annimmst - also Kontrollausgaben der Variableninhalte machen.