patrick1155
Mitglied
ja es funktioniert eh alles , nur HEAD nicht und will nicht wegen dem jetzt alles umschreiben müssen ...
katalog_bearbeiten.phpOh je mir graults bei dem was ich hier bisher gesehen habe..
PHP:<?php ob_start(); session_start();
Das sind deine ersten Anweisungen in der Datei
Okay danke, dann hab ich das am Anfang eh richtig gehabt ...
PHP:if(!session_is_registered('user') || $_SESSION['user'] == "") { header("location:index.php"); die; }
Mal ne Frage, du rufst das nicht aus der index.php auf oder?
nein , aber damit kommt er zurück auf die index.php seite (Ist beim Login)
PHP:$id = $_POST['id']; $begr = $_POST['begr']; $punkte = $_POST['punkte']; $posne = $_POST['posne']; $aendern = "UPDATE katalog Set `begr` = '$begr', `punkte` = '$punkte', `posne` = '$posne' WHERE `id` = $userid"; $update = mysql_query($aendern);
Halte ich für stark bedenklich. Es wurde werder eine Validierung vorgenommen, noch irgendetwas escaped. Im schlimmsten Fall löschen sie dir damit die Datenbank. Lies dir bitte einiges zum Thema SQL-Injection durch.
Am besten du postest uns mal den Quelltext der aufgerufenen Seite. Darunter den des ersten Include usw. Maskier dabei die Passwörter. Und bitte dazu schreiben, um welchen Script es sich handelt. Beispiel:
PHP:<?php // File: index.php ... ?>
PHP:
<?php
session_start();
ob_start ();
if(!session_is_registered('user') || $_SESSION['user'] == "") {
header("location:index.php");
die;
ob_end_flush();
}
require("connect.inc.php");
?>
<?
$userid = false;
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
if(isset($_POST['id']) && ctype_digit($_POST['id']))
{
$userid = $_POST['id'];
////EINFÜGEN !!
$id = $_POST['id'];
$begr = $_POST['begr'];
$punkte = $_POST['punkte'];
$posne = $_POST['posne'];
$aendern = "UPDATE katalog
Set
`begr` = '$begr',
`punkte` = '$punkte',
`posne` = '$posne'
WHERE `id` = $userid";
$update = mysql_query($aendern);
header('Location: sichere_seite.php?page=katalog_erfolg');
}else{
// Hier alle Felder validieren. Z.B. prüfen, ob eines leer ist bzw. ob ungültige Werte darin enthalten sind
// Anschließend Daten in die Datenbank eintragen. BenutzerID steht in $userid
if($update)
{
}
else
{
echo "Fehler!";
}
}
// 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)
{
//VORSICHT
$sql = "SELECT id, posne, punkte, begr FROM `katalog` WHERE `id` = ".$userid;
$result = mysql_query($sql);
if(mysql_num_rows($result) == 1)
{
$userdata = mysql_fetch_object($result);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Neuenn</title>
<link rel="stylesheet" type="text/css" href="style.css"></head>
<body>
<form action="sichere_seite.php?page=katalog_bearbeiten" method="post">
<table width="399" bgcolor="#000000" border="0" cellpadding="5" cellspacing="1" align="center">
<tr>
<td bgcolor="#e7e7e7" align="center" colspan="2"><strong>Katalog bearbeiten
<input name="id" type="hidden" class="input" value="<?php echo "$userid" ?>" size="20">
</strong></td>
</tr>
<tr>
<td width="158" bgcolor="#e7e7e7">Aufgabe</td>
<td width="218" bgcolor="#ffffff"><input type="text" bgvolor="#e7e7e7" name="begr" value="<?php $benabf = "SELECT begr FROM `katalog` WHERE `id` = ".$userid;
$ergbenabf = mysql_query($benabf);
while($row = mysql_fetch_object($ergbenabf))
{
echo $row->begr;
}
?>" size="20" class="input">
</label></td>
</tr>
<tr>
<td bgcolor="#e7e7e7">Punkte</td>
<td bgcolor="#ffffff"><label>
<input type="text" bgvolor="#e7e7e7" name="punkte" value="<?php $benabf = "SELECT punkte FROM `katalog` WHERE `id` = ".$userid;
$ergbenabf = mysql_query($benabf);
while($row = mysql_fetch_object($ergbenabf))
{
echo $row->punkte;
}
?>" size="20" class="input">
</label></td>
</tr>
<tr>
<td bgcolor="#e7e7e7">+,-</td>
<td bgcolor="#ffffff"><label></label>
<select name="posne">
<option value="<?php $benabf = "SELECT posne FROM `katalog` WHERE `id` = ".$userid;
$ergbenabf = mysql_query($benabf);
while($row = mysql_fetch_object($ergbenabf))
{
echo $row->posne;
}
?>" selected><?php $benabf = "SELECT posne FROM `katalog` WHERE `id` = ".$userid;
$ergbenabf = mysql_query($benabf);
while($row = mysql_fetch_object($ergbenabf))
{
echo $row->posne;
}
?></option>
<option value="0">Auswählen</option>
<option value="+">+</option>
<option value="-">-</option>
</select></td>
</tr>
<tr>
<td bgcolor="#e7e7e7" align="center" colspan="2"><label></label></td>
</tr>
<tr>
<td bgcolor="#e7e7e7" align="center" colspan="2">
<input type="submit" name="submit" value="Datei bearbeiten" class="button"> </td>
</tr>
<tr>
<td bgcolor="#e7e7e7" align="center" colspan="2">
<a href="sichere_seite.php">Zurück zur Admin-Seite</a> </td>
</tr>
</table>
</form>
</body>
</html>
<?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()
?>