Problem: POST Daten kommen nicht an

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Problem: POST Daten kommen nicht an

    Hi
    Ich habe versucht ein Script zum Anmelden auf einer Seite zu schreiben.
    Allerdings bleibt mir das Script immer an meinen Kontrollschleifen hängen.
    Ich weiß aber nicht warum.
    Könnt ihr euch das mal anschaun, ich verzweifle schön langsam daran ^^

    Quellcode

    1. <?php
    2. if($_GET['action'] == "send") {
    3. if(!isset($_POST['nick'], $_POST['email'], $_POST['login'])) {
    4. $field1 = "<p>Bitte benutze das Formular!</p>";
    5. $field2 = "<p><a href=\"?show=register\">Zur&uuml;ck</a></p>";
    6. }elseif($_POST['nick'] == "Nickname" OR $_POST['nick'] == "" OR $_POST['login'] == "Loginname" OR $_POST['login'] == "" OR $_POST['email'] == "E-Mail" OR $_POST['email'] == "" ) {
    7. $field1 = "<p>Bitte f&uuml;lle das Formular korrekt aus!</p>";
    8. $field2 = "<p><a href=\"?show=register\">Zur&uuml;ck</a></p>";
    9. }else{
    10. $key = randomgen(20,4);
    11. $pw = randomgen(5,2);
    12. $time = time() + 10800;
    13. $sql = "INSERT INTO user_unactive
    14. (IP, nick, login, email, pw, akey, tdate)
    15. VALUES
    16. ('".getenv("REMOTE_ADDR")."',
    17. '".addslashes(htmlspecialchars($_POST['nick']))."',
    18. '".addslashes(htmlspecialchars($_POST['login']))."',
    19. '".htmlspecialchars($_POST['email'])."',
    20. '".$pw."',
    21. '".$key."',
    22. '".$time."')";
    23. mysql_query($sql) OR die(mysql_error());
    24. $field1 = "<p>Es wure eine E-Mail mit den Logindaten an deine E-Mail Adresse gesendent!<br />Bitte rufe den Aktivierungslink in dieser Mail auf, um deinen Account zu aktivieren!</p>";
    25. $text = "Hallo!
    26. Hier sind deine Zugangsdaten für unsere Page!
    27. Loginname: ".$_POST['login']."
    28. Passwort: ".$pw."
    29. Bitte klicke möglichst schnell auf den untenstehenden Link, da deine Anmeldung sonst verfällt!
    30. ".$settings['page']."
    31. MfG
    32. ".$settings['clanname'];
    33. mail($_POST['email'], "Zugangsdaten f&uuml;r die Clanpage von ".$settings['clanname'], $text, "From: ".$settings['clanname']);
    34. $field2 = "<p><a href=\"?show=home\">Startseite</a></p>";
    35. }
    36. }elseif($_GET['action'] == "activate"){
    37. if($i == 1) {
    38. $field1 = "";
    39. $field2 = "";
    40. }else{
    41. $field1 = "";
    42. $field2 = "";
    43. }
    44. }else{
    45. $field1 = "<form action=\"?show=register&action=send\" method=\"post\" enctype=\"text/plain\">
    46. <input type=\"text\" name=\"nick\" id=\"nick\" value=\"Nick\" /><br />
    47. <input type=\"text\" name=\"login\" id=\"login\" value=\"Loginname\" /><br />
    48. <input type=\"text\" name=\"email\" id=\"email\" value=\"E-Mail\" /><br />\n<br />
    49. <input type=\"submit\" name=\"submit\" value=\"Absenden\" />
    50. </form>\n";
    51. $field2 = "<p align=\"center\">Trage hier deine Daten ein!<br />\nBitte beachte, dass eine Registrierung nur mit korrekten Angaben m&ouml;glich ist!</p>\n";
    52. }
    53. echo "<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" style=\"float:left;\">\n";
    54. echo " <tr>\n";
    55. echo " <td width=\"550\" style=\"border-left:1px solid;border-right:1px solid;border-top:1px solid;border-bottom:1px solid;padding:2px;text-align:center;\">".$field1."</td>\n";
    56. echo " <td width=\"50\">&nbsp;</td>\n";
    57. echo " </tr>\n";
    58. echo " </table>\n";
    59. echo "<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n";
    60. echo " <tr>\n";
    61. echo " <td width=\"300\" style=\"border-left:1px solid;border-right:1px solid;border-top:1px solid;border-bottom:1px solid;padding:2px;text-align:center;\">".$field2."</td>\n";
    62. echo " </tr>\n";
    63. echo " </table>\n";
    64. ?>
    Alles anzeigen

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von venum-lk ()

  • o.O. also ein Registrierungsfomular ?
    prüfe die email adresse vor dem absenden mit:

    Quellcode

    1. if (!ereg("^.+@.+\\..+$", $_POST['Email']))
    2. {
    3. print 'Die Emailadresse ist nicht korrekt !<br>';
    4. }

    generiere nen aktivierungskey den du als erste email sendest damit er seine email bestätigt z.B.:

    Quellcode

    1. $p = "qwertzupasdfghkyxcvbnm";
    2. $p .= "23456789";
    3. $p .= "WERTZUPLKJHGFDSAYXCVBNM";
    4. $pw='';
    5. srand ((double)microtime()*1000000);
    6. for($index = 0; $index < 20; $index++)
    7. {
    8. $pw .= substr($p,(rand()%(strlen ($p))), 1);
    9. }
    10. $aktivierungslink = $pw;

    danach schickste ihm ne email mit den eingtragenen daten und nem aktivierungslink in der du auf ne datei greifst z.b. "aktivierung.php?user=USERID&akt=AKTIVIERUNGSCODE"
    ist nur nen beispiel...
    versuche diese varianten mal oder/und trenne deinen code in html und php und/oder schriebe nur die zeile an der es stehen bleibt.
    Beste Grüße,
    M4rc3L-XCN
  • zum aktivierungskey ^^
    den hab ich schon, is die funktion randomgen

    Quellcode

    1. function randomgen($laenge,$stufe=0) {
    2. $vokale = 'aeiouy';
    3. $konsonanten = 'bdghjlmnpqrstvwxz';
    4. if($stufe == 1) {
    5. $konsonanten .= 'BDGHJLMNPQRSTVWXZ';
    6. }
    7. if($stufe == 2) {
    8. $vokale .= "AEIOUY";
    9. }
    10. if($stufe == 4) {
    11. $konsonanten .= 'BDGHJLMNPQRSTVWXZ0123456789';
    12. $vokale .= "AEIOUY";
    13. }
    14. if($stufe == 8) {
    15. $konsonanten .= 'BDGHJLMNPQRSTVWXZ0123456789@#$%^';
    16. $vokale .= "AEIOUY";
    17. }
    18. $passwort = '';
    19. $alt = time() % 2;
    20. srand(time());
    21. for($i = 0; $i < $laenge; $i++) {
    22. if($alt == 1) {
    23. $passwort .= $konsonanten[(rand() % strlen($konsonanten))];
    24. $alt = 0;
    25. }else{
    26. $passwort .= $vokale[(rand() % strlen($vokale))];
    27. $alt = 1;
    28. }
    29. }
    30. return $passwort;
    31. }
    Alles anzeigen


    des mit der email überprüfung hab ich vergessen, ich geb s ja zu ^^
    aber der springende punkt bei dem ganze is ja, dass mir der ablauf des scirpts bei der !isset funktion hängen bleibt und ich keine ahnung hab, warum ^^

    Quellcode

    1. if(!isset($_POST['nick'], $_POST['email'], $_POST['login'])) {
    2. $field1 = "<p>Bitte benutze das Formular!</p>";
    3. $field2 = "<p><a href=\"?show=register\">Zur&uuml;ck</a></p>";
    4. }

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von venum-lk ()

  • Naja, warum willst du deinem Browser überhaupt vorschreiben, wie er seine Daten zu senden hat?

    bei text/plain sieht der HTTP Request so aus

    Quellcode

    1. POST /datei.php HTTP/1.1
    2. Host: example.org
    3. Sonstwas: sonstwas
    4. Feld1: Wert1
    5. Feld2: Wert2


    und bei application/x-www-form-urlencoded (Standardeinstellung) ist es nunmal das:

    Quellcode

    1. POST /datei.php HTTP/1.1
    2. Host: example.org
    3. Sonstwas: sonstwas
    4. Feld1=Wert1&Feld2=Wert2