Προς το περιεχόμενο

PHP : warnings σε session


chrism4111

Προτεινόμενες αναρτήσεις

Δημοσ.

Αν εννοεις αυτην την αλλαγη δεν παιζει.. το ιδιο κανει ακριβως..(βεβαια ειναι μια μικρη λεπτομερία

>
<?php
if(!isset($_POST['username']) && !isset($_POST['password']))
{
$error="Παρακαλώ πληκτρολογήστε Password και Username"; 
}
else 
{
	mysql_pconnect("localhost","root","");
	mysql_select_db("myproject");
	$query = sprintf("SELECT * FROM  users WHERE User_Name='%s'",mysql_real_escape_string($_POST["username"]));
	$results = mysql_query($query);
	$num = mysql_num_rows($results);
	if($num == 1)
	{
		$row = mysql_fetch_array($results);
		if($_POST['username'] == $row['User_Name'] && $_POST['password'] == $row['Password'])
		{	 
			session_start();
			session_register('myapp'); 
			$_SESSION['myapp']=$row['UserID'];
		}
		if(session_is_registered('myapp'))
		{ 
			header("Location:index.php");
		}
		if($_POST['username'] != $row['User_Name'] || $_POST['password'] != $row['Password'])
		{
			$error="Το Username ή το Password είναι λάθος"; 
		}
	}
	if($num <1)
	{
		$error="Το Username ή το Password είναι λάθος"; 
	}
}
?>

<div class="login-form">
		<form method="post" name="login_form" action="index.php?page=login">
			<span class="login-text">Username:</span> <input class="input-text" type="text" name="username" /><br>
			<span class="login-text">Password :</span>  <input class="input-text" type="password" name="password" /><input type="submit" value="Login"  />
		 <?php 
		if(isset($error))
		{
		echo '<br><p><span class="error">'.$error.'</span></p>';
		}
		?>
		 </form>
		
</div>

Δημοσ.

>if($num<1){   
                  $error="........Μυνυμα ταδε"; 
                }
          }
else {                                                                                               
         $error="Παρακαλω πληκτρολογηστε UserName και Password"
      }   // Το else αυτο αντιστοιχει στο πρωτο if του ολοκληρωμένου κωδικα

 

Εδώ έχεις ένα έξτρα { tag. Μήπως φταίει αυτό; Ή είναι ορθογραφικό λάθος;

 

Έχεις τα warnings ενεργά; Για παρακολούθησέ το μήπως έχεις κάποιο warning στην $error.

Δημοσ.
>if($num<1){   
                  $error="........Μυνυμα ταδε"; 
                }
          }
else {                                                                                               
         $error="Παρακαλω πληκτρολογηστε UserName και Password"
      }   // Το else αυτο αντιστοιχει στο πρωτο if του ολοκληρωμένου κωδικα

 

Εδώ έχεις ένα έξτρα { tag. Μήπως φταίει αυτό; Ή είναι ορθογραφικό λάθος;

 

Έχεις τα warnings ενεργά; Για παρακολούθησέ το μήπως έχεις κάποιο warning στην $error.

 

Οχι δεν ειναι ορθογραφικο απλα ειναι συνεχεια και δεν φενετε το ανοιγμα.

Ενεργα παντα τα ςαρνινγσ για να χερω τι μ γινετε . 0 warnings & 0 errors

Ο ολοκληρομενος κωδικας ειναι στο προηγουμενο Post ...

Δημοσ.

Μπορεί να είναι πρόβλημα runtime. Δοκίμασε να βγάλεις τελείως το αρχικό if... else και αρχικοποίησε το $error ως

 

>$error="Παρακαλώ πληκτρολογήστε Password και Username"; 

 

και στον μετέπειτα κώδικα αν όλα πάνε καλά, μηδένιζέ το...

  • 2 εβδομάδες αργότερα...
Δημοσ.
Μπορεί να είναι πρόβλημα runtime. Δοκίμασε να βγάλεις τελείως το αρχικό if... else και αρχικοποίησε το $error ως

 

>$error="Παρακαλώ πληκτρολογήστε Password και Username"; 

 

και στον μετέπειτα κώδικα αν όλα πάνε καλά, μηδένιζέ το...

 

Εφυγα για διακοπες και το ψιλοπαρατησα τωρα ηρθα και ελυσα το προβλημα .

Ο τελικος κωδικας ειναι ο παρακάτω:

 

>
<?php 
   $error="";
   $submit=$_POST['submit'];
   if($submit){
include_once "functions.php";
connect();
$username=protect($_POST['username']);
$password=protect($_POST['password']);
	$query = sprintf("SELECT * FROM  users WHERE User_Name='%s'",mysql_real_escape_string($username));
	$results = mysql_query($query);
	$num = mysql_num_rows($results);
	if($num == 1)
	{
		$row = mysql_fetch_array($results);
		if($username == $row['User_Name'] && md5($password) == $row['Password'])
		{	 
			session_start();
			session_register('myapp'); 
			$_SESSION['myapp']['user']=$row['UserID'];
               $_SESSION['myapp']['role']=$row['RoleID'];
			header("Location:index.php");
		}
		if($password != $row['Password'] && $password !=null)
		{
			$error="Το Password είναι λάθος";
		}
		if($password != $row['Password'] && $password ==null)
		{
			$error="Πληκτρολογείστε το Password";
		}
	}
	else if($num <1)
	{
		if(isset($username) && $username != null)
		{
			$error="Το UserName είναι λάθος";
		}
		if($username==null && isset($password))
		{
			$error="Πληκτρολογείστε το UserName";
			
		}
		if($password==null  && $username==null)
		{
			$error="Πληκτρολογείστε το Username και το Password";
			
		}
	}
 }
?>
<div class="login-form">
		<form method="post" name="login_form" action="index.php?page=login">
			<span class="login-text">Username:</span> <input class="input-text" type="text" name="username" /><br>
			<span class="login-text">Password :</span>  <input class="input-text" type="password" name="password" /><input type="submit" name="submit" value="Login"  />
		 <?php 
		if(isset($error))
		{
		echo '<br><p><span class="error">'.$error.'</span></p>';
		}
		?>
		 </form>
		
</div>

 

Και το αρχειο functions.php

>
<?php
	function protect($string)
	{
		$string=mysql_real_escape_string($string);
		$string=strip_tags($string);
		$string=addslashes($string);
		
		return $string;
	}
	function connect()
	{
		mysql_pconnect("localhost","root","") or die(mysql_error());
		mysql_select_db("myproject");
	}
       ?>

Δημοσ.
Μπορεί να είναι πρόβλημα runtime. Δοκίμασε να βγάλεις τελείως το αρχικό if... else και αρχικοποίησε το $error ως

 

>$error="Παρακαλώ πληκτρολογήστε Password και Username"; 

 

και στον μετέπειτα κώδικα αν όλα πάνε καλά, μηδένιζέ το...

 

Εφυγα για διακοπες και το ψιλοπαρατησα τωρα ηρθα και ελυσα το προβλημα .

Ο τελικος κωδικας ειναι ο παρακάτω:

 

>
<?php 
   $error="";
   $submit=$_POST['submit'];
   if($submit){
include_once "functions.php";
connect();
$username=protect($_POST['username']);
$password=protect($_POST['password']);
	$query = sprintf("SELECT * FROM  users WHERE User_Name='%s'",mysql_real_escape_string($username));
	$results = mysql_query($query);
	$num = mysql_num_rows($results);
	if($num == 1)
	{
		$row = mysql_fetch_array($results);
		if($username == $row['User_Name'] && md5($password) == $row['Password'])
		{	 
			session_start();
			session_register('myapp'); 
			$_SESSION['myapp']['user']=$row['UserID'];
               $_SESSION['myapp']['role']=$row['RoleID'];
			header("Location:index.php");
		}
		if($password != $row['Password'] && $password !=null)
		{
			$error="Το Password είναι λάθος";
		}
		if($password != $row['Password'] && $password ==null)
		{
			$error="Πληκτρολογείστε το Password";
		}
	}
	else if($num <1)
	{
		if(isset($username) && $username != null)
		{
			$error="Το UserName είναι λάθος";
		}
		if($username==null && isset($password))
		{
			$error="Πληκτρολογείστε το UserName";
			
		}
		if($password==null  && $username==null)
		{
			$error="Πληκτρολογείστε το Username και το Password";
			
		}
	}
 }
?>
<div class="login-form">
		<form method="post" name="login_form" action="index.php?page=login">
			<span class="login-text">Username:</span> <input class="input-text" type="text" name="username" /><br>
			<span class="login-text">Password :</span>  <input class="input-text" type="password" name="password" /><input type="submit" name="submit" value="Login"  />
		 <?php 
		if(isset($error))
		{
		echo '<br><p><span class="error">'.$error.'</span></p>';
		}
		?>
		 </form>
		
</div>

 

Και το αρχειο functions.php

>
<?php
	function protect($string)
	{
		$string=mysql_real_escape_string($string);
		$string=strip_tags($string);
		$string=addslashes($string);
		
		return $string;
	}
	function connect()
	{
		mysql_pconnect("localhost","root","") or die(mysql_error());
		mysql_select_db("myproject");
	}
       ?>

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...