aloizidi Δημοσ. 3 Ιανουαρίου 2007 Δημοσ. 3 Ιανουαρίου 2007 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
Gigenis Δημοσ. 3 Ιανουαρίου 2007 Δημοσ. 3 Ιανουαρίου 2007 Πρωτος δεν καταλαβα... τα $username και $password πέρνουν τιμές από κάποια φόρμα; Και δεύτερον... το $the_user από που παίρνει τιμή; Μάλλον κάπου τα έχεις μπερδέψει.
random Δημοσ. 3 Ιανουαρίου 2007 Δημοσ. 3 Ιανουαρίου 2007 εχεις ενα λαθος λογικής. ο ελεγχος σου βασιζεται στο αν το 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.
aloizidi Δημοσ. 3 Ιανουαρίου 2007 Μέλος Δημοσ. 3 Ιανουαρίου 2007 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
random Δημοσ. 4 Ιανουαρίου 2007 Δημοσ. 4 Ιανουαρίου 2007 τυπωνεται κανονικα, αλλα δεν το βλέπεις λογω των < > κανε view source, και θα το δεις στην html αν θες να εμφανιζονται δωσε > print htmlentities('<?xml version"1.0"?>');
aloizidi Δημοσ. 4 Ιανουαρίου 2007 Μέλος Δημοσ. 4 Ιανουαρίου 2007 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?:?:
random Δημοσ. 4 Ιανουαρίου 2007 Δημοσ. 4 Ιανουαρίου 2007 εχεις μπλεξει τα not και τα and και ενα λαβύρινθο παρενθέσεων :-P τι ελεγε ο δασκαλος στο σχολείο; "2 αρνήσεις κάνουν μια κατάφαση" και.. αντι να λές "δεν ειναι δυσκολο", λέγε "ειναι εύκολο". ετσι οπως ειναι γραμμενο το flag θα γινει 1 μονο οταν υπαρχει διαφορά ΚΑΙ ΣΤΑ ΔΥΟ ζευγαρια. σε καθε αλλη περιπτωση (ανισοτητα στο 1 ζευγ, ή ισοτητα και στα 2) παει στην else ..deleted by mpurdologia..
aloizidi Δημοσ. 4 Ιανουαρίου 2007 Μέλος Δημοσ. 4 Ιανουαρίου 2007 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 )
random Δημοσ. 4 Ιανουαρίου 2007 Δημοσ. 4 Ιανουαρίου 2007 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 ή ===
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.