Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Umleitung über Header wird ignoriert ? [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Umleitung über Header wird ignoriert ?


 
Dario_PHP
17-12-2010, 10:06 
 
Hallo zusammen,
hab ein bescheuertes Problem und zwar übergebe ich diverse Eingaben über POST an eine andere Seite. Auf dieser anderen Seite prüfe ich ob in den POST Variablen was drin steht, wenn nicht dann leite ich über den header zur Eingabeseit wieder zurück. Nur leider wird da nichts umgeleitet obwohl ich ein Feld leer lasse... ich verstehe es nicht

Irgendwo steckt der Wurm und ich finde ihn einfach nicht.

Hier mal der code auf der übergebenden Seite:


<?php
$name=$_POST['bezeichnung'];
$pic=($_FILES['logo']['name']);
$size=($_FILES["logo"]["size"]);
$timestamp = date("Y-m-d H:i:s");
if ($_POST['bezeichnung'] == "")
{
header ("Location: hersteller.php?medldung=10");
}



Hier wird die If Bedingung einfach ignoriert...

und nu der Rest vom code:


if ((($_FILES["logo"]["type"] == "image/gif") || ($_FILES["logo"]["type"] == "image/jpeg") || ($_FILES["logo"]["type"] == "image/pjpeg"))
&& ($_FILES["logo"]["size"] < 1024000))
{
if ($_FILES["logo"]["error"] > 0)
{
echo "Fehlercode: " . $_FILES["logo"]["error"] . "<br />";
}
else
{

if (file_exists("pics/" . $_FILES["logo"]["name"]))
{
header ("Location: hersteller.php?medldung=2");
}
else
{
move_uploaded_file($_FILES["logo"]["tmp_name"],
"pics/" . $_FILES["logo"]["name"]);

// Connects to your Database
require_once "mysql.php";
$connectionid = mysql_connect (MYSQL_HOST, MYSQL_USER, MYSQL_PASS);
if (!mysql_select_db (MYSQL_DATABASE, $connectionid))
{
die ("Keine Verbindung zur Datenbank");
}


$size = ($size /1024);





//Writes the information to the database
$sql = mysql_query("INSERT INTO `tb_hersteller` VALUES ('','$name','$pic','$size','$timestamp')") ;




if (mysql_errno())
{
if (mysql_errno()==1062)
{
header ("Location: hersteller.php?medldung=3");
echo "Datensatz bereits vorhanden";
}
else
{
header ("Location: hersteller.php?medldung=4");
echo "Insert Error: ".mysql_error();
}
}
else
{
header ("Location: hersteller.php?medldung=5");
echo mysql_affected_rows()." Datensatz angelegt.";
}

}
}
}
else
{
header ("Location: hersteller.php?medldung=12");
}
?>


Wahrscheinlich ist das irgendein kleines Problem...
Würde mich über jede Hilfe freuen

 
Kropff
17-12-2010, 10:07 
 
Ist auf jeden Fall das falsche Forum, darum verschieb ich es mal.

Peter

 
Dario_PHP
17-12-2010, 10:08 
 
war mir nicht sicher, danke und sorry.

 
h3ll
17-12-2010, 10:35 
 
Bei Header-Location muss immer eine komplette URL stehen.

zB: http://example.org/my_page.php

 
Dario_PHP
17-12-2010, 10:41 
 
weiter unten im code leite ich erfolgreich über den header um und habe auch keinen vollständigen Pfad.
Ich denke das muss an den If-Bedingungen liegen, weil speziell die erste If Bedingung ignoriert wird
:dontknow:

 
h3ll
17-12-2010, 10:52 
 
weiter unten im code leite ich erfolgreich über den header um und habe auch keinen vollständigen Pfad.

Trotzdem ist es falsch. Bitte korrigiere das.

 
Dario_PHP
17-12-2010, 13:05 
 
So ich hab die Änderungen vorgenommen, aber das Problem besteht immer noch...

 
combie
17-12-2010, 13:45 
 
Nach echo "Fehlercode: " . $_FILES["logo"]["error"] . "<br />"; wird keine Weiterleitung mehr funktionieren.
Ein aktiviertes Error_reporting() würde dir sogar den Grund nennen.

Du verläßt dich auf die Angaben, vom Browser, z.B. Name und Type. Das wird ins Auge gehen.
1. Prüfe Bilder mit getimagesize()
2. Vergib als Namen den Autoinkrement Key der Tabelle

 
wahsaga
17-12-2010, 13:46 
 
Hier wird die If Bedingung einfach ignoriert...
Quatsch, „ignoriert“ wird da bestimmt nichts.

Vermutlich hat aber die Variable, die du vergleichen willst, nicht wirklich den Inhalt, den du annimmst - überprüfe das mit einer Kontrollausgabe, bspw. per var_dump.

Und hast du das error_reporting so eingestellt, wie es in den Forenregeln empfohlen wird?


Und zu letzt - schreibst du den Parameternamen meldung eigentlich absichtlich überall falsch, oder ...?


Alle Zeitangaben in WEZ +2. Es ist jetzt 13:34 Uhr.