| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |
|

19-08-2010, 07:24
|
|
Knuddeliger
Registrierter Benutzer
|
|
Registriert seit: Aug 2010
Beiträge: 16
|
|
Eingeloggt, und trotzdem kein Zugriff auf die Inhalte?
Hey,
es geht um das Shop Script, was ich auf meinem Webspace liegen habe, wenn man sich einloggt.
www.domtainment.de/knuddels/
Knusmilco - der knuddelige Smileyshop
User: test | PW: test
Ist man kurz eingeloggt, dass ganze Menü wird sichtbar, es verschwindet und es wird sagt man sei bereits eingeloggt.
Hat jemand eine Ahnung wodrann dies liegen kann?
Geändert von AmicaNoctis (19-08-2010 um 07:55 Uhr)
Grund: URLs entlinkt
|

19-08-2010, 07:56
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Ort: Dresden
Beiträge: 5.463
|
|
Hallo,
bitte erstmal beim Hersteller dieses Shop-Scripts nachfragen.
Gruß,
Amica
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

19-08-2010, 17:22
|
|
Knuddeliger
Registrierter Benutzer
|
|
Registriert seit: Aug 2010
Beiträge: 16
|
|
Der gibt kein Support!
Wenn ihr die Dateien braucht, sagt mir Bescheid.
Bitte helft mir!
|

19-08-2010, 17:24
|
|
streuner
Registrierter Benutzer
|
|
Registriert seit: Aug 2009
Ort: Lüneburg
Beiträge: 409
|
|
Da es eine fertig Software zu sein scheint, wird Dir vermutlich keienr für lau bei deinem Problem helfen, da der Aufwand sicherlich nicht unerheblich ist. Möglichkeiten für dieses Problem gibt es viele.
streuner
__________________
Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert,
der letzte Netzknoten verkommerzialisert ist, werdet Ihr merken, dass Geld nicht von alleine programmiert.
"Diese Software verdient die 3 großen GGG: --- Gesehen --- Gelacht --- Gelöscht ---"
|

19-08-2010, 18:30
|
|
Knuddeliger
Registrierter Benutzer
|
|
Registriert seit: Aug 2010
Beiträge: 16
|
|
Kann sich das den niemand anssehen?
|

19-08-2010, 19:37
|
|
Peacie
Registrierter Benutzer
|
|
Registriert seit: Nov 2003
Beiträge: 341
|
|
setzt das ding einen cookie ?
ich hatte mal ähnliche probleme mit ner fertigen software, weil ich die cookiedomäne nicht korrekt gesetzt hab.
ansonsten könntest du uns ja mal mitteilen, was du bisher selber versucht hast
|

19-08-2010, 20:08
|
|
Knuddeliger
Registrierter Benutzer
|
|
Registriert seit: Aug 2010
Beiträge: 16
|
|
Es setzt Cookies mom hier mal die Dateien:
login.php
PHP-Code:
<?php if(empty($_SESSION["user"])) { ?> <form action="index.php?id=5" method="post"><center> <table id="login"> <tr><td>Username<br> <input type="text" name="username"></td></tr> <tr><td></td></tr> <tr><td>Password<br> <input type="password" name="password"></td></tr> <tr><td></td></tr> <tr><td><input type="submit" value="login"></td></tr> </table></center> </form> <?php } else echo'<font color="red">Sie sind bereits eingeloggt.</font>'; ?>
Die Navigation wo gecheckt wird ob man eingeloggt ist:
PHP-Code:
<?php if($ajax == 1) { echo'<table><tr><td><a href="#" onclick="get(\'ajax.php?id=1\');"><img src="./designe/'.$designe.'/img/ico/home.png"/> <span align="middle">Home</span></a></td>'; if(!empty($_SESSION["user"])) { $query = mysql_query('SELECT * FROM users WHERE username="'.$_SESSION["user"].'"'); if(mysql_num_rows($query) == 1) $user = mysql_fetch_array($query); echo'<td><a href="#" onclick="get(\'ajax.php?id=2\');"><img src="./designe/'.$designe.'/img/ico/prod.png"/> <span align="middle">Produkte</span></a></td> <td><a href="#" onclick="get(\'ajax.php?id=3\');"><img src="./designe/'.$designe.'/img/ico/einz.png"/> <span align="middle">Einzahlen</span></a></td> <td><a href="#" onclick="get(\'ajax.php?id=4\');"><img src="./designe/'.$designe.'/img/ico/gekauft.png"/> <span align="middle">Historie</span></a></td> <td><a href="#" onclick="get(\'ajax.php?id=8\');"><img src="./designe/'.$designe.'/img/ico/member.png"/> <span align="middle">Member</span></a></td> <td><a href="#" onclick="get(\'ajax.php?id=7\');"><img src="./designe/'.$designe.'/img/ico/faq.png"/> <span align="middle">FAQ</span></a></td>'; if($user["access"]==1) echo'<td><a href="admin/"><img src="./designe/'.$designe.'/img/ico/admin.png"/> <span align="middle">Admin</span></a></td>'; echo'<td><a href="index.php?id=9"><img src="./designe/'.$designe.'/img/ico/logout.png"/> <span align="middle">Logout</span></a></td>'; } else echo'<td><a href="#" onclick="get(\'ajax.php?id=5\');"><img src="./designe/'.$designe.'/img/ico/login.png"/> <span align="middle">Login</span></a></td> <td><a href="#" onclick="get(\'ajax.php?id=6\');"><img src="./designe/'.$designe.'/img/ico/reg.png"/> <span align="middle">Registrieren</span></a></td>'; echo'</tr></table>'; } else { echo'<table><tr><td><a href="index.php?id=1"><img src="./designe/'.$designe.'/img/ico/home.png"/> <span align="middle">Home</span></a></td>'; if(!empty($_SESSION["user"])) { $query = mysql_query('SELECT * FROM users WHERE username="'.$_SESSION["user"].'"'); if(mysql_num_rows($query) == 1) $user = mysql_fetch_array($query); echo'<td><a href="index.php?id=2"><img src="./designe/'.$designe.'/img/ico/prod.png"/> <span align="middle">Produkte</span></a></td> <td><a href="index.php?id=3"><img src="./designe/'.$designe.'/img/ico/einz.png"/> <span align="middle">Einzahlen</span></a></td> <td><a href="index.php?id=4"><img src="./designe/'.$designe.'/img/ico/gekauft.png"/> <span align="middle">Historie</span></a></td> <td><a href="index.php?id=8"><img src="./designe/'.$designe.'/img/ico/member.png"/> <span align="middle">Member</span></a></td> <td><a href="index.php?id=7"><img src="./designe/'.$designe.'/img/ico/faq.png"/> <span align="middle">FAQ</span></a></td>'; if($user["access"]==1) echo'<td><a href="admin/"><img src="./designe/'.$designe.'/img/ico/admin.png"/> <span align="middle">Admin</span></a></td>'; echo'<td><a href="index.php?id=9"><img src="./designe/'.$designe.'/img/ico/logout.png"/> <span align="middle">Logout</span></a></td>'; } else echo'<td><a href="index.php?id=5"><img src="./designe/'.$designe.'/img/ico/login.png"/> <span align="middle">Login</span></a></td> <td><a href="index.php?id=6"><img src="./designe/'.$designe.'/img/ico/reg.png"/> <span align="middle">Registrieren</span></a></td>'; echo'</tr></table>'; } ?>
Und die index.php wo der Cookie gesetzt wird?!
PHP-Code:
<?php include('./inc/config.php'); include('./inc/functions.php'); $id = addslashes($_REQUEST["id"]); $user = addslashes($_REQUEST["username"]); $pass = addslashes($_REQUEST["password"]);
if(empty($id)) $id =1; $file = mysql_query('SELECT * FROM navi WHERE id="'.$id.'"'); if(mysql_num_rows($file)>0) $file = mysql_fetch_array($file); else $file = mysql_fetch_array(mysql_query('SELECT * FROM navi WHERE id="404"'));
if(!empty($user) AND !empty($pass)) {$query = mysql_query('SELECT * FROM users WHERE username="'.$user.'" AND pass="'.md6($pass).'"'); if(mysql_num_rows($query) == 1) {$_SESSION["user"] = ucfirst($user); echo'<meta http-equiv="refresh" content="0; url=index.php?id=8">';} else $error = 'Username oder Passwort ist falsch.';} ?> <html> <head> <title><?php echo $shop_name.' - '.$title; ?></title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link href="./designe/<?php echo $designe;?>/style.css" type="text/css" rel="stylesheet" /> <script src="ajax/main.js"></script> </head> <body> <div id="page"> <div id="title"></div> <div id="navi"><?php include('./pages/navi.php') ?></div> <div id="content"> <?php if(file_exists('./pages/'.$file["file"])) {echo'<h1>'.ucfirst($file["title"]).'</h1>'; include('./pages/'.$file["file"]);} if(!empty($error)) echo '<font color="red">'.$error.'</font>'; ?> </div> <br> <center>© 2010 <?php echo $shop_name ?></center> </div> </body> </html>
Jemand eine Ahnung? Wäre toll!
|

19-08-2010, 20:29
|
|
eagle275
Registrierter Benutzer
|
|
Registriert seit: Jun 2010
Beiträge: 371
|
|
nun, da ich auch mit User-Zugriff arbeite (Login und Co...) .. ich vermisse session_start() in deinem Code - vielleicht bin ich blind
an mehreren Stellen finden sich Zugriffe auf $_SESSION, ohne dass ich sehe, das mal eine Sitzung gestartet wird - das würde natürlich erklären, dass dein Script den User scheinbar einloggt und dann Sekundenbruchteile später behauptet, er wäre nicht eingeloggt ...
Ohne Sitzung ist er "natürlich" nicht eingeloggt, wenn dein Script vom Ajax-Teil erneut aufgerufen wird
und brich mal bitte den Code um, nicht jeder hat 23" 16:9 Monitore mit Auflösungen jenseits von 1920 in x-Richtung
__________________
Wer LESEN kann, ist klar im Vorteil!
Geändert von eagle275 (19-08-2010 um 20:33 Uhr)
|

19-08-2010, 20:32
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Ort: Dresden
Beiträge: 5.463
|
|
Hallo,
das sieht so aus als ob das Script davon ausginge, dass in der php.ini session.auto_start eingeschaltet ist. Abhilfe kannst du schaffen, indem du in jeder PHP-Datei ganz oben session_start() aufrufst.
Edit: da war ich wohl zu langsam.
Gruß,
Amica
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

19-08-2010, 20:50
|
|
Knuddeliger
Registrierter Benutzer
|
|
Registriert seit: Aug 2010
Beiträge: 16
|
|
Hab nun in die index.php und die navigation.php gan oben nach
<?php
session_start()
eingefügt nun kommt:
Parse error: syntax error, unexpected T_INCLUDE in /hp/ac/af/is/www/knuddels/index.php on line 3
|

19-08-2010, 21:09
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Ort: Dresden
Beiträge: 5.463
|
|
Semikolon hinter jedem Befehl ist Pflicht.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

19-08-2010, 21:21
|
|
Knuddeliger
Registrierter Benutzer
|
|
Registriert seit: Aug 2010
Beiträge: 16
|
|
Auf jeder Seite steht nun oben:
session_start();
Member.php zb
PHP-Code:
<?php session_start(); if(!empty($_SESSION["user"])) {
$cupbon = addslashes(encode($_REQUEST["cupbon"])); $email = htmlspecialchars(addslashes($_REQUEST["email"])); $pass = addslashes($_REQUEST["pass"]); $newpass = htmlspecialchars(addslashes($_REQUEST["newpass"]));
Aber funktionieren tut es immer noch nicht, muss ich vielleicht noch was in die Functions einfügen? Weil Base64 hat irgendwas mit der Session zu tun oder?
functions.php
PHP-Code:
<?php function md6( $string ) { $md5 = md5($string).md5($string); $return = md5($md5.$md5); $return = '=='.md5($return); return $return; }
function captcha() { $len = 2; $possible="123456789"; $str=""; while(strlen($str)<$len) { $str.=substr($possible,(rand()%(strlen($possible))),1); } $str1 = $str;
$len = 1; $possible="123456789"; $str=""; while(strlen($str)<$len) { $str.=substr($possible,(rand()%(strlen($possible))),1); } $str2 = $str; $_SESSION["captcha"] = $str1 + $str2; return $str1.' + '.$str2; }
function encode ( $string ) { $string = base64_encode($string); $string = str_rot13($string); $string = strrev($string); $string = base64_encode($string); return $string; }
function decode ( $string ) { $string = base64_decode($string); $string = strrev($string); $string = str_rot13($string); $string = base64_decode($string); return $string; } ?>
|

20-08-2010, 01:36
|
|
eagle275
Registrierter Benutzer
|
|
Registriert seit: Jun 2010
Beiträge: 371
|
|
nö .. eigentlich eher nicht ...
diese encode / decode Funktionen haben eigentlich nichts mit der Session direkt zu tun...
"Aber funktionieren tut es immer noch nicht, muss ich vielleicht noch was in die Functions einfügen?"
bitte etwas klarer .. was funktioniert nicht ? gibts Fehlermeldungen, oder wirft er den eingeloggten User immer noch direkt wieder raus?
in dem Fall würd ich mal zum Echo.Debugger greifen ..
speziell den Inhalt der $_SESSION - variablen ..
und die $_REQUEST kann auch nicht schaden
Code:
foreach ($_SESSION as $key=>$element)
echo $key." - ".$element."<br>";
foreach ($_REQUEST as $key=>$element)
echo $key." - ".$element."<br>";
wenn ich neue Funktionen in meine Web-Anwendung einbaue, nutz ich das so lange, bis die Funktion fehlerfrei für alle User-Klassen (mehrere Rechtestufen) läuft, danach kann man es dann auskommentieren oder löschen
besonders geeignete Stellen für den Einsatz dieses Code-Schnipsels sind immer direkt nach session_start();
weil danach sollte er Zugriff auf die Session-Daten haben ...
Müssen für deine Shop-Anwendung möglicherweise Cookies im Browser aktiv sein? ..$_REQUEST enthält neben $_POST auch die Daten von Cookies ....
was natürlich auch noch sein kann ...
hast du mal mit phpMyAdmin geprüft, ob du mit den Abfragen, die du an die Datenbank schickst überhaupt Antwort und die richtige Antwort erhältst?
auch dabei leistet echo-debugger gute Hilfe ...speziell auf den Navigations-Teil bezogen .. (nach dem $user = mysql_fetch_array($query); )
Code:
foreach($user as $key=>$element)
echo $key." - ".$element."<br>";
und keine Sorge, wenn dir diese Code-Schnipsel dein Layout erstmal verunstalten .. wenn alles fehlerfrei läuft, löschst du die Zeilen und schon haut das Layout auch wieder hin
__________________
Wer LESEN kann, ist klar im Vorteil!
Geändert von eagle275 (20-08-2010 um 01:38 Uhr)
|

20-08-2010, 03:09
|
|
Knuddeliger
Registrierter Benutzer
|
|
Registriert seit: Aug 2010
Beiträge: 16
|
|
Den ersten Schnipsel habe ich überall nach den session Start eingebaut.
Der zweite Schnipsel weiss ich nicht, wo ich den einfügen soll.
Genauer: Ich gebe die Benutzerdaten: test | test ein User | Passwort, er reloaded zeigt kurz die komplette Navigation, wirft dann aber wieder:
Sie sind nicht eingeloggt.
aus. Im Adminmenü funktioniert das einloggen nur im Userbereich nicht.
|

20-08-2010, 07:10
|
|
eagle275
Registrierter Benutzer
|
|
Registriert seit: Jun 2010
Beiträge: 371
|
|
interessanter ist, was gibt der neu eingebaute Code.Schnipsel aus, während dein script läuft..
aber dank ajax .....
vielleicht musst du das ganze so modifizieren, dass die ausgabe statt am Bildschirm in einer Protokoll-Datei landet ...
Code:
$handle=fopen("./output.txt","a+");
foreach($_SESSION as $key=>$element)
fwrite($handle,"S ".$key." - ".$element."\n");
foreach ($_REQUEST as $key=>$element)
fwrite($handle,"R ".$key." - ".$element."\n");
fclose($handle);
evtl musst du den Pfadnamen zur Datei ändern auf ein Verzeichnis, wo dein WWW-user schreibrechte hat
(die Buchstaben dienen dir später um Session Daten von Request Daten zu trennen
__________________
Wer LESEN kann, ist klar im Vorteil!
Geändert von eagle275 (20-08-2010 um 07:13 Uhr)
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|