Adminmenu Problem!

vodka

Mitglied
Hallo ich hab ein Adminmenu gebaut für News,Members etc... Scripte!Mit einer Login funktion! News eintragen und löschen geht ohne Probleme! Aber immer wen ich z.b. eines der letzten News editieren will muss ich mich neu einloggen!
Das ist auch bei den Member Script so und bei den anderen auch!

Ich glaube das hängt mit dem $id zusammen, beim Editieren habe ich es so gemacht, eine php datei namens aendern.php und dort wird aufgelistet welche News man Editieren möchte! Und der link endet z.b. so editieren.php?id=1 und im php code so editieren.php?id=$id!

Ich hoffe ihr könnt mir weiterhelfen!
 
Ja ohne Code gestaltet sich jetzt der Lösungsweg etwas problematisch.
Poste doch bitte mal ein paar relevante Schnipsel.

Könnte es vielleicht daran liegen, dass du sowohl die ID, die in der Session übergeben wird (nehme doch an, dass du mit Sessions arbeitest und darin ne ID übernimmst?!), als auch die IDs der News-Einträge oder einzelnen Members immer gleich, d.h. über $id ansprichst?
Dann würden die GET-Variablen der URL nämlich deine Session-Variablen quasi überschreiben.

Besser wäre es, wenn du zunächst die Session-Variablen z.B. mit $_SESSION['id'] ansprichst und auch die Variable mit der ID der entsprechenden Datensätze differenziert benennen würdest.
Bsp.: ID für Member: $member_id; ID für News: $news_id usw.
 
Hmm geht immer noch nicht muss immer 2 mal einloggen, dan geht es aber wen nach einer Zeit wieder neu einlogge und ein News eintrag editieren will kommt: "Sie müssen sich einloggen"!

Und ich habe schon etwa 3 Login Scripts getestet immer beim editieren muss ich mich neu einloggen!
 
Zuletzt bearbeitet:
Benutzt du zufällig den IE 6 und übergibst die Session via Cookie?
Dann stell einfach mal unter "Extras" -> "Internetoptionen" -> "Datenschutz" den Regler auf "niedrig".
Ohne COdeschnippsel weiß ich sonst immer noch nicht, woran es liegen könnte....
 
Das mit den Cookies geht auch ned :(!

Hier mal code von der Editieren.php datei:

PHP:
<?php
include("../header.inc.php");
?>

<?php
if (isset ($send) )

{
include "dbnews.php";


$db = mysql_connect($db_host, $db_user, $db_pass);
mysql_select_db ($db_name) or die ("Cannot connect to database");

$aendern = "UPDATE $tabelle SET name='$name',titel='$titel',email='$email',link='$link',linkname='$linkname',news='$news' WHERE news_id = '$news_id'";
$update = mysql_query($aendern);
echo "Erfolgreich geändert!";
}
    else
{
?>
            <?php

include "dbnews.php";

$db = mysql_connect($db_host, $db_user, $db_pass);
mysql_select_db ($db_name) or die ("Cannot connect to database");

$query = "SELECT * FROM $tabelle WHERE news_id='$news_id'";
$result = mysql_query($query);
while($r=mysql_fetch_array($result))
{
$name=$r["name"];
$titel=$r["titel"];
$news=$r["news"];
$email=$r["email"];
$link=$r["link"];
$datum=$r["datum"];
$news_id=$r["news_id"];
$linkname=$r["linkname"];


echo "...";
    } 
            
  

?>
            <?php
}
?>
   
<?php
include("../footer.inc.php");
?>

Hier noch von der aendern.php datei:

PHP:
<?php
include("../header.inc.php");
?>



 <?php
include ("dbnews.php");


$db = mysql_connect($db_host, $db_user, $db_pass);
mysql_select_db ($db_name) or die ("Cannot connect to database");

$query = "SELECT *, DATE_FORMAT(datum,'%d.%m.%Y') AS datum_de FROM $tabelle ORDER BY news_id DESC";
$result = mysql_query($query);
while($r=mysql_fetch_array($result))
{
$linkname=$r["linkname"];
$name=$r["name"];
$titel=$r["titel"];
$news=$r["news"];
$email=$r["email"];
$link=$r["link"];
$datum=$r["datum_de"];
$news_id=$r["news_id"];

  echo "...";
}

?>
<?php
include("../footer.inc.php");
?>

Und hier der Link zum Adminlogin kannst mal selbst testen mit dem Editieren:


adminlogin

Username: test
Password: tester
 
Zuletzt bearbeitet:
ähm, bin ich blind oder steht in dem ganzen Code nichts vom einloggen, oder einer überpfüfung ob man eingeloggt ist?

Wo der "Sie müssen sich einloggen" Fehler ausgegeben wird steht auch nicht drin...

PS: Forumregel, echo´s weglassen :)
 
Zuletzt bearbeitet:
Ja ich geb dir den grund warum ich den Login Code nicht angeben habe weil ich etwa 3 Login Scripte ausprobiert habe und es geschiet immer das gleiche also das z.b. "Sie müssen sich einloggen" oder "Sie sind nicht eingeloggt " kommt!

Villeicht bringts was:

Login Code
-- Main.php --
PHP:
<?php
session_start();
session_register("username");
?>

<?
include ("config.php");

$password=crypt($password,$schluessel);
$password .= "\n";
$log=0;

$userdatei = fopen ("user.txt","r");
while (!feof($userdatei)) 
{
$zeile = fgets($userdatei,50);
$userdata = explode("|", $zeile);
if ($userdata[0]==$username && $userdata[1]==$password)
{
$log=1;
}
}
fclose($userdatei);


if ($log==1)
{
?>


Fügen Sie hier den Inhalt der Inhaltspage ein!
<? echo "<center><a href=\"$logoutseite\">Logout</a></center>"; ?>


<?
}
else
{
echo "Benutzer existiert nicht oder das Passwort ist falsch!<br><a href=\"$loginseite\">zurück</a>";
}
?>

-- Config.php --
PHP:
<?

$schluessel = "aw";

$loginseite = "http://www.dalton-clan.com/darkskill/index.php?action=login";
$logoutseite = "http://www.dalton-clan.com/darkskill/index.php?action=login"; //Diese Seite sollte folgenden Code enthalten:

?>

Und noch etwas im header.inc.php steht noch der Code zum schützen der Dateien:
PHP:
<?php
session_start();
?>

<?
if (!session_is_registered('username'))
{
die ("Sie müssen sich einloggen!");
}
?>
 
Zuletzt bearbeitet:
mhhh also ich würde den login so machen, einfach 2 Zeilen mehr...

if ($userdata[0]==$username && $userdata[1]==$password)
{
$_SESSION['login'] = true;
$log=1;
}
else {
$_SESSION['login'] = false;
}


und beim wieder abfragen

<?php
session_start();
?>

<?
if ($_SESSION['login'] != true)
{
die ("Sie müssen sich einloggen!");
}
?>

so geht es auf jeden Fall....
aber vielleicht kann ein anderer deinen code debuggen...
 
Zurück