kostenloser Webspace werbefrei: lima-city


Was ist hier falsch?

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    c****c

    Hi!

    Ich habe gerade was ausprobiert, und es gab einen Fehler.
    Was ist hier falsch?

    <?php
    
    $aktivierungscode = mt_rand();
    
    mysql_query("INSERT INTO benutzerdaten SET aktivierungscode = '$activierungscode' WHERE Nickname = '"$_POST['username']"'")
    
    $empfaenger = "'$_POST['mail']'";
    $betreff = "Aktivierungsmail von SchülerSV.eu";
    $from = "From: Test <absender@domain.de>";
    $text = "Bitte bestätige deinen Account unter: http://www.schuelersv.eu/activated.php?code=$aktivierungscode . Viel Spaß noch !";
    
    mail($empfaenger, $betreff, $text, $from);
    
    ?>
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. mysql_query("INSERT INTO benutzerdaten SET aktivierungscode = '$activierungscode' WHERE Nickname = '"$_POST['username']"'")
    Da bei dem Post-Nickname fehlt der Verkettungsoperator "."
  4. Autor dieses Themas

    c****c

    nikic schrieb:
    mysql_query("INSERT INTO benutzerdaten SET aktivierungscode = '$activierungscode' WHERE Nickname = '"$_POST['username']"'")
    Da bei dem Post-Nickname fehlt der Verkettungsoperator "."



    Leider geht es immer noch nicht..

    Bis jetzt sieht es so aus:

    $aktivierungscode = mt_rand();
    
    mysql_query("INSERT INTO benutzerdaten SET aktivierungscode = '$activierungscode' WHERE Nickname = '".$_POST['username']."'")
    
    $empfaenger = "'$_POST['mail']'";
    $betreff = "Aktivierungsmail von SchülerSV.eu";
    $from = "From: Test <absender@domain.de>";
    $text = "Bitte bestätige deinen Account unter: http://www.schuelersv.eu/activated.php?code=$aktivierungscode . Viel Spaß noch !";
    
    mail($empfaenger, $betreff, $text, $from);
  5. $aktivierungscode = mt_rand();
    
    mysql_query("INSERT INTO benutzerdaten (aktivierungscode) VALUES ( '$activierungscode') WHERE Nickname = '".$_POST['username']."'")
    
    $empfaenger = $_POST['mail'];
    $betreff = "Aktivierungsmail von SchülerSV.eu";
    $from = "From: Test <absender@domain.de>";
    $text = "Bitte bestätige deinen Account unter: http://www.schuelersv.eu/activated.php?code=$aktivierungscode . Viel Spaß noch !";
    
    mail($empfaenger, $betreff, $text, $from);


    Du kannst bei INSERT nicht mit SET arbeiten!

    Beitrag zuletzt geändert: 12.5.2009 20:52:39 von cookies
  6. cookies schrieb:
    Du kannst bei INSERT nicht mit SET arbeiten!

    Dann solltest du aber mal das MySQL-Manual lesen.

    @chathc
    Es wäre ganz hilfreich noch die Zeilenummer zu wissen bzw. in welcher Zeile der Fehler auftritt.
    Das lässt uns weniger raten.
  7. Autor dieses Themas

    c****c

    tct schrieb:
    cookies schrieb:
    Du kannst bei INSERT nicht mit SET arbeiten!

    Dann solltest du aber mal das MySQL-Manual lesen.

    @chathc
    Es wäre ganz hilfreich noch die Zeilenummer zu wissen bzw. in welcher Zeile der Fehler auftritt.
    Das lässt uns weniger raten.


    Achso, der Fehler lautet:

    Parse error: syntax error, unexpected T_VARIABLE in /home/webpages/lima-city/chathc/html/seiten/anmelden.php on line 294

    Das ist im obigen Script die Zeile 7 ungefähr

    EDIT: Die Zeile 294 ist genau die Zeile:

    $betreff = "Aktivierungsmail von SchülerSV.eu";

    Beitrag zuletzt geändert: 12.5.2009 21:43:34 von chathc
  8. Ändere diese Zeile
    mysql_query("INSERT INTO benutzerdaten (aktivierungscode) VALUES ( '$activierungscode') WHERE Nickname = '".$_POST['username']."'")

    bitte in
    mysql_query("INSERT INTO benutzerdaten (aktivierungscode) VALUES ( '".$aktivierungscode."') WHERE Nickname = '".$_POST['username']."'");


    Es fehlte auf jeden Fall das Semikolon am Ende (da dürfte auch der genannte Fehler herkommen). Dann hattest du $activierungscode (also mit "c" statt "k") geschrieben.

    Gruß
    Karlja
  9. Autor dieses Themas

    c****c

    Danke es geht!

    Die Aktivierungsmail wird auch verschickt.

    Allerdings gibt es in der activated.php einen Fehler:

    Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/webpages/lima-city/chathc/html/activated.php on line 6

    Hier die Datei:

    <?php
    include ("sql.php");
    ?>
    <?php
    @mysql_query("UPDATE benutzerdaten SET activated = '1' WHERE Nickname = '".$user."' AND aktivierungscode = '$_GET['code']'");
    
    ?>


    Außerdem hätte ich gerne noch, das ein Text bei erfolgreichem Aktivieren ausgegeben wird !

    Beitrag zuletzt geändert: 13.5.2009 15:37:07 von chathc

  10. <?php
    include ("sql.php");
    ?>
    <?php
    @mysql_query("UPDATE benutzerdaten SET activated = '1' WHERE Nickname = '".$user."' AND aktivierungscode = '$_GET['code']'");
    
    ?>

    Nix mit @!
    activated = '1'

    Ist (ich geh davon aus) ein Integer. Also wäre
    activated = 1

    besser.
    '$_GET['code']'"

    Afaik kannst du auf eine GET-Variable nicht so zugreifen, dass musst du so machen:
    = '".$_GET['code']."'


    Hoffe es hilft, aber ich glaube der von dir ausgegebene Error wird damit nicht behoben...
  11. o******e

    mysql_query("INSERT INTO benutzerdaten (aktivierungscode) VALUES ( '".$aktivierungscode."') WHERE Nickname = '".$_POST['username']."'");

    Juhu, wie heißt denn die Seite?
    Sieht mir nach ner Schönen Quelle für E-Mails und Private Daten aus. :lol:

    Ne, jetzt, mal ehrlich, der Code ist so unsicher wie er grottig ist.
    Schau dir mal mindestens das hier an.

    lg
    Oleander
  12. Hallo,

    zu deiner eigenen sicherheit empfehle ich dir, nicht nur
    $_POST['username']

    zu schreiben. geschickte hacker schreiben dann da sowas als username wie ich';DROP benutzerdaten, und schon ist deine tabelle futsch. schreib lieber
    mysql_escape_string($_POST['username'])

    das schützt dich davor.

    Gruß Tillorgias
  13. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!