Verstanden.
Danke nochmals für die Erläuterungen. Immer sehr hilfreich von Dir. Besonders für so einen greeny wie mich.
Schönen Feiertag.
Verstanden.
Danke nochmals für die Erläuterungen. Immer sehr hilfreich von Dir. Besonders für so einen greeny wie mich.
Schönen Feiertag.
Danke Arne Drews . An den Punkt habe ich gar nicht gedacht! Aber Du hast absolut Recht.
Wann macht dann das pattern Attribut überhaupt Sinn?
olkostbe
Hallo an die Experten,
Lese aktuell einiges über Formulareingaben und bin dort über das Attribut pattern gestoßen. Da kam bei mir folgende Frage auf:
Aktuell versuche ich die Benutzereingaben im Formular über php abzuprüfen.
Beispielsweise
und
$Fehler["telefon"] .= !preg_match("/^[ 0-9\/-]{6,}+$/", $_POST["telefon"]) ? " Die Telefonnummer ist fehlerhaft!" : "";
Wenn ich mir jetzt in HTML das Attribut pattern anschaue, meine ich da erkennen zu können, dass diese Sicherheitsabfrage darüber schon in HTML möglich sein dürfte.
Beispiel:
Bin ich da auf dem Holzweg?
olkostbe
Danke Euch beiden.
Grüße aus dem Süden der Republik
olkostbe
Hallo,
Werfe meine Frage mal in den HTML Bereich, auch wenn die finale Frage mit CSS zu tun hat. Die Forummoderatoren können dann entscheiden wohin damit.
hab jetzt schon ziemlich gegoogled, aber komme irgendwie nicht zum Ziel:
folgender Code:
<label>Full name:</label>
<input type="text" id="full_name" name="full_name" placeholder="Jane Doe" title="Hier den Namen eingeben!" required>
Beim draufgehen mit der Maus auf den Textbereich erscheint dann der title. So weit so gut.
Wie kann ich aber diesen title (hier: "Hier den Namen eingeben!") über CSS gestallten?
Stehe gerade auf dem Schlauch. Im Netz wird noch viel von JS und Tooltips gesprochen; - erscheint mir aber veraltete Info.
Danke
olksotbe
Hallo m.scatello
Hatte ich auch schon probiert:
Folgende Fehlermeldung:
Notice: Trying to get property 'vorname' of non-object in C:\xampp\htdocs\projekte\db-test\sortieren.php on line 47
Notice: Trying to get property 'nachname' of non-object in C:\xampp\htdocs\projekte\db-test\sortieren.php on line 48
Notice: Trying to get property 'anmerkung' of non-object in C:\xampp\htdocs\projekte\db-test\sortieren.php on line 49
Notice: Trying to get property 'erstellt' of non-object in C:\xampp\htdocs\projekte\db-test\sortieren.php on line 50
Notice: Trying to get property 'vorname' of non-object in C:\xampp\htdocs\projekte\db-test\sortieren.php on line 47
wiederholt sich dann für jeden Datensatz.
Muss also ein anderer Fehler von mir sein.
Gerade mal die Variante von m.scatello ausprobiert als Schmalspurvariante blank ohne in Axels Script einzubauen: Danke klappt!
Mit den Anpassungen von mir, hier das Script:
?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>' . ucfirst($column) . ' <a href="?column=' . $column . '&direction=asc" title="Aufsteigend sortieren">▲</a>' . '<a href="?column=' . $column . '&direction=desc" title="Absteigend sortieren">▼</a>' . '</th>';
/* Alte Variante ===============
"<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 = "nachname";
// Richtung, auf der per Default sortiert werden soll
$direction = "asc";
// DB-Verbindung
// $link = mysqli_connect("localhost", "root", "cadbas", "wm2018");
$link = new mysqli('localhost','root','','adressbuch');
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
`vorname`,
`nachname`,
`anmerkung`,
`erstellt`
from
`kontakte`
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('vorname', 'nachname', 'anmerkung', 'erstellt'), $column, $direction);
echo "</tr>";
// Daten ausgeben
while ($row = mysqli_fetch_assoc($result))
{
echo "<tr>
<td>" . $row['vorname'] . "</td>
<td>" . $row['nachname'] . "</td>
<td>" . $row['anmerkung'] . "</td>
<td>" . $row['erstellt'] . "</td>
</tr>\n";
}
echo "</table>";
?>
Alles anzeigen
Werde nach ein wenig Zeit das dann in das Axel Script einbauen. Mal sehen wie mein Level ist. Wenn es dumm läuft muss ich mich halt wieder hier im Forum als Anfänger outen (-> Danke für den Hinweis m.scatello )
Nur so als Hinweis. Dieses Script hat bei mir nicht funktioniert:
<?php
require 'inc/db.php';
$spalten = array(
'vorname',
'nachname',
'anmerkung',
'erstellt',
);
if (isset($_GET["spalte"]))
{
$spalte = $_GET["spalte"];
}
else {
$spalte = 'nachname';
}
if (!in_array($spalte, $spalten)) {
$spalte = 'nachname'; // Default-Wert
}
$sort = isset($_GET["sort"]) ? $_GET["sort"] : 'desc';
if (!in_array($sort, array('asc', 'desc'))) {
$sort = 'desc'; // Default-Wert
}
echo '<table border="1"><tr>';
foreach ($spalten as $spalte) {
echo '<th>' .
ucfirst($spalte) .
' <a href="?spalte=' . $spalte . '&sort=asc" title="Aufsteigend sortieren">▲</a>' .
'<a href="?spalte=' . $spalte . '&sort=desc" title="Absteigend sortieren">▼</a>' .
'</th>';
}
echo '</tr>';
$select = $db->query("SELECT vorname, nachname, anmerkung, erstellt
FROM kontakte
ORDER BY " . $spalte . " " . $sort);
$kontakte = $select->fetch_assoc();
foreach ($reihe as $kontakte) {
echo '<tr><td>' . $reihe->vorname . '</td>' .
'<td>' . $reihe->nachname . '</td>' .
'<td>' . $reihe->anmerkung . '</td>' .
'<td>' . $reihe->erstellt . '</td></tr>';
}
echo '</table>';
?>
Alles anzeigen
Das Ganze kommt dann mit der Fehlermeldung:
Notice: Undefined variable: reihe in C:\xampp\htdocs\projekte\db-test\sortieren.php on line 46
Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\projekte\db-test\sortieren.php on line 46
Mit ist zwar klar das die variabel $reihe nicht definiert ist, aber komme nicht dahinter wie ich diese Variable richtig definieren soll.
Vielleicht hier ein Korrekturhinweis zum Lernen, was mein Denkfehler ist von den Experten. Danke schon jetzt.
Am Schluss dann noch die 2. Frage von oben: Trotz Sortierung in der Datenbank wird das nachher nicht angezeigt. Warum ist das so?
(Auch hier nur zum besseren Verständnis der Materie; - ich kann ja sonst niemanden fragen).
Danke und gute Nacht
olkostbe
Hi Stef und m.scatello,
Ihr wart zu schnell (oder ich zu langsam).
Werde mir das mal in Ruhe anschauen.
Danke
Hi,
Die erste Version von Basti werde ich als letzte Möglichkeit einsetzen, wenn ich an allem weiteren scheitere.
Die zweite Version habe ich mal auf die Schnelle ausprobiert:
Bin in die Datenbank (via phpmyadmin) rein und habe die Datenbank sortiert (habe ich total vergessen, dass man so auch ran kann).
Funktionierte erwartungsgemäß hervorragend.
ABER: Wenn ich jetzt das Script von Axel aufrufe, werden die Datensätze nicht sortiert wiedergegeben.
Habe ich hier einen gedanklichen Fehler? Danke für Hinweise.
Die dritte Version mit PHP und array ist genau die Version, bei der ich in dem Axel Script Schwierigkeiten habe, weil die Ausgabe durch die vielen Verschachtelungen ... na sagen wir mal ziemlich "hochgetuned" ist. Die Funktionsweise mit dem Array ist mir schon klar.
Ich glaube auch, dass ich vermutlich auch mit einer Session arbeiten muss, um die Sortierung auf der jeweiligen Spalte zu halten - richtig?
Vielleicht kann mir da das Axel Team weiterhelfen. Danke
olkostbe
P.S.: Bin bald wieder nicht mehr Strohwitwer, somit bitte Verständnis, wenn ich ein wenig Zeit brauche.
Hi Basti;
geht auch bei php-kurs.com:
link: https://www.php-kurs.com/db-login-bereich-db-abgleich.htm
hier ist der Originalcode: https://www.php-kurs.com/downl…com-db-anwendung-kmpl.zip
zum runterladen.
Ich habe zwar mit dem Originalcode schon kräftig drin rumgespielt (sprich mein Code ist schon etwas anders), aber bei Unterstützung von Euch wird das kein Problem sein.
Danke.
olkostbe
P.S.: Bisher lerne/spiele ich mit der Datenbank, also von Hunderten von Daten zu sprechen ist etwas übertrieben.
Hi Basti,
Jep, das ist ein Ansatz. Eigentlich wollte ich das in dem Script von Axel implementieren (des Lernens wegen). Aber wenn ich nicht weiterkomme hier im Forum, dann ist das Genau der link den ich brauchte. Danke!!
Übrigens ist dort auch Datenbank und PHP hinterlegt - passt also.
olkostbe
Hallo Team Axel,
mal wieder was vom Anfänger.
habe nun fast alles aus den DVDs durch. Besonders die letzte DVD mit der Datenbankanwendung war mit das Beste, wenn auch richtig anstrengend. Inzwischen versuche ich durch diverse Anpassungen einfach auch zu lernen.
So habe ich es geschafft, die Anzahl der am Bildschirm angezeigten Datensätze durch den Benutzer selbst in das Script mit einzucodieren; bis der Benutzer einen anderen Wunsch festlegt (also nicht fest vorgegeben, wie im Script), aber auch andere Kleinigkeiten in CSS, etc.
Woran ich im Moment bei Eurem Script ein wenig scheitere:
Ich würde gerne eine benutzerdefinierte Sortierung durchführen können. Beispielsweise soll der Benutzer nach Nachnamen aufsteigend oder absteigend sortieren können. Dabei sollen allerdings die anderen Einstellungen beibehalten werden.
Im Netz gibt es da einige Hinweise und ich habe auch so die ein oder andere Idee (Session wird es wohl sein müssen; Sortierlink im Tabellenkopf, somit auch die Ausgabe anpassen, etc.) - möchte aber das Ganze in das bestehende Script einbauen. Habt Ihr da ein paar Ansätze für Euer Script?
Danke
olkostbe
ok, beide Ansätze sind klar.
Jetzt muß ich das nur noch mal testen.
- In JS glaube ich habe ich eine Idee davon, wie so etwas gehen könnte (Danke Basti).
- Bei PHP müßte ich mich nochmal einlesen (Ach ja Axel! Den Teil Deiner DVD habe ich mir für später vorgenommen), wie man die Daten in der HTML Datei und der CSS Datei ändert. Das mit date ('I') --- tja so einfach kann PHP sein (Danke m.scatello).
Würde das Ganze denn auch funktionieren, wenn die hohe Politik den Wechsel abschafft? Also z.B. wie in Russland? Wie reagiert in Russland dann date ('I')? Oder ist das egal?
php.net:
I (großes 'i') | Fällt ein Datum in die Sommerzeit | 1 bei Sommerzeit, ansonsten 0. |
Zum Abschluss nur noch die Frage: Was wäre denn nun in der Anwendung besser / vorteilhafter und warum - JS oder PHP?
Danke
olkostbe
Hallo,
bin jetzt nicht sicher, wo das Thema reingehört, daher mache ich es hier.
Situation: HTML + CSS vorhanden.
Jetzt die Frage:
1. Wie kann ich im HTML ein Bild ändern, dass es sich von Sommer auf Winter und zurück ändert
2. Das gleiche bei z.B. bei einem Hintergrundbild in CSS
Bisher war ich eher geneigt in Javascript sowas zu machen (keine Ahnung bisher wie, da JS nicht unbedingt meine Stärke).
Oder bin ich da auf dem Holzweg? Gibt es da auch andere Ansätze?
Mit Bitte um Denkansätze von den Experten, bevor ich mich in die üblichen selbstdidaktischen Seiten hineindenken muss.
Danke schon mal im Voraus
olkostbe
Schau mal unter: https://www.php-kurs.com/
Dort habe ich meinen Einstieg versucht, bin zwar weit davon entfernt etwas davon zu "Wissen", aber Axel macht das zum Einsteigen wirklich gut.
Just my 4 cents
olkostbe
ok. Habe ich schon befürchtet.
Wie schaut es mit Erklärungen zu Frage 3 aus?
Hallo,
folgende beispielhafte Situation:
1. Verzeichnisstruktur auf dem Webserver:
- /.. mit index Datei, .htaccess Datei und vielen anderen Dateien
- /bilder mit example-bild.jpg
- .htaccess Datei ist:
# Verzeichnisse und Dateien sperren
<Files .htaccess>
order allow,deny
deny from all
</Files>
# Fehler ausgeben bei index:
Options All -Indexes
# Bilder verlinken verhindern:
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} ^https?://([^/]+)/ [NC]
RewriteCond %1#%{HTTP_HOST} !^(.+)#\1$
RewriteRule \.(jpg|jpeg|png|gif|swf|svg)$ - [NC,F,L]
Alles anzeigen
2. sagen wir mal die index Datei greift auf das Foto in der /bilder/example-bild.jpg zu und das soll auch so sein.
Folgendes passiert:
- Der Zugriff funktioniert einwandfrei aus der index. Datei - so weit so gut, weil auch so gewollt.
- wenn ich aber über rechte Maus auf das Bild gehe, kann ich das Bild mit Adresse rauskopieren und komme damit ohne weiteres in das Verzeichnis.
1. Frage: Ich dachte dass das mit obiger htaccess verhindert wird? Oder bin ich da vollkommen auf dem Holzweg.
2. Frage: Gibt es Möglichkeiten, den Einblick in die Verzeichnisstruktur über solche Wege zu verhindern? (Vermutlich unsinnig, da der geneigte "un-" User dann eben über die Browser Entwicklertools sich die Verzeichnisstrukturen herausholt - aber fragen wollte ich das schon einfach mal)
3. Frage: Den Bereich: # Bilder verlinken verhindern in der htaccess Datei wird im Netz als "Hotlink" verhindern betitelt. An anderer Stelle spricht man von "direkt verlinken verhindern". Kann mir einer in einfachen Worten erklären, was damit gemeint ist?
Danke schon jetzt an die Experten hier. Hoffentlich ist die Beschreibung oben einigermaßen verständlich. Gerne konkretere Details, wenn ich zu kompliziert denke.
Grüße
olkostbe
Jep, gehe mal zu: Fehler abfangen
Das ist echt interessant (finde ich). Aber ich lasse mich gerne von den Experten verbessern-.
Just my 5 cents
Wouh, ein Lob von Dir Arne? Jetzt bin ich aber 10 cm größer geworden!
Ich habe den Code oben jetzt nicht ausprobiert, aber was ich darin nicht verstehe ist die Anwendung:
<? .......?>
Sollte das nicht:
<?php ......?>
sein?
Die konfiguration.php Datei könnte vielleicht auch interessant sein zum sehen.
Just my 5 cents
olkostbe
HTML-Seminar.de - mit Videos zum schnellen Lernen, wie man eine Website selbst erstellt.