Mit wenig PHP-Kenntnissen wirst du das nicht schaffen, die Grundlagen müssen schon einigermaßen sitzen.
Beiträge von m.scatello
-
-
Einen Ansatz wofür?
Im Grunde hast du ja dein Vorhaben schon grob skizziert, jetzt musst du jeden einzelnen Schritt verfeinern und dann überlegen, was du an HTML- und PHP-Codes brauchst. Wie sieht es denn mit deinen HTML/CSS/PHP-Kenntnissen aus?
-
UNGETESTET
PHP
Alles anzeigen<?php use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\Exception; $kundeMail = $kdn = $name = $id = $bemerkung = $message = ""; if (isset($_POST['kdn'])) { $kundeMail = htmlspecialchars($_POST["kundeMail"], ENT_QUOTES, "UTF-8"); $kdn = htmlspecialchars($_POST["kdn"], ENT_QUOTES, "UTF-8"); $name = htmlspecialchars($_POST["name"], ENT_QUOTES, "UTF-8"); $id = htmlspecialchars($_POST["id"], ENT_QUOTES, "UTF-8"); $bemerkung = htmlspecialchars($_POST["bemerkung"], ENT_QUOTES, "UTF-8"); $html = include("mailbody.php"); require './PHPMailer/src/Exception.php'; require './PHPMailer/src/PHPMailer.php'; require './PHPMailer/src/SMTP.php'; $mail = new phpmailer(); $mail->Host = "smtp.server.de"; $mail->SMTPAuth = true; $mail->SMTPSecure = 'tls'; $mail->Port = 25; $mail->Mailer = "smtp"; $mail->IsHTML(true); $mail->IsSMTP(true); $mail->From = "absender@domain.de"; $mail->FromName = "Mein Name"; $mail->SetFrom("absender@domain.de", "Mein Name"); $mail->Username = "SMTP-Benutzername"; $mail->Password = "SMTP-Passwort"; $mail->Subject = "Betreff"; $mail->AddAddress("empfaenger@domain.de"); $mail->msgHTML($html); $mail->SMTPOptions = array('ssl' => array('verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true ) ); if (!$mail->send()) $message = "Mailer Error: " . $mail->ErrorInfo; else { $message = "Erfolgreich gesendet!"; $kundeMail = $kdn = $name = $id = $bemerkung = ""; } } ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> </head> <body> <?php if (strlen($message)) { echo "<span style='color:#ff0000; font-weight:bold; font-size:14px;'>$message</span><br><br>"; } ?> <form action="" method="post"> <label for="kdn">*Kundennummer</label> <input type="text" maxlength="5" name="kdn" id="kdn" value="<?php echo $kdn; ?>" required> <br> <label for="kundeMail">*Kunden E-Mail</label> <input type="email" name="kundeMail" id="kundeMail" value="<?php echo $kundeMail; ?>" required> <br> <label for="name">Name</label> <input type="text" name="name" id="name" value="<?php echo $name; ?>"> <br> <label for="id">*ID</label> <input type="text" name="id" id="id" value="<?php echo $id; ?>" required> <br> <label for="bemerkung">Bemerkung</label> <input type="text" name="bemerkung" id="bemerkung" value="<?php echo $bemerkung; ?>"> <br> <button type="submit" class="btn btn-primary">Eintragen</button> </form> </body> </html>mailbody.php
HTML
Alles anzeigen$html = "<!DOCTYPE html> <html> <head> <meta charset='utf-8'> </head> <body> <h1>Neues Backup verfügbar</h1> <p>Sehr geehrte Damen und Herren,<br><br> im Kundenportal wurde für Sie ein neues Backup Ihrer Webseite und der zugehörigen Datenbank hinterlegt.</p> <br> <h2>Details zum Backup</h2> <table> <tr> <td><b>Datum:</b></td> <td>" . date("d.m.Y H:i") . "</td> </tr> <tr> <td><b>Name:</b></td> <td>$name</td> </tr> <tr> <td><b>ID:</b></td> <td>$id</td> </tr> <tr> <td><b>Bemerkung:</b></td> <td>$bemerkung</td> </tr> </table> </body> </html>";Dieses Script erhebt nicht den Anspruch auf Perfektion, verdeutlicht aber, dass das Senden von Mails mit dem phpMailer kein großer Akt ist.
Die Zugangsdaten zum SMTP-Server, Port, Verschlüsselung müssen je nach Server angepasst werden
-
ich denk da tut es mail() auch

Tja, so kann man sich vertun. Wenn der Mailserver der Meinung ist, dass es keinen sauberen Mailheader gibt, dann verweigert er dir mal die Annahme und schon kommt nichts an.
Ich empfehle immer gerne den phpMailer, da findet man massenhaft Beispiele, die man relativ leicht anpassen kann. Dann kommen mail auch an und wenn es doch Probleme geben sollte, kann man sich mit dem phpMailer Debug-Ausgaben anzeigen lassen, um den Fehler auf die Spur zu kommen.
-
Crossposting, siehe http://www.forum-hilfe.de/threads/59262-Player-auf-PHP
-
Keine schlechte Lösung, aber
Code
Alles anzeigenif($sortWay === "sortAsc") { $query = "SELECT id, name, rang, created_at FROM bewerbungen ORDER BY created_at ASC"; $stmt = $dbv->prepare($query); $stmt->execute(); $data = $stmt->fetchAll(PDO::FETCH_ASSOC); } else if($sortWay === "sortDesc") { $query = "SELECT id, name, rang, created_at FROM bewerbungen ORDER BY created_at DESC"; $stmt = $dbv->prepare($query); $stmt->execute(); $data = $stmt->fetchAll(PDO::FETCH_ASSOC); }Da hast du doppelte Zeilen, besser wäre
-
-
Da hilft höchst wahrscheinlich
Richtig debuggen
- Man bemerkt, dass ein Skript nicht das tut, was es soll.
- Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(-1);
- Man verwendet ini_set('display_errors', true); damit die Fehler auch angezeigt werden.
- Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
- An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde. Wichtig bei MySQL Fehlern (...not a valid MySQL result resource...): mysqli_error() verwenden oder Abfrage ausgeben und zb mit phpmyadmin testen.
- Schritt 5 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
- Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
- Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
- Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.
-
Fehlermeldung? Was passiert? Wie rufst du das Script auf? Hat es die Extension .php?
-
Zeige uns doch mal, was du bisher versucht hast.
-
Das bin ich nicht .
Wer's glaubt ...
-
Hallo Basti,
Selbst wenn ich den Inhalt aus deiner Vorlage 1:1 in ein neues HTML-Dokument über Copy and Paste übernehme, dann funktioniert es im neuen Dokument nicht.
Mit anderen Worten betreibt Basti Hilfe per PN, was einem Forum natürlich sehr zuträglich ist.

Warum? Was soll das?
-
Ungetestet, könnte aber passen
PHP
Alles anzeigen<?php // Funktion zum Erzeigen des Tabellenkopfes function createTableHeader($columns, $sortColumn, $direction) { $result = ""; // Richtung fuer den Link drehen if ($direction == 'asc') $direction = 'desc'; else $direction = 'asc'; // Tabellenkopf mit Links foreach ($columns as $column) $result .= "<th><a href='?" . (($column == $sortColumn) ? "column=$column&direction=$direction" : "column=$column&direction=asc") . "'>" . ucfirst($column) . "</a> </th>\n"; // Ergebnis zurueckliefern return $result; } // Tabellenspalte, auf der per Default sortiert werden soll $column = "spalte1"; // Richtung, auf der per Default sortiert werden soll $direction = "asc"; // DB-Verbindung $link = mysqli_connect("localhost", "root", "cadbas", "wm2018"); if (!$link) { echo "Fehler: konnte nicht mit MySQL verbinden." . PHP_EOL; echo "Debug-Fehlernummer: " . mysqli_connect_errno() . PHP_EOL; echo "Debug-Fehlermeldung: " . mysqli_connect_error() . PHP_EOL; exit; } // UTF-8 mysqli_set_charset($link, "utf8"); // Wenn eine Tabellenspalte im Link steht if (isset($_GET['column'])) $column = mysqli_real_escape_string($link, $_GET['column']); // Wenn eine Richtung im Link steht if (isset($_GET['direction'])) $direction = $_GET['direction']; // DB-Query $query = "select `spalte1`, `spalte2`, `spalte3`, `spalte4` from `user` order by $column $direction"; // Abfrage ausfuehren $result = mysqli_query($link, $query) or die ("MySQL-Error: " . mysqli_error($link)); // Tabelle starten echo "<table> <tr>"; // Tabellenkopf erzeugen echo createTableHeader(array('spalte1', 'spalte2', 'spalte3', 'spalte4'), $column, $direction); echo "</tr>"; // Daten ausgeben while ($row = mysqli_fetch_assoc($result)) { echo "<tr> <td>" . $row['spalte1'] . "</td> <td>" . $row['spalte2'] . "</td> <td>" . $row['spalte3'] . "</td> <td>" . $row['spalte4'] . "</td> </tr>\n"; } echo "</table>"; ?>Mit ein paar Anpassungen sollte man damit jede Tabelle darstellen können. Ich habe bewusst die einfachste Methode geschrieben, die sollte auch ein Anfänger nachvollziehen können.
-
Oder mit Php in array Speichern
Wenn die Daten aus einer Datenbank kommen, ist das die dümmste Idee
-
Mit
$str = "Österreich, Ägypten, 300$, Überfluss, Straße";
wird das z.B. aber interessant. Da halte ich ein count mit explode doch für einfacher. Da sind mir Sonderzeichen und Umlaute völlig wurscht.
-
Bitte immer Quellcodes posten, denn beim Programmieren gilt nicht die Regel, dass ein Bild mehr als tausend Worte sagt.
-
Mit str_word_count gibt es manchmal Probleme:
PHP<?php $text = "Alles schön und gut, aber manchmal funktioniert das nicht"; echo str_word_count($text); ?>Da liefert das Script eine 10, obwohl 9 richtig wäre.
In den "User Contributed Notes" zu str_word_count findet man in der Doku:
PHP
Alles anzeigen<?php function str_word_count_utf8($str) { $a = preg_split('/\W+/u', $str, -1, PREG_SPLIT_NO_EMPTY); return count($a); } $text = "Alles schön und gut, aber manchmal funktioniert das nicht"; echo str_word_count_utf8($text); ?>Damit funktioniert es wieder. Da kann man aber auch gleich explode und count nehmen
-
-
Ich darf mir zwar jetzt wieder anhöhren das es sch... ist und alles falsch
Nö.

Es ist echt erschreckend, wenn man einen Hinweis bekommt und dann an so einfachen Sachen scheitert. Da muss man sich doch mal fragen, ob Programmieren das richtige Hobby ist oder ob man sich einfach mal mit den Grundlagen beschäftigen sollte. Und damit meine ich jetzt nicht dich basti1012
-
Einen Lösungsansatz findest du hier: Bei PHP Ausgabe nach bestimmter Anzahl Text stoppen.