Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
function mysql_prepare_string($Param, $resource=null)
{
// String holen
$string = $Param;
// Je nach aktivierten Modulen Quotes und Slashes entfernen
if(get_magic_quotes_gpc())
{
if(ini_get('magic_quotes_sybase'))
{
$string = str_replace("''", "'", $string);
}
else
{
$string = stripslashes($string);
}
}
// Wenn keine Resource angegeben wurde
if(is_null($resource))
{
// Mysql-Escape Funktion ohne Resource ausführen
return mysql_real_escape_string($string);
}
else
{
// Mysql-Escape Funktion mit Resource ausführen
return mysql_real_escape_string($string, $resource);
}
}
<?php
error_reporting(E_ALL);
require("inc/wmaconfig.inc.php");
require("inc/wmafunc1.php");
// Daten speichern
if($_SERVER['REQUEST_METHOD'] == 'POST') // Beim Senden vom Formular
{
$error = ''; // Fehlervariable
// Variablen holen und Vorbereiten
// (trim löscht unnötige Leerzeichen)
$vorname = mysql_prepare_string(trim($_POST['vorname']);
$nachname = mysql_prepare_string(trim($_POST['nachname']);
$strasse = mysql_prepare_string(trim($_POST['strasse']);
$plz = mysql_prepare_string(trim($_POST['plz']);
$telnr = mysql_prepare_string(trim($_POST['telnr']);
$homepage = mysql_prepare_string(trim($_POST['homepage']);
$email = mysql_prepare_string(trim($_POST['email']);
// Daten checken
// Wenn die Eingabe Leer ist
// Dann wird die Fehlermeldung angehängt.
// Zum Schluss wissen wir welche Daten falsch waren.
$error .= (empty($vorname)) ? 'Kein Vorname angegeben!<br>' : '';
$error .= (empty($nachname)) ? 'Kein Nachname angegeben!<br>' : '';
$error .= (empty($strasse)) ? 'Keine Strasse angegeben!<br>' : '';
$error .= (empty($plz)) ? 'Keine Plz angegeben!<br>' : '';
$error .= (empty($telnr)) ? 'Keine Telnr. angegeben!<br>' : '';
$error .= (empty($homepage)) ? 'Keine Hp angegeben!<br>' : '';
$error .= (empty($email)) ? 'Keine EMail angegeben!<br>' : '';
// Wenn $error leer ist
// war kein Fehler also können wir speichern
if(empty($error))
{
// Query generieren
$sql = sprintf("UPDATE `%s` SET vorname='%s', nachname='%s', strasse='%s', hsnr='%s', plz='%s', ort='%s', telnr='%s', homepage='%s', email='%s' WHERE id = '%u'",
$tab, $vorname, $nachname, $strasse, $plz, $telnr, $homepage, $email, $_POST['id']);
// Ausführen und evt. Fehler anhängen
$res = @mysql_query($sql) or $error .= "Fehler: " . mysql_error();
if ($res) // Bei Erfolg
{
// Erfolgsmeldung setzen oder umleiten
$error .= "Erfolgreich";
// header("Location: url");
}
}
}
// Daten laden
$sql = sprintf("SELECT * FROM `$tab` WHERE `id` = '%u'", $_GET['id']);
$res = @mysql_query( $sql ) or die( "Fehler: " . mysql_error() );
$data = mysql_fetch_assoc( $res );
?>
Also. Wenn das ganze für Übungszwecke ist will ich dir mal bisschen genauer alles Erklären. Alle Codes sind kommentiert.
Für die Aufbereitung von sicheren Variablen kann ich dir diese Funktion empfehlen.
Sie sorgt dafür dass keine Ungültigen Inhalte geschrieben werden die Den SQL Code manipulieren.
Wenn sonst jemand in der URL "id='; DROP TABLE `users`; #"aufruft wird der SQL Query zu:
SELECT * FROM `$tab` WHERE `id`=''; DROP TABLE `users`; #'
Kann eine kritische Sicherheitslücke sein. Diese Funktion sorgt
dafür dass solche Eingaben unterbunden werden.
PHP:function mysql_prepare_string($Param, $resource=null) { // String holen $string = $Param; // Je nach aktivierten Modulen Quotes und Slashes entfernen if(get_magic_quotes_gpc()) { if(ini_get('magic_quotes_sybase')) { $string = str_replace("''", "'", $string); } else { $string = stripslashes($string); } } // Wenn keine Resource angegeben wurde if(is_null($resource)) { // Mysql-Escape Funktion ohne Resource ausführen return mysql_real_escape_string($string); } else { // Mysql-Escape Funktion mit Resource ausführen return mysql_real_escape_string($string, $resource); } }
Der PHP-Teil für das Formular könntest du so machen. Ich hab mal ne vollständige Version gemacht
damit du draus lernen kannst.
PHP:<?php error_reporting(E_ALL); require("inc/wmaconfig.inc.php"); require("inc/wmafunc1.php"); // Daten speichern if($_SERVER['REQUEST_METHOD'] == 'POST') // Beim Senden vom Formular { $error = ''; // Fehlervariable // Variablen holen und Vorbereiten // (trim löscht unnötige Leerzeichen) $vorname = mysql_prepare_string(trim($_POST['vorname']); $nachname = mysql_prepare_string(trim($_POST['nachname']); $strasse = mysql_prepare_string(trim($_POST['strasse']); $plz = mysql_prepare_string(trim($_POST['plz']); $telnr = mysql_prepare_string(trim($_POST['telnr']); $homepage = mysql_prepare_string(trim($_POST['homepage']); $email = mysql_prepare_string(trim($_POST['email']); // Daten checken // Wenn die Eingabe Leer ist // Dann wird die Fehlermeldung angehängt. // Zum Schluss wissen wir welche Daten falsch waren. $error .= (empty($vorname)) ? 'Kein Vorname angegeben!<br>' : ''; $error .= (empty($nachname)) ? 'Kein Nachname angegeben!<br>' : ''; $error .= (empty($strasse)) ? 'Keine Strasse angegeben!<br>' : ''; $error .= (empty($plz)) ? 'Keine Plz angegeben!<br>' : ''; $error .= (empty($telnr)) ? 'Keine Telnr. angegeben!<br>' : ''; $error .= (empty($homepage)) ? 'Keine Hp angegeben!<br>' : ''; $error .= (empty($email)) ? 'Keine EMail angegeben!<br>' : ''; // Wenn $error leer ist // war kein Fehler also können wir speichern if(empty($error)) { // Query generieren $sql = sprintf("UPDATE `%s` SET vorname='%s', nachname='%s', strasse='%s', hsnr='%s', plz='%s', ort='%s', telnr='%s', homepage='%s', email='%s' WHERE id = '%u'", $tab, $vorname, $nachname, $strasse, $plz, $telnr, $homepage, $email, $_POST['id']); // Ausführen und evt. Fehler anhängen $res = @mysql_query($sql) or $error .= "Fehler: " . mysql_error(); if ($res) // Bei Erfolg { // Erfolgsmeldung setzen oder umleiten $error .= "Erfolgreich"; // header("Location: url"); } } } // Daten laden $sql = sprintf("SELECT * FROM `$tab` WHERE `id` = '%u'", $_GET['id']); $res = @mysql_query( $sql ) or die( "Fehler: " . mysql_error() ); $data = mysql_fetch_assoc( $res ); ?>
Im Formular musst du dann noch diese Zeile hinzufügen:
<input type="hidden" name="id" value="<?= $_GET['id'] ?>">
Dann wird beim Absenden in $_POST die aktuelle ID gespeichert.
Die $error Variable kannst du dann Weiter unten über dem Formular ausgeben um eine Schöne
Fehlermeldung anzuzeigen.
[EDIT]
Hab noch was wichtiges Vergessen. Die Form-Zeile so abändern:
<form action="<?= $_SERVER['PHP_SELF'] ?>" method="post" name="edit">
Somit wird beim Absenden das eigene Script aufrufen und die Abfrage ob die Daten abgesendet wurden siehst du oben im PHP-Skript.
Ich kann dir nur auch noch mal empfehlen im PHP-Handbuch nachzulesen und nochmal zu googeln.
Gruß Daniel
Die Videos gibts auf:
http://www.video2brain.com
Immer wieder gern. Jeder hat mal klein angefangen. Ich bin auch immer über jede Hilfe dankbar also soll man es ja nicht anderst machen
Die Videos gibts auf:
http://www.video2brain.com
$vorname = mysql_prepare_string(trim($_POST['vorname']);
$vorname = mysql_prepare_string(trim($_POST['vorname']));
// Variablen holen und Vorbereiten
// (trim löscht unnötige Leerzeichen)
$vorname = mysql_prepare_string(trim($_POST['vorname']));
$nachname = mysql_prepare_string(trim($_POST['nachname']));
$strasse = mysql_prepare_string(trim($_POST['strasse']));
$hsnr = mysql_prepare_string(trim($_POST['hsnr']));
$plz = mysql_prepare_string(trim($_POST['plz']));
$ort = mysql_prepare_string(trim($_POST['ort']));
$telnr = mysql_prepare_string(trim($_POST['telnr']));
$homepage = mysql_prepare_string(trim($_POST['homepage']));
$email = mysql_prepare_string(trim($_POST['email']));
// Daten laden
$sql = sprintf("SELECT * FROM `$tab` WHERE `id` = '%u'", $_GET['id']);
<?php
error_reporting(E_ALL ^ E_NOTICE);
require("inc/wmaconfig.inc.php");
require("inc/wmafunc1.php");
// Daten speichern
if($_SERVER['REQUEST_METHOD'] == 'POST') // Beim Senden vom Formular
{
$error = ''; // Fehlervariable
// Variablen holen und Vorbereiten
$id= $_POST['id']; // ID festlegen bei POST
$vorname = mysql_prepare_string(trim($_POST['vorname']));
$nachname = mysql_prepare_string(trim($_POST['nachname']));
$strasse = mysql_prepare_string(trim($_POST['strasse']));
$plz = mysql_prepare_string(trim($_POST['plz']));
$telnr = mysql_prepare_string(trim($_POST['telnr']));
$homepage = mysql_prepare_string(trim($_POST['homepage']));
$email = mysql_prepare_string(trim($_POST['email']));
// Daten checken
// Wenn die Eingabe Leer ist (trim löscht unnötige Leerzeichen)
// Dann wird die Fehlermeldung angehängt.
// Zum Schluss wissen wir welche Daten falsch waren.
$error .= (empty($vorname)) ? 'Kein Vorname angegeben!<br>' : '';
$error .= (empty($nachname)) ? 'Kein Nachname angegeben!<br>' : '';
$error .= (empty($strasse)) ? 'Keine Strasse angegeben!<br>' : '';
$error .= (empty($plz)) ? 'Keine Plz angegeben!<br>' : '';
$error .= (empty($telnr)) ? 'Keine Telnr. angegeben!<br>' : '';
$error .= (empty($homepage)) ? 'Keine Hp angegeben!<br>' : '';
$error .= (empty($email)) ? 'Keine EMail angegeben!<br>' : '';
// Wenn $error leer ist
// war kein Fehler also können wir speichern
if(empty($error))
{
//Updaten
$sql = sprintf("UPDATE `%s` SET vorname='%s', nachname='%s', strasse='%s', hsnr='%s', plz='%s', ort='%s', telnr='%s', homepage='%s', email='%s' WHERE id = '%u'",
$tab, $vorname, $nachname, $strasse, $plz, $telnr, $homepage, $email, $id);
// Fehler anhängen
$res = @mysql_query($sql) or $error .= "Fehler: " . mysql_error();
if ($res)
{
// Erfolgsmeldung setzen oder umleiten
$error .= "Erfolgreich";
// header("Location: url");
}
}
}
else // Wenn nicht das Formular abgeschickt wurde
{
// Probieren die ID von der URL zu holen
$id = $_GET['id'];
}
// Daten laden
$sql = sprintf("SELECT * FROM `$tab` WHERE `id` = '%u'", $id);
$res = @mysql_query( $sql ) or $error .= "Fehler: " . mysql_error(); // Fehler bei Falscher ID
$data = mysql_fetch_assoc( $res );
?>