Automatischer E-Mailversand php?

Kann mir jemand sagen was hier nicht funktioniert?

Die Emailadresse soll aus einem Formular genommen werden.

Es klappt aber nicht

hier der Prgrammcode:


//php_mailer verwenden
require 'src/Exception.php';
require 'src/PHPMailer.php';
require 'src/SMTP.php';
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

$mail = new PHPMailer(true);                                 // Passing

true
enables exceptions try {     //Server settings     $mail->SMTPDebug = 0;                                     // Enable verbose debug output     $mail->isSMTP();                                         // Set mailer to use SMTP     $mail->Host = 'smtp.web.de';                              // Specify main and backup SMTP servers     $mail->SMTPAuth = true;                                   // Enable SMTP authentication     $mail->Username = 'emailadresse';                // SMTP username     $mail->Password = 'passwort';                          // SMTP password     $mail->SMTPSecure = 'tls';                                // Enable TLS encryption,
ssl
also accepted     $mail->Port = 587;                                         // TCP port to connect to

    //Recipients     $mail->setFrom('emailadresse');     $mail->addAddress($email);                 // Add a recipient              //Content     $mail->isHTML(true);                                     // Set email format to HTML     $mail->Subject = 'Registrierung bei xxxxx';     $mail->Body    = 'Vielen Dank für Ihre Anmeldung auf xxxxx. </br>                       Ihre Daten werden zurzeit geprüft. </br>                       Sie erhalten weitere Informationen in den nächsten Tagen. </br>                        Mit freundlichen Gtüßen xxxx xxxxx';     $mail->AltBody = 'Vielen Dank für Ihre Anmeldung auf xxxxx. \n                       Ihre Daten werden zurzeit geprüft. \n                       Sie erhalten weitere Informationen in den nächsten Tagen. \n                        Mit freundlichen Gtüßen xxxx xxxxx';

    $mail->send();     echo '<h1> Die Registrierung wurde versandt und wird in nächster Zeit geprüft.</h1> </br>           <b> Kehren Sie zur <a href="http://xxxxx">Startseite</a> zurück.'; } catch (Exception $e) {     echo 'Message could not be sent. Mailer Error: ', $mail->ErrorInfo ,'</br>           Bitte kontaktieren Sie emailadresse. '; }

?>

Computer, HTML, Programmieren, E-Mail, PHP
2 Antworten
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

Meistgelesene Fragen zum Thema PHP