Beiträge von Stef

    Hey,

    Ja da habe ich es versucht, aber die schicken mir nur links zu faq und sagen das ich anrufen soll. Und im FAQ habe ich ehrlich bis jetzt keine Zeit gehabt nachzuschauen mach ich diese woche oder heute/morgen nochmal.

    Deine Hashid lautet : 0f3f63bdf2199dc377059e6f5b48a61f
    in der Session steckt die eingegebene email von Formular, d.h. bei dir : -----

    Habe deine Änderungen durchgeführt und nochmal es getestet:

    Es kommt weiterhin die Fehlermeldung.

    Meine Hashid ist in db : 0ea4abb2a3ca3316259da3ff4d7c532a
    in der url : 0ea4abb2a3ca3316259da3ff4d7c532a
    die selbe eigentlich.

    Das ist die url zu meinem link : http://apple231.bplaced.net/Registriervorg…59da3ff4d7c532a

    Das script der Seite wo den urlhashwert mit dbhashwert vergleicht :

    Bei dir gehts ja. Aber warum jetzt nicht bei mir?

    Gruß,
    Stef

    Hey,

    hier ist der Link der Registrationsseite : http://apple231.bplaced.net/Registriervorgang/registrieren.php
    (kenn deine email nicht)

    Ich sende es mit der mail() function als html-mail, habe es zwar mit php mailer probiert aber es hat nicht geklappt da ich nicht alle daten hatte und ich rufe doch nicht bei meinem email anbieter an, welchser pro minute 4 € verlangt um meinen port rauszubekommen. Ich werde ´mich in nächster Zeit nochmal daran setzen.

    Gruß,
    Stef

    Hey,

    zu deinem HTML-Teil:

    Wenn du input-elemente beschreiben willst benutze den label-tag. Der ist dazu da diese input felder zu beschreiben.
    -> siehe : http://www.w3schools.com/tags/tag_label.asp


    Was machst du da mit dem attribut : font face ?

    Wenn du jedem Element in deinem html-teil die schriftart arial geben möchtest kannst du ganz easy im css den * Selektor verwenden welches das ganze dokument anspricht und da kannst du dann die schriftart mit : font-family: Arial,sans-serif; einstellen. Die 2. Schriftart wird erst aktiv wenn die 1.ste nicht vorhanden ist

    Wenn du ein unsichtbares input feld erstellen willst brauchst du das css wie in deinem Beispiel nicht. Du kannst es da einfach so machen:

    HTML
    <input type="hidden" name="schutz" value="schonabgesendet">

    Mit dem könntest du z.b. mit php abfragen ob formular bereits schonmal aufgerufen wurde, weil dieses feld gibt die value erst aus wenn das formular abgesendet wurde.
    Es gibt sehr viele Möglichkeiten in php dies zu machen. Aber dies ist für den anfang die leichteste.

    Zu diesem PHP-Mailer kann ich dir nicht helfen.


    Gruß,
    Stef

    Hey,

    ja ok. Etwas ungeschickt von mir.

    Hier der ganze code:

    Dann wird beim bindparm die var useremail mit dem Wert in der Spalte Hashid gegeneinandergestellt und verglichen ?
    Gruß,
    Stef

    Hey,

    naja egal jetzt.

    Ah ok. Danke jetzt kommt der error nichtmehr, jedoch wird nichts ausgegeben auf der Seite..

    Meine Ausgabe sieht wie folgt aus :

    Weiß nicht warum.

    Vielen Dank!

    Stef

    Hey,

    doch die kommen wirklich aus meinem Script..

    Aso, ja das stimmt.

    Ok. Nein $check nutze ich wie du es mir oben in dem script gecodet hast.

    PHP
    $check = explode( '$', $_SERVER['QUERY_STRING'] );

    Ja mein Problem war ja dies, dass ich noch nicht überprüft habe ob es den selben Datensatz gibt, ich wusste ja nicht wie ichs machen soll.

    Paar Fragen:

    Was macht den ___DIR___ ?

    PHP
    $statement = $pdo->prepare("SELECT hashid FROM Registrierdaten WHERE benutzeremail = ?" );


    Warum wird da ein ? genommen als value der email ?

    PHP
    $statement->bindParam( 0, $userEmail, PDO::PARAM_STR );


    Was macht denn diese Zeile ?

    Vielen Dank schonmal :)

    EDIT:

    Habe nun deins getestet und es kommt folgender error wie bei mir :

    Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: Columns/Parameters are 1-based' in /users/apple231/www/Registriervorgang/registration_weiterleitung.php:38 Stack trace: #0 /users/apple231/www/Registriervorgang/registration_weiterleitung.php(38): PDOStatement->bindParam(0, 'Hans.klais...', 2) #1 {main} thrown in /users/apple231/www/Registriervorgang/registration_weiterleitung.php on line 38

    Gruß,
    Stef

    Hey,

    so ne richtige Ahnung habe ich nicht. Hab ich ja auch gesagt weil ichs noch nie gemacht habe und nicht weiß wies geht.

    Aber das ist ja klar wenn ich mit === auf den Typ prüfe das da eigentlich nichts ausgegeben wird. Da das eine ein array und das andere kein array ist.

    Habe nun die 3 vars ($statement, $check, $result) ausgeben lassen. Das kommt raus:

    statement: object(PDOStatement)#2 (1) { ['queryString']=> string(73) "SELECT hashid FROM Registrierdaten WHERE benutzername = "Stef Hunnington"" }
    result: bool(true)
    check:array(1) { [0]=> string(64) "a1d22d92f96a0bb64032aaf25ebb9b68b6b98122e755fa7406e03a5f0a73fd1d" }

    Jetzt fehlt da noch die hashid von Datenbank..Eine typsichere vergleichung ist doch da sinnvoll. Wie könnte man es dann sonst machen ?

    Abenteuerlich ? :D

    Stef

    Hey,

    ich glaube den Fehler gefunden zu haben in sql statement es waren die anführungszeichen..

    Nun das nächste Problem. Es kommt zwar kein error mehr aber es wird nichts ausgegeben.

    Die Ausgabe mache ich so:

    PHP
    <?php 
                            if(isset($antwort) && count($fehler) === 0)
                            {
                                echo $antwort; 
                            } else if (isset($fehler) && count($fehler) > 0){
                                implode('<br>',$fehler) ;
                            }
                        ?>

    Warum gibt der da nix aus ?

    Gruß,
    Stef

    Hey,

    Mein aktueller Stand sieht wie folgt aus:

    PHP wirft mir dabei immer diese Exception :


    Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42S22]: Column not found: 1054 Unknown column 'rere' in 'where clause'' in /users/apple231/www/Registriervorgang/registration_weiterleitung.php:38 Stack trace: #0 /users/apple231/www/Registriervorgang/registration_weiterleitung.php(38): PDO->prepare('SELECT hashid F...') #1 {main} thrown in /users/apple231/www/Registriervorgang/registration_weiterleitung.php on line 38


    Das heißt, das die spalte nicht gefunden worden ist. Ich sag selektiere/wähle die spalte hashid aus wo benutzername ist $user. ($user ist der Session Benutzername dieser wiederum ist der Benutzername der eingegeben worden ist.) Aber wie kann es sein ?

    Und wie ich es nun vergleichen soll. Hab ich nochnicht gemacht.
    Sollte man da mittels fetch die einzelne Spalte durchgehen und dann in dieser bedingung die if statements reinmachen ?

    Gruß,
    Stef

    Hey,

    ich habe nun mal die Datenbankverbindung aufgebaut und die ganzen Daten speichern lassen.

    Mein aktueller Stand:

    Da habe ich nun eine id die sich immer ändert. Und diese wird dann der email hinzugefügt als url parameter. Nun muss ich ja noch die hashid die bei der Regestration abgespeichert wird überprüfen ob email und hasid zusammenpassen.
    Aber wie mache ich es jetzt ? Ich habe gedacht eine weiteres statement die hashid und email selektieren, um dann zu überprüfen ob die zusammenpassen.

    Komisch die hash id bleibt immer gleich... Soll doch nicht ??? Mit uniqid(); erstellt man doch unterschiedliche ids ?? Mit hash(); weiß ich nicht wie ichs machen soll. Was soll man denn da hashen lassen ? Weil es gibt keine hash function die ohne werte einen hash-wert erstellt glaube ich. Habe bisher keine gefunden.

    Ich möchte, dass wenn jemand sich registriert noch nicht sich einloggen kann. Erst wenn dieser die Bestätigungsmail geklickt hat.
    Wenn ich nun aber die hashid schon in db speichere ist es doch unnötig des zu vergleichen. Weil der User eh sich einloggen kann.

    Aber wie soll ich denn rausbekommen ob der User den Link geklickt hat ?

    Gruß,
    Stef

    Hey,

    ok. Ich würde dann es so machen:

    1. Besucherzähler mit txt-file speicherung.
    2. Dann die date()-funktion abfragen ob der Tag 1 ist z.b. so :

    PHP
    $zeit = date('m');
    if($zeit === '01')
    {
    
    
    }


    3. Dann wenn 01 zutrifft in der Bedingung die File öffnen eine neue zeile anfangen und da dann weiterzählen lassen mit angabe des datums


    Stef