Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Probleme bei UPDATE in mysql per PHP

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] Probleme bei UPDATE in mysql per PHP

    Hallo,

    nun habe ich an diesem Wochenende schon viel umgesetzt bekommen, jedoch an einem Punkt hänge ich nun fest.

    User bekommt eine Mail mit Bestätigungslink - das habe ich hin bekommen.
    User soll durch anklicken des Links seinen Status in der SQL-Datenbank auf "aktiv" stellen.

    Leider nimmt meine Datenbank das nicht an.

    Bestätigungslink sieht wie folgt aus:
    http://www.meineseite.de/auswertung.php?ID=EMailadresse

    Script (auswertung.php):

    <?php

    if (isset($_GET['Email']))
    {
    mysql_connect('localhost', 'Benutzername', 'Passwort');
    mysql_select_db('Datenbank');
    mysql_query("UPDATE Tabellenblatt SET Status=aktiv WHERE EMail='".$_GET['EMail']."'");
    }
    echo "Vielen Dank. Ihr Konto ist nun aktiv!.";
    ?>


    Die "echo"-Seite wird angezeigt.
    In der Spalte "Status" passiert jedoch nichts.

    Nun, ist der Fehler im PHP-Script oder habe ich in der SQL-Datenbank einen Fehler. Wenn DB, dann muss ich dort suchen.

    Jetzt schon meinen besten Dank für Eure hilfreichen Tipps.
    Und immer dran denken, bin Anfänger...


  • #2
    Hallo und Willkommen im Forum!

    Ich habe das mir zum Beispiel so gelöst und es funktioniert einwandfrei!
    Musst das nur auf deine Bedingungen anpassen!

    PHP-Code:
    $sqlbefehl ="
       Select 
        Count(*) As code_anzahl 
       From 
        
    $tab_user 
       Where 
        code='"
    .mysql_real_escape_string($_GET['code'])."'
       "
    ;
    $ergebnis mysql_query($sqlbefehl)or die(mysql_error().$sqlbefehl);
    $row mysql_fetch_array($ergebnis);
    if(
    $row['code_anzahl'] >0)
    {
     
    $view 1;
     
    $leer "";
     
    $sqlbefehl ="
        Update 
         
    $tab_user 
        Set
         view='"
    .intval($view)."',
         code='"
    .mysql_real_escape_string($leer)."' 
        Where 
         code='"
    .mysql_real_escape_string($_GET['code'])."'
        "
    ;
     
    $result mysql_query($sqlbefehl)or die(mysql_error().$sqlbefehl);

    Ich mache das mit einem vorher in der Registrierung zufällig generierten Code!

    Vieleicht hilft es dir!

    mfg der litter
    Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
    http://www.lit-web.de

    Kommentar


    • #3
      @Pit_php
      Witzbold! Du mußt natürlich den GET Parameter aus der Bestätigungsmail benutzen...
      --

      „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
      Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


      --

      Kommentar


      • #4
        Zitat von Pit_php Beitrag anzeigen
        Nun, ist der Fehler im PHP-Script oder habe ich in der SQL-Datenbank einen Fehler. Wenn DB, dann muss ich dort suchen.
        Das kannst du selber einfach raus finden: wenn es ein DB-Fehler ist, wird dir mysql_error() eine Fehlermeldung anzeigen, sonst wird bei error_reporting(E_ALL) eine PHP-Meldung generiert. Steht beides in den Forumsregeln.
        Gruss
        L

        Kommentar


        • #5
          PHP-Code:
          $email $_GET['ID'];
          // Überprüfen, ob das eine gültige Emailadresse ist
          ...

          mysql_query("UPDATE Tabellenblatt SET Status='aktiv' WHERE EMail='$email'"); 
          PHP-Code:
          if ($var != 0) {
            
          $var 0;

          Kommentar


          • #6
            if (isset($_GET['Email']))
            woher bekommst du denn $_GET['Email']?

            http://www.meineseite.de/auswertung.php?ID=EMailadresse jedenfalls nicht

            die Lösung ist einfach: dat dingens heisst $_GET['ID']

            Kommentar

            Lädt...
            X