plexAe Δημοσ. 21 Φεβρουαρίου 2010 Δημοσ. 21 Φεβρουαρίου 2010 Γειά σας παιδες. εχω το εξής πρόβλημα θελω να κάνω ενα application στο οποίο να καταχωρώ τα αγαπημένα μου τραγούδια εφταξα λοιπον ενα log in form και αφου κανεις log in, σε παει στο μενού για να καταχωρήσεις ενα τραγούδι τώρα όμως, μολις καταχωρίσω το τραγούδι, μου βγαζει σφάλμα πως δεν ειμαι logged in. χωρις το log in functionality to application δουλεύει μια χαρά > <?php $username = $_POST['username']; $password = $_POST['password']; session_start(); ?> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>My Favorite Songs</title> <!-- csss --> <link rel="stylesheet" type="text/css" href="style/style.css" media= "all"/> <!-- //csss --> <?php include("databases.php"); include("classes.php"); ?> </head> <body> <div id="main"> <h1>MY FAVORITE SONGS</h1> <div id="logout"> <?php //logout user_session($username); ?> </div> <div id="songbase"> <?php $username = $_POST['username']; $password = $_POST['password']; if($username && $password) { $query = mysql_query("SELECT * FROM users WHERE username = '$username' " ); $numrows = mysql_num_rows($query); if ($numrows!=0) { while ($row = mysql_fetch_assoc($query)) { $dbusername = $row['username']; $dbpassword = $row['password']; } if ($username==$dbusername&&$password==$dbpassword) { echo "<h3> Welcome " ; echo $username ; echo " : please feel free to add your favorite songs! </h3> " ; $_SESSION['username']=$username; ?> <form method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>"> Featured: Yes <input type="checkbox" name="featured" value="1" /> No <input type="checkbox" name="featured" value="0" /></ br> Song <input type="text" name="song" value="" /></ br> Band <input type="text" name="band" value="" /></ br> Album <input type="text" name="album" value="" /></ br> <input type="submit" name="submit" value="submit" /> </form> <br> <br> <br> <?php $a = $_POST['song']; $b = $_POST['band']; $c = $_POST['album']; $d = $_POST['featured']; if(isset($a)||isset($||isset($c)){ save($a,$b,$c,$d); echo "Added !"; }; display_songs(); mysql_close($conn); } else { echo "mmm...sorry"; } } else die("that username does not exitst! <br> give it another<a href='index.php'>go</a>"); } else die("please enter valid information,"); ?> </div> </div> </body> </html> Εδώ το sessions function > function user_session($username){ if ($username) { echo "wana <a href='logout.php'>logout</a>?" ; } else { die("You are not logged in!"); } } εχω απελπιστει
_tasos Δημοσ. 21 Φεβρουαρίου 2010 Δημοσ. 21 Φεβρουαρίου 2010 Το πρώτο κομμάτι κώδικα είναι η κύρια σου σελίδα; Εγώ καταλαβαίνω πως ναι. Σε αυτό το αρχείο κάνεις κάθε φορά authenticate το χρήστη. Οι γραμμές > $username = $_POST['username']; $password = $_POST['password']; έχουν νόημα μόνο όταν ο χρήστης κάνει login. Την επόμενη φορά που θα τρέξει η σελίδα και π.χ. κάνει μία αναζήτηση οι τιμές $_POST['username']; και $_POST['password']; είναι άδειες. Άρα όταν κάνει ο χρήστης μία αναζήτηση, τρέχει ο κώδικας για το Login, αλλά οι τιμές username & password είναι χωρίς τιμή και για αυτό παίρνεις το μήνυμα ότι δεν είσαι logged in. Προτείνω να βάλεις το check για το login σε άλλο αρχείο. Αν δεν θέλεις, τότε μπορείς να αλλάξεις λίγο τον κώδικα σου. > if($_SESSION['username'] == "") /Δεν έχω στο session κάποιο username, άρα θα κάνω authenticate το χρηστη { $username = $_POST['username']; $password = $_POST['password']; ... } else { //εμφανίζω κανονικά τη σελίδα μου }
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.