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.
Das heisst das $userid nicht abgefüllt ist.
Woher sollte dieser Inhalt kommen? ev. $userid = $_POST['userid']
Und welches FOrmat hat die id in der Datenbank?
Dann muss es heissenID ist int mit autowert und prim. key
WHERE id = $userid
<?php
session_start();
if(!session_is_registered('user') || $_SESSION['user'] == "") {
header("location:index.php");
die;
}
require("connect.inc.php");
$userid = false;
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
if(isset($_POST['id']) && ctype_digit($_POST['id']))
{
$userid = $_POST['id'];
}else{
/////eintragung in die MYSQL
$dname = $_POST['dname'];
$link = $_POST['link'];
$format = $_POST['format'];
$aendern = "UPDATE Download
Set
`dname` = '$dname',
`link` = '$link',
`format` = '$format',
WHERE `id` = $userid";
$update = mysql_query($aendern);
echo "$aendern";
///fertig der eintragung
if(KEINE_FEHLER)
{
// Weiterleitung auf die Benutzerliste, wenn keine Fehler aufgetaucht sind, ansonsten nochmal das Formular anzeigen.
echo "$aendern";
//header('Location: sichere_seite.php?page=down_erfolg');
//exit;
}
}
// den else-Teil können wir uns sparen. Wenn eine ungültige ID übergeben wurde, wird $userid nicht verändert. Er springt also automatisch in den unteren else-Zweig "Ungültige Anfrage"
}
elseif(isset($_GET['id']) && ctype_digit($_GET['id']))
{
$userid = $_GET['id'];
}
if($userid !== false)
{
$sql = "SELECT dname,link,format FROM `Download` WHERE `id` = ".$userid;
$result = mysql_query($sql);
if(mysql_num_rows($result) == 1)
{
$userdata = mysql_fetch_object($result);
?>
Formular
<?php
// Formular aufbauen und Felder mit den Daten füllen
// als action-Pfad wieder den Dateinamen wählen (z.B. site.php?page=benutzer_bearbeiten)
// ein (hidden-)Feld mit der BenutzerID erstellen das id heißt
// falls es beim abschicken (POST-TEIL) Fehler gab, kannst du eventuell die Daten aus dem POST nehmen, anstatt die Daten aus der Datenbank. Das ist dir überlassen ;)
}
else
{
// Fehlermeldung: Benutzer nicht gefunden!
}
}
else
{
// Fehlermeldung: Ungültige Anfrage
}
mysql_error()
?>
<?php
session_start();
if(!session_is_registered('user') || $_SESSION['user'] == "") {
header("location:index.php");
die;
}
require("connect.inc.php");
$userid = false;
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
if(isset($_POST['id']) && ctype_digit($_POST['id']))
{
$userid = $_POST['id'];
/////eintragung in die MYSQL
$dname = $_POST['dname'];
$link = $_POST['link'];
$format = $_POST['format'];
$aendern = "UPDATE Download
SET
`dname` = '".$dname."',
`link` = '".$link."',
`format` = '".$format."',
WHERE `id` = ".$userid;
$update = mysql_query($aendern);
///fertig der eintragung
// Weiterleitung auf die Benutzerliste, wenn keine Fehler aufgetaucht sind, ansonsten nochmal das Formular anzeigen.
echo "$aendern";
if($update)
{
//header('Location: sichere_seite.php?page=down_erfolg');
//exit;
}
else
{
// Query fehlgeschlagen!!
}
}
}
elseif(isset($_GET['id']) && ctype_digit($_GET['id']))
{
$userid = $_GET['id'];
}
if($userid !== false)
{
$sql = "SELECT dname,link,format FROM `Download` WHERE `id` = ".$userid;
$result = mysql_query($sql);
if(mysql_num_rows($result) == 1)
{
$userdata = mysql_fetch_object($result);
?>
Formular
<?php
// Formular aufbauen und Felder mit den Daten füllen
// als action-Pfad wieder den Dateinamen wählen (z.B. site.php?page=benutzer_bearbeiten)
// ein (hidden-)Feld mit der BenutzerID erstellen das id heißt
// falls es beim abschicken (POST-TEIL) Fehler gab, kannst du eventuell die Daten aus dem POST nehmen, anstatt die Daten aus der Datenbank. Das ist dir überlassen ;)
}
else
{
// Fehlermeldung: Benutzer nicht gefunden!
}
}
else
{
// Fehlermeldung: Ungültige Anfrage
}
mysql_error()
?>
In Zeile 15 findest du "$userid = $_POST['id']". Ich hate auch gschrieben, dass direkt da danach, also noch in dem IF, dein Code zum Eintragen rein muss. Das "KEINE_FEHLER" habe ich nun auch mal angepasst
mach ein echo $aendern; und prüfe die Ausgabe mit phpMyAdmin. Studiere die Fehlermeldungen, pröble da herum und baus deine Erkenntnisse in dein Script ein.
Auf dei schnelle sehe ich höchstens '$userid' wobei ids normalerweise Zahlen sind, dann muss man es ohne '' schreiben
Es gibt immer ausnahmen. Anhand seiner bisherigen Kentnissen denke ich, dass es ien Integer ist. Aber solange er meine Frage nach dem Datentyxp nicht beantworten will, kann ich nur raten. Oder wiesst du mehr?Wer sagt, das $userid ein Integer ist? Könnte auch ein SQL-Injection sein, welches bei nicht-Escapten Vars gerne für ein kleines Spielchen zwischendurch genutzt wird