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

php mysql


aloizidi

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

Δημοσ.

php epikinoni me mysql.iparxi kapio provlima re sis palikaria alla den ksero ti.se ena allo arxio exo mia vasi stin opia kataxoro xristes(username kai password) kai se auto to arxio elegho an o xristis einai kataxorimenos.an mporite rikste to mia matia :

 

<?

$server = 'localhost';

$user = 'root';

$pass = '';

$mydb= 'alexs';

$table_name = 'alexs_programmer';

$connect = mysql_connect($server, $user, $pass);

if (!$connect) {

die ("Cannot connect to $server using $user");

} else {

mysql_select_db($mydb);

$SQLcmd= "SELECT * FROM $table_name WHERE (`username` ='$username' AND `password` = '$password')";

 

if (mysql_query($SQLcmd, $connect))

{print "<br>Hi $the_user<br>";}

else

{

print'<br>wrong username or password<br>';

print'Are you a new programmer? <A href="sign_up_programmer.php">sign up now</A><br>';

print'or <A href="programmer.php">click here</A> to try again<br>';

die ("Failed SQLcmd=$SQLcmd");

}

mysql_close($connect);

}

include("programmer3.php");

?>

ola pane kala de vgazi lathos .tiponi hi kai to username.apla oti username kai password na valis pai parakato diladi einai les kai oli ine kataxorimenos.

euxaristo

Δημοσ.

Πρωτος δεν καταλαβα... τα $username και $password πέρνουν τιμές από κάποια φόρμα;

 

Και δεύτερον... το $the_user από που παίρνει τιμή;

 

Μάλλον κάπου τα έχεις μπερδέψει.

Δημοσ.

εχεις ενα λαθος λογικής.

ο ελεγχος σου βασιζεται στο αν το mysql_query ειναι true/false.

αυτο επιστρεφει false οταν συμβει error στην εκτελεση του sql.

 

λογικά, εφοσον ο χρηστης δώσει ανυπαρκτο username, ή λαθος password, το sql statement δεν θα επιστρεψει rows. Αυτό δεν ειναι error . το sql εκτελειτε κανονικά, απλα δεν βρισκει κατι να ταιριαζει στο where.

 

error θα ηταν, π.χ. να εβαζες

 

$table_name = 'userssss';

$SQLcmd= "SELECT * FROM $table_name WHERE (`username` ='$username' AND `password` = '$password')";

(δεν υπαρχει πινακας userssss)

 

ή

$SQLcmd= "SELECT * FROM $table_name WHEeeRE (`username` ='$username' AND `password` = '$password')";

(δεν υπαρχει λεξη wheeere στην sql)

 

-----------------------------------------------------------------

αρα πρεπει να ελενξεις εκτος του οτι εχεις ορθο sql, και οτι επιστρεφει τουλαχιστον 1 record.

 

δοκιμασε έτσι:

>
<?
$server = 'localhost';
$user = 'root';
$pass = '';
$mydb= 'alexs';
$table_name = 'alexs_programmer';
$connect = mysql_connect($server, $user, $pass);

if (!$connect) {
      die ("Cannot connect to $server using $user");
} else {
  mysql_select_db($mydb);
  $SQLcmd= "SELECT * FROM $table_name WHERE (`username` ='$username' AND `password` = '$password')";

$num_rows = 0;
$result = mysql_query($SQLcmd, $connect);
$num_rows = mysql_num_rows($result);

if (  $result   &&  $num_rows>0  )
     {print "<br>Hi $the_user<br>";}

elseif ( !$result )  {
       die ("Failed SQLcmd=$SQLcmd  <br>SQL error = " . mysql_error()  );
   }
else  //case of result=true but num_rows=0
{
  print'<br>wrong username or password<br>';
  print'Are you a new programmer? <A href="sign_up_programmer.php">sign   up now</A><br>';
  print'or <A href="programmer.php">click here</A> to try again<br>';
}


mysql_close($connect);
}
include("programmer3.php");
?>

 

 

 

 

 

προτινω το mysql_close να το εκτελεις πάντα, ειτε γινει error ειτε οχι.

Ειτε, πριν απο κάθε DIE, ή να κανεις print ta errors αντι die για να φτάνει στο mysql_close.

Δημοσ.

ok exeis dikio random auto itan egine thanks.

kai akoma ena provlimataki den mporo na tiposo to: <?xml version"1.0"?>

prospatho me tin

print "<?xml version\"1.0\"?>";

alla de ginetai.kseri kanis ti paizei???

thanks re me sozete

Δημοσ.

τυπωνεται κανονικα, αλλα δεν το βλέπεις λογω των < >

κανε view source, και θα το δεις στην html

 

αν θες να εμφανιζονται δωσε

> print htmlentities('<?xml version"1.0"?>');

Δημοσ.

euxaristo pou stelnis.

kai pali exeis dikio.

exo alli mia aporia:

exo 4 metavlites tin $the_id kai tin $id kai tin $the_username kai tin $the_user.thelo na elenkso pote ine ana dio ises.diladi na isxii

$the_id=$id kai $the_username=$the_user.

gi auto grafo ton parakato kodika:

$flag=0;

print" $the_id $id <br>";

print" $the_username $the_user <br>";

 

if((!((strcmp( $the_id , $id ))==0) )&&( !((strcmp( $the_username , $the_user))==0)) )

 

{$flag=1; print" 2 $flag<br>";}

else{

print" ouaou";

fwrite($fp, $str1);

}

ti malakia tin terastia stin if ti grafo giati exo apivdisi.den ginete me tipota.

eite oi metavlites mou exoun idies times ite oxi beni panta stin if kai pote stin else.giati???

i aporia mou ine ti bori na grapso mesa stin if

thankssssssss

ime poli axristos?:?:

Δημοσ.

εχεις μπλεξει τα not και τα and και ενα λαβύρινθο παρενθέσεων :shock: :-P

τι ελεγε ο δασκαλος στο σχολείο; "2 αρνήσεις κάνουν μια κατάφαση"

και.. αντι να λές "δεν ειναι δυσκολο", λέγε "ειναι εύκολο".

 

 

ετσι οπως ειναι γραμμενο το flag θα γινει 1 μονο οταν

υπαρχει διαφορά ΚΑΙ ΣΤΑ ΔΥΟ ζευγαρια.

σε καθε αλλη περιπτωση (ανισοτητα στο 1 ζευγ, ή ισοτητα και στα 2) παει στην else

 

 

..deleted by mpurdologia..

Δημοσ.

basika thelo otan isxii $the_id=$id kai $the_username=$the_user

na ginete to $flag=1.

otan ine kai ta dio zeugi isa.

dokimazo etsi kai den ksero giati den piani:

if ( $the_id == $id && $the_username == $the_user )

Δημοσ.

if ( strcmp($the_id,$id)==0 and strcmp($the_username,$the_user)==0 )

{

$flag=1; print" 2 $flag<br>";

}

else{

print" ouaou";

fwrite($fp, $str1);

}

 

------------------------------------------------

με == δεν ειναι σωστη η συγκριση strings. διάβασε το php manual.

μπορεις με strcmp ή ===

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

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

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