Probleme mit Links bei Sessions

Claas M

Erfahrenes Mitglied
Hallo. Ich habe folgendes Problem:

Ich habe ein Adminscript, bei dem ich mich über eine Session einlogge. Ich habe das so programmiert, dass ich sofern ich eingeloggt bin, auf die admin.php witergeleitet werde. Funktioniert auch Prima nur nun das Problem: Wenn ich auf einen Link klicke (admin.php?action=profil) passiert nichts. Ich habe das GENAU SO in meiner index.php aber da funktioniert es. Unten in der Browserleiste steht zwar "admin.php?sessionid=564564567454" oder so aber ich habe keine aAhnung wie ich das Problem lösen könnte. Um zu sehen wie "mein" Script aufgebaut ist, könnt ihr euch in diesem Tutorial die Struktur ansehen http://www.webmasterpro.de/content_tip-5993.php

Naja kurz gesagt es soll so sein, wie auf tutorials.de. Wenn ich eingeloggt bin kann ich meine Daten ändern, news schreiben uswusf :)

Danke
 
Ich war zu faul mir das komplette Tutorial durchzulesen. Deswegen habe ich nach "admin.php" gesucht und nichts gefunden. Also solltest Du mal Ausschnitte aus Deiner admin.php zeigen, wo der Parameter "action" überprüft wird.

snuu
 
So hier ist alles was wichtig ist.

So hier meine admin.php :

<?php
include("schutz.php");
if($rang>0){$mitteilung="loged in blablubberblubber";}else{ $mitteilung= "loged out";};
echo "<html>
<head>
<title>nuss-clan Admin Area</title>
<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'>
<link href='style.css' rel='stylesheet' type='text/css'>
<script language='JavaScript1.2'>

function OpenBrWindow(theURL,winName,features, myWidth, myHeight, isCenter) { //v3.0
if(window.screen)if(isCenter)if(isCenter=='true'){
var myLeft = (screen.width-myWidth)/2;
var myTop = (screen.height-myHeight)/2;
features+=(features!='')?',':'';
features+=',left='+myLeft+',top='+myTop;
}
window.open(theURL,winName,features+((features!='')?',':'')+'width='+myWidth+',height='+myHeight);
}
</script>

</head>
<body bgcolor='CCCCCC'>
<table width='800' height='100%' border='0' align='center' cellpadding='0' cellspacing='0'>
<tr valign='top'>
<td height='542'>
<table width='100%' height=100%' border='0' cellpadding='0' cellspacing='0'>
<tr>
<td colspan='3' align='left' valign='top' height='100' background='images/banner.jpg'>
<a name='top'></a>
</td>
</tr>
<tr>
<td width='150' valign='top' background='images/links.jpg'>
<table width='150' height='30' cellpadding='0' cellspacing='0'>
<tr>
<td>
<A href='javascript:;' onClick=\"OpenBrWindow('profil.php','Test','','300','300','true')\">&nbsp;&nbsp;&nbsp;&nbsp;&raquo; Profil &auml;ndern</a><br>
<A href='profil.php' target='_blank'>&nbsp;&nbsp;&nbsp;&nbsp;&raquo; Profil &auml;ndern</a><br>
<A href='javascript:;' onClick=\"OpenBrWindow('userlist.php','Test','','600','500','true')\">&nbsp;&nbsp;&nbsp;&nbsp;&raquo; Userlist</a><br>
<br><br>
<a href='schutz.php?logout=1'>&nbsp;&nbsp;&nbsp;&nbsp;&raquo;Logout</a>
<img src='images/trennstrich.jpg'>
</td>
</tr>
</table>
</td>
<td width='450' valign='top' background='images/mitte.jpg'>
$mitteilung
</td>
<td width='200' valign='top' background='images/rechts.jpg'><br><br><br>
<img src='images/trennstrichrechts.jpg' height='4' width='200'>
</td>
</tr>
</table>
<table width='100%' height='30 'border='0' cellpadding='0' cellspacing='0'>
<tr>
<td height='30' background='images/footer.jpg'>
<center>
<a href='#top'>
<img src='images/nachoben.gif' height='9' width='9' border='0'>
</a>
</center>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>";
?>

Und hier meine profil.php:

<?php

include("schutz.php");
if($rang>0){
if(isset($edit)){

$passwort3 = md5($passwort1);

$usertest = mysql_query("SELECT * FROM $usertable WHERE id='$userid'");

if (mysql_num_rows($usertest) == 1)
{
$fehler = "$fehler -Dieser Benutzername wird bereits benutzt.<br>";
$fehler2 = "1";
};
if($passwort1!=="$passwort2"){
$fehler = "$fehler -Ihre beiden Passwort eingaben sind nicht identisch.<br>";
$fehler2 = "1";
};
if($passwort3=$row['pw']){
$passwort3 = $row['pw'];
};
if(!isset($fehler)){
$sql= "UPDATE $db_name.".$usertable."
SET
name = '$username',
email = '$emailadr',
pw = '$passwort3'
WHERE id = '$userid'";

mysql_query($sql) OR die(mysql_error());

$pw1 = "$passwort3";

session_register("pw1");

echo "<br>Ihr Passwort wurde geändert.";

exit;
};

};
echo "
<form action='profil.php' method='post'>
<table>
<tr>
<td>
Username:
</td>
<td>
<input type='text' name='username' value='$name1'>
</td>
</tr>

<tr>
<td>
E-Mail
</td>
<td>
<input type='test' name='emailadr' value='$email'>
</td>
</tr>


<tr>
<td>
Neues Passwort:
</td>
<td>
<input type='password' name='passwort1' value='$passwort1'>
</td>
</tr>
<tr>
<td>
Neues Passwort wiederholen:
</td>
<td>
<input type='password' name='passwort2' value='$passwort2'>
</td>
</tr>
<tr>
<td>
</td>
<td>
<input type='hidden' name='edit' value='$edit'>
<input type='submit' name='edit' value='Änderungen übernehmen'></td>
</form>
</td>
</tr>
</table>";

}
?>

Ich habe halt mehreres versucht und deswegen kann der code n büschn zerhäckselt sein... :)

Danke für eure Mühe
 
Ach komm schon, Du hast im Grunde überhaupt keine Ahnung, wie der Code,
den Du Dir kopiert hast funktioniert. Ich habe um den Ausschnitt
gebeten, in dem der Parameter "action" geprüft wird, da dort der Fehler zu
vermuten ist. Und was setzt Du mir vor? 170 Zeilen Code, wovon 80% HTML ist
und die Überprüfung des Parameters "action" überhaupt nicht statt findet!

Frag` den Autor des Tutorials um Rat! Von mir kannst Du nur Hilfe erwarten, wenn
ich merke, dass Du verstehen willst, was Du machst.

snuu
 
Zuletzt bearbeitet:
Ja na und?

Ja ich habe doch keine Ahnung! Hatte ich vergessen das zu erwähnen?

Wieso sollte ich Dir NUR die php.?action Geschichte geben, wenn sie OHNE der Session einwandfrei läuft? Es wird immer die Sessionid mit angehängt. Soll ich per php session_id() auslesen un in $id sperichern und dann bei den Links admin.php?$id?achtion=blabla schreiben oder wie? Ich habe doch keine Ahnung...

Naja ein wenig freundlciher hättest du ja sein können. :(

MfG claas
 
Leider wird aber in deinem kompletten Code $action gar nicht abgefragt...

PS: Was hältst du von der $_SESSION["name"], $_GET["name"]... Schreibweise? Könnte vllt auch etwas weniger fehleranfällig sein. :rolleyes:
 
Wieso sollte ich Dir NUR die php.?action Geschichte geben, wenn sie OHNE der Session einwandfrei läuft?
Weil Du geschrieben hast, dass beim Klicken auf den Link admin.php?action=profil nichts passiert. also muss man überprüfen, wo der Parameter action verarbeitet wird, um zu schauen, wo der Fehler liegt.

Aber vielleicht hast Du Dein Problem auch nicht ausreichend beschrieben und wir reden aneinander vorbei.

snuu
 
ok

@Snuu: Du kannst die Abfrage nicht finden, weil ich sie im Laufe des Testens gelöscht habe( Lief nicht also raus damit)

@Low-Group: so etwas in der Art hatte ich mir auch shon überlegt aber ich weiß nicht, wie ich eine sessionid auslese.

@ Jocal: Ich verstehe nicht wie du das meinst. Soweit ich das sehe, deklarierst du die Variablen global, oder? Wie müsste ich dann denn den Text ändern?

Danke
 
@Snuu: Du kannst die Abfrage nicht finden, weil ich sie im Laufe des Testens gelöscht habe( Lief nicht also raus damit)
Ich schmeiß mich weg. Und da wunderst Du Dich, warum die Seite nicht geladen wird.

Wegen der Session-ID: Normalerweise wird die Session-ID über ein Cookie übertragen. Wenn Cookies deaktiviert sind, wird versucht die Session-ID an den URL anzuhängen (Einstellungsfrage). Im Klartext bedeutet das, dass man sich eigentlich nicht um die Session-ID kümmern muss.

Siehe dazu auch:
--> http://de.php.net/manual/de/ref.session.php

snuu
 
Zurück