2017-05-15 5 views
-1

Meine Frage ist, Bedingung, wenn (isset ... ist nicht sichtbar. Bis jetzt arbeitete ich nicht mit PDO, also wenn jemand die Lösung für mein Problem sieht, bitte helfen Sie mir, wenn Sie können, danke.Aktivierung Mail und Hash-Prüfung

<?php 

     mysql_connect("localhost", "xxxx", "") or die(mysql_error()); // Connect to database server(localhost) with username and password. 
     mysql_select_db("database") or die(mysql_error()); // Select registration database. 

Dies, wenn die Bedingung nicht gesehen werden kann

if (isset($_GET['e_mail']) && !empty($_GET['e_mail']) AND isset($_GET['hash']) && !empty($_GET['hash'])){ 
      // Verify data 
      $email = mysql_escape_string($_GET['e_mail']); // Set email variable 
      $hash = mysql_escape_string($_GET['hash']); // Set hash variable 

      $search = mysql_query("SELECT e_mail, hash, active FROM users WHERE e_mail='".$email."' AND hash='".$hash."' AND active='0'") or die(mysql_error()); 
      $match = mysql_num_rows($search); 

ich möchte diesen Zustand tun:

  if($match > 0){ 
       // We have a match, activate the account 
       mysql_query("UPDATE users SET active='1' WHERE e_mail='".$email."' AND hash='".$hash."' AND active='0'") or die(mysql_error()); 
       echo '<div class="statusmsg">Your account has been activated, you can now login</div>'; 
      }else{ 
       // No match -> invalid url or account has already been activated. 
       echo '<div class="statusmsg">The url is either invalid or you already have activated your account.</div>'; 
      } 


     } 

wenn Bedingung dies tut:

else{ 


       // Invalid approach 
       echo '<div class="statusmsg">Invalid approach, please use the link that has been send to your email.</div>'; 

      } 
      ?> 
+1

*** Bitte [stoppen Sie die Verwendung von mysql_ * 'Funktionen] (http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php). *** Diese Erweiterungen] (http://php.net/manual/en/migration70.removed-exts-sapis.php) wurden in PHP 7 entfernt. Erfahren Sie mehr über [prepared] (http://en.wikipedia.org/wiki/Prepared_statement) Anweisungen für [PDO] (http://php.net/manual/en/pdo.prepared-statements.php) und [MySQLi] (http://php.net/manual/en/mysqli.quickstart. prepared-statements.php) und erwäge die Verwendung von PDO, [es ist wirklich ziemlich einfach] (http://jayblanchard.net/demystifying_php_pdo.html). –

+1

[Little Bobby] (http://bobby-tables.com/) sagt *** [Ihr Skript ist für SQL Injection Attacks gefährdet.] (Http://stackoverflow.com/questions/60174/how-can- i-prevent-sql-injection-in-php) ***. Sogar [die Zeichenfolge zu entkommen] (http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string) ist nicht sicher! –

+0

Ihr Code ist dann fehlgeschlagen; Auf Fehler prüfen –

Antwort

0

fand ich, wo der Fehler ist, es unglaublich klingt, aber der Fehler ist in der Datenbank, wo der Unterm Strich (_) gesetzt ist, und wenn i Eingang E-Mail statt e_mail in Datenbank und alles richtig, es funktioniert perfekt.

Ich hochgeladen die Antwort, so dass es andere mit der gleichen Situation helfen kann.

Ich schätze Jay Blanchard's Beratung in PDO zu arbeiten, und ich werde seine adevice schicken, weil sie überzeugt ist, und danke Fred für deine Antwort. Jetzt

wenn jemand kann mir (schreiben, machen) zu tun, hilft diesen Code in PDO und mich zu erklären, wie PDO funktioniert, um es besser zu verstehen. Vielen Dank!

Verwandte Themen