PHP Header führt immer zur index.php

Hallo Community,

ich mache gerade eine kleine Website, jedoch springt jeder header(location:xyz.php) auf die index.php (das jedoch nur innerhalb der folgenden Datei):

<?php
    include('../include/language.inc.php');
    include('../include/testSession.inc.php');
    include('../include/connect.inc.php');
    if($_SESSION['mode'] == 'users') {
        $UIDC = $_SESSION['ID'];
        $UIDN = explode(':', $UIDC)[1];
        $OIDC = $_GET['ID'];
        $OType = substr($OIDC, 0, 1);
        $OIDN = explode(':', $OIDC)[1];
        $user_path = 'SELECT likes,dislikes FROM users WHERE ID='.$UIDN;
        $user = $mysqli->query($user_path)->fetch_assoc()or die($mysqli->error);
        $userUndislike = 'UPDATE users SET dislikes=REPLACE(dislikes, ";'.$OIDC.'", "") WHERE ID='.$UIDN;
        $userLike = 'UPDATE users SET likes=CONCAT(likes, ";'.$OIDC.'") WHERE ID='.$UIDN;
        //Check type
        if($OType == 'c') {
            $undislike = 'UPDATE companies SET dislikes=dislikes-1 WHERE ID='.$OIDN;
            $like = 'UPDATE companies SET likes=likes+1 WHERE ID='.$OIDN;
            $back = 'Location:company.php';
        } elseif($OType == 'p') {
            $undislike = 'UPDATE products SET dislikes=dislikes-1 WHERE ID='.$OIDN;
            $like = 'UPDATE products SET likes=likes+1 WHERE ID='.$OIDN;
            $back = 'Location:product.php';
        } elseif($OType == 'a') {
            $undislike = 'UPDATE awards SET dislikes=dislikes-1 WHERE ID='.$OIDN;
            $like = 'UPDATE awards SET likes=likes+1 WHERE ID='.$OIDN;
            $back = 'Location:award.php';
        } else {
            $_SESSION['error'] = $language['searchErrorUnknownType'] . $OType;
            header('Location:' . $_SERVER['HTTP_REFERER']);
            echo '<script>window.history.back()</script>';
            die($language['searchErrorUnknownType'] . $OType);
        }
        //Check like already set
        if(array_search($OIDC, explode(';', $user['likes'])) === false) {
            $mysqli->query($like)or die($mysqli->error);
            $mysqli->query($userLike)or die($mysqli->error);
            //Check dislike set
            if(array_search($OIDC, explode(';', $user['dislikes'])) !== false) {
                $mysqli->query($undislike)or die($mysqli->error);
                $mysqli->query($userUndislike)or die($mysqli->error);
            }
        } else {
            //Unlike
            $mysqli->query(str_replace('+', '-', $like))or die($mysqli->error);
            $mysqli->query(str_replace('dislikes', 'likes', $userUndislike))or die($mysqli->error);
        }
    } else {
        $_SESSION['error'] = $language['productErrorNotAUser'];
    }
    header('Location:' . $_SERVER['HTTP_REFERER']);
    echo "<script>window.history.back()</script>";
    header($back);
?>

Die verschiedenen zurückspring Varianten: - header('Location:' . $_SERVER['HTTP_REFERER']); - echo ""; - header($back);

Das verwunderlichste ist, dass header($back); zwar auf jeden Fall die richtige Anweisung hat (Location:company.php), jedoch trotzdem auf die index.php zurückspringt (Location:../index.php), welche einen Ordner obendrüber liegt!

Danke, schon mal im Voraus!

-Minding

PHP
1 Antwort
PHP Bild hochladen und abspeichern

Hallo Community,

ich will eine Seite (HTML,PHP, MySQLi, CSS - möglichst kein JS) machen, wo man sein Bild hochlädt und es dann gespeichert wird, während der Pfad in der DB landet.

Mein Code bis jetzt:

HTML:

<br /><h3><?php echo $language['reportTitle']; ?></h3>
        <form class="adder" action="saveReport.php" method="POST" enctype="multipart/form-data">
            <input type="hidden" name="ID" value="<?php echo $_SESSION['ID']; ?>" />
            <br /><?php echo $language['reportImage']; ?><label class="upload"><p><?php echo $language['reportUpload']; ?></p><input name="image" type="file" maxlength="1000000" accept="image/*" /></label>
            <br /><br /><?php echo $language['reportDescription']; ?><input name="description" type="text" />
            <br /><br /><b><?php echo $language['reportInfoTitleGeneral']; ?></b><input type="submit" />
        </form>

CSS: (eig. unwichtig)

.upload {
    overflow: hidden;
    position: absolute;
    text-align: center;
    font-size: small;
    color: #708090;
    background-color: #dddddd;
    width: 213px;
    height: 33px;
    left: 500px;
    margin-top: -10px;
    border-width: thin;
    border-color: #C0C0C0;
    border-style: solid;
    border-radius: 3px;
}
.upload:hover {
    border-color: #008B8B;
}
.upload [type="file"] {
    display: block;
    position: absolute;
    font-size: 999px;
    filter: alpha(opacity=0);
    opacity: 0;
    right: 0;
    top: 0;
}
.upload p {
    margin-top: 10px;
}

PHP: (nur ein Ansatz)

<?php
    include('../include/language.inc.php');
    include('../include/testSession.inc.php');
    include('../include/connect.inc.php');
    
    $info[1] = $_POST['ID'];
    $info[2] = $_POST['description'];
    $info[3] = $_FILES['image'];
    $size = sizeof($info);
    for($i = 0; $i < $size; $i++) {
        if(empty($info[$i])) {
            $_SESSION['error'] = $language['addErrorMissingData'];
            header('Location:report.php');
            die($language['addErrorMissingData']);
        }
    }
    $path = "INSERT INTO bugs VALUES (NULL,'".$info[1]."','".$info[2]."','".$info[3]."')";
    $mysqli->query($path);
    imagepng($im, '../include/images/'. $mysqli->insert_id . image_type_to_extension(IMAGETYPE_PNG));
?>

Ich habe schon ein bisschen gegoogelt, aber ich versteh's nicht. Gefunden hab ich:

  • ob_start()
  • POST uploads: http://php.net/manual/en/features.file-upload.post-method.php#features.file-upload.post-method

Am ende sollen (NULL für die ID), die UserID und die Beschreibung in der DB landen. Der Bild-Pfad soll bug['ID'].'.png' sein.

Fragen:

  • Wie nehme ich das Bild entgegen? ($_POST oder $_FILES)
  • Wie wandle ich das Bild in ein PNG-Format um?
  • Wie speicher ich das Bild?
  • Wieso spackt der "Hochladen"-Button so? (Text verschwindet nach anklicken) (Optional)

Danke, schon mal im Voraus!

-Minding

Bilder, HTML, CSS, MySQL, PHP, speichern, Image
2 Antworten
Weitere Inhalte können nur Nutzer sehen, die bei uns eingeloggt sind.