kostenloser Webspace werbefrei: lima-city


Email (Datenbankeintrag) prüfen. Falls vorhanden, fehleraus.

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    freedom-fighters

    freedom-fighters hat kostenlosen Webspace.

    Hallo,

    ich möchte emails in eine Datenbank eintragen.
    Allerdings sollte eine email nicht 2mal in einer tabelle sein.
    Wenn die email vorhanden ist, soll es dann die ausgabe:
    email vorhanden geben

    kennt ihr ein tut, oder ein script?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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

  3. Hallo,

    meinst du deine eigenen Mails oder Mails von Besuchern? Sollen die Mails hochgeladen werden, oder wie hast du dir das vorgestellt?

    Grüße
  4. Möchtest du ein Login mit E-Mail machen? Da kann ich dir für den Anfang das hier empfehlen. Einfach das Prinzip mit dem Usernamen auf die E-Mailadresse anwenden. Aber Achtung: Das Script ist im Aufbau relativ einfach, aber dafür auch nicht sehr sicher. Aber ich denke, dass das für den Anfang erstmal reichen sollte. Du solltest dich noch informieren, wie man das Script vor SQL-Injections schützt (das ist mit Google mal ganz schnell getan).

    Auch wenn du kein Login-Script erstellen möchtest, funktioniert das Prinzip mit mysql_num_rows() natürlich trotzdem ;)

    Beitrag zuletzt geändert: 30.1.2013 21:26:41 von fuhnefreak
  5. Autor dieses Themas

    freedom-fighters

    freedom-fighters hat kostenlosen Webspace.

    ich möchte dort für extra schutz nach Länder die Emails von mir/kunden eintragen.
    Desswegen soll eine email nur einmal vorkommen.

    (Kein Login oder sonstiges....)
  6. ich verstehe das jetzt so, dass du in einer Tabelle in deiner db E-Mail-Adressen speichern möchtest? Und jede Adresse darf nur einmal in der Tabelle vorkommen?

    Bevor eine neue Adresse in die db geschrieben wird musst die per Abfrage überprüfen, ob es diese schon in der Tabelle gibt, wenn dem so ist, kannst du deine Warnmeldung ausgeben lassen, wenn sie nicht vorhanden ist, kannst du den insert durchführen.

    Grüße
  7. Es geht wahrscheinlich um die E-Mailadresse von dir/Kunden.
    Mache dir aber zunächst mal Gedanken über die Datenbankstruktur.
    Dann realisierst du das am besten über einen Primärschlüssel in der DB.
    Bedenke auch, dass sich E-Mailadressen ändern können.

    Oder willst du auf Gleichheit der E-Mailinhalte prüfen?

    mfg,
    timebandit
  8. freedom-fighters schrieb:
    Wenn die email vorhanden ist, soll es dann die ausgabe:
    email vorhanden geben

    Was meinst Du jetzt genau? Die Emailadresse, oder eine spezielle Nachricht. Anhand deiner Erklärungen, wäre beides denkbar. Maßnahmen sähen aber für die beiden Fälle sehr unterschiedlich aus. :wink:
  9. freedom-fighters schrieb:
    ... kennt ihr ein tut, oder ein script?
    weder noch. aber ich kann dir sagen wie es geht:
    du speicherst die mails mit einer extra kolonne 'hash' ab. dort schreibst rein die ausgabe von dem hier:
    hash('sha512', <mailtext>);

    dann musst du nur mehr sagen
    <?php
    ...
    $hash = hash('sha512', <zu-vergleichender-mailtext>);
    $res = mysql_query("SELECT hash
      FROM <database>.<table>
      WHERE hash='$hash'");
    ...
    wenn dann etwas zurückkommt, dann ist das ding schon in der db drinnen (also nicht speichern!).

    das könnte man natürlich noch wesentlich eleganter und schneller machen, aber dafür müsste man einiges vom code kennen ...
  10. Autor dieses Themas

    freedom-fighters

    freedom-fighters hat kostenlosen Webspace.

    Ich möchte ien mail so wie sie ist. In einer Datenbank abspeichern!!!
    Nichts verschlüsselt oder sonst was!
    Und wenn ich diese MAil ausversehen nochmal eintragen sollte, dann soll ausgegeben werden das diese Mail schon vorhanden ist!!!!!!!

    Ich will nichts auf Nachrichten oder sonst was prügfen!!!!
  11. Hallo freedom-fighters,

    besitzt du schon ein Grundgerüst, oder willst du hier ein komplette Lösung.
    Der Aufwand für dein Vorhaben ist nicht gering.
    Als da wären:
    1. Gestaltung der Bedinungsoberfläche.
    2. Laden einer E-mail in ein Textfeld (oder soll das über COPY & PASTE sein?).
    3. Datenbankabfrage.
    4. Ausgabe eines Hinweises.

    Die Punkte 3 und 4 stellen kein wirkliches Problem dar.

    mfg,
    timebandit
  12. Autor dieses Themas

    freedom-fighters

    freedom-fighters hat kostenlosen Webspace.

    1 --> Kein Problem
    2,3 --> Ka. ich möchte das einfach in ein input eingeben und das denn abspeidchern, aber so das jede email nur einmal in der tabelle ist
    4 --> einfach mit if/else oder?
  13. Hallo freedom-fighters,

    hier mal etwas Code:
    <form action="<?php echo "http://".$_SERVER["SERVER_NAME"].$_SERVER["SCRIPT_NAME"]; ?>" method="post">
      <textarea name="amail" cols="50" rows="10">
      </textarea>
      <input type="submit" value="E-Mail check"></form>
    <?php if(!empty($_POST))    // Es wurde etwas übertragen
    {
    // Zugangsdaten zu DB müssen individuell angepasst werden
    $hostname = "XXXXXXX";
    $user = "XXXXXXX";
    $passwort = "XXXXXXX";
    $database = "XXXXXXX";
    $connect = mysql_connect($hostname, $user, $passwort) or die(mysql_error());
    mysql_select_db($database, $connect);
    $mail=$_POST['amail'];
    $sql = sprintf("SELECT [dein Tabellenspaltenname] FROM [deine Tabelle WHERE [dein Tabellenspaltenname]='%s'",$mail);
    $result = mysql_query($sql);
                  if(!$result) {
                                     die("Fehler in der SQL : ".mysql_error());
                                     }
                    else { 
                             // Es  gab mindestens einen Treffer
                             echo "Die E-Mail ist  bereits in der DB vorhanden"; // Ausgabe sollte angepasst werden
                            }
                 
    }                
    ?>

    Dieser Code soll nur eine Arbeitsgrundlage für dich sein.
    Optimierungsmöglichkeiten bestehen auf alle Fälle.
    Baue den Code in deinen <body> und lade alles als PHP-Datei auf deinen Webspace.
    Viel Erfolg.
    mfg,
    timebandit
  14. h**s

    hui da wird die datenbank aber ganz schön ins ächtzen kommen...

    der erste (und sicherlich nötige) schritt zur optimierung wäre sicherlich, wie czibere schon genau richtig sagte, nicht den text der email auf vorhandensein zu vergleichen, sondern lediglich eine prüfsumme dieses textes, also den oben beschriebenen hash, und das hat nichts mit verschlüssellung oder so zu tun - es sorgt einfach nur dafür das die abfrage um ein vielfaches schneller läuft.
  15. Autor dieses Themas

    freedom-fighters

    freedom-fighters hat kostenlosen Webspace.

    mir ist eigtl. egal wie schnell das leuft, hauptsache es tut es. ;)

    Danke an alle und danke besonderst an timebandit
  16. freedom-fighters schrieb:
    mir ist eigtl. egal wie schnell das leuft, hauptsache es tut es. ;)Danke an alle und danke besonderst an timebandit
    recht beeindruckend, wie gewisse leute mit resourcen umgehen. es kann ja sein, dass emails sehr (sehr!) groß werden. teils, weil die leute vollidioten sind und einander paar nakten ärsche zu mailen (hochauflösend natürlich ;), oder weil die sache sich wie ein strudelteig verhält und es schon bei 850. antwort o. gegenantwort anlangt (ein ende ist noch immer nicht abzusehen).

    willst noch immer GB mit GB vergleichen? statt paar zeichen?? es könnte sein, dass dir dann irgendwann irgendein hoster (womöglich lima?) auf die pranken haut. und das ist dann auch zu begrüßen - du resourcenfresser ;) [gilt auch für timebandit]

    Beitrag zuletzt geändert: 1.2.2013 12:42:08 von czibere
  17. Autor dieses Themas

    freedom-fighters

    freedom-fighters hat kostenlosen Webspace.

    hmm sollte das mal kommen werde ich mir wol einen server oder webspace mieten müssen ;)
  18. freedom-fighters schrieb:
    hmm sollte das mal kommen werde ich mir wol einen server oder webspace mieten müssen ;)
    anstatt etwas zu lernen, ist auch eine lösung, auf biegen und brechen geld ausgeben für etwas o. sogar alles. was hast du eigentlich gegen ein hash?
  19. Autor dieses Themas

    freedom-fighters

    freedom-fighters hat kostenlosen Webspace.

    nichts.
    Aber iich möchte das einfach so einfach wie möglich!!!ich will nichts verschlöüsseln nichts garnichts!!!!!
    Ich möchte einfach nur das ich eine mail eintragen kann jund das der beim eintragen prüft ob diese mail schon vorhanden ist und wenn der vorhanden ist dann soll der ne fehlermeldeung machen!!!!
  20. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    freedom-fighters schrieb:
    ich will nichts verschlöüsseln nichts garnichts!!!!!
    Hashen ≠ verschlüsseln!

    Wenn du etwas verschlüsselst kannst du später mit dem entsprechenden Schlüssel den Originaltext wieder gewinnen. Bei einem Hashwert ist dies nicht möglich. Ein Hashwert wird nur benutzt um zu prüfen ob 2 Texte vollkommen gleich sind, weil genau dann sind auch die Hashwerte gleich.

    Und falls du es immer noch nicht glauben möchtest: einen Hashwert berechnen und später vergleichen ist wesentlich schneller als jedes Mal in der DB alle kompletten E-Mail-Texte zu vergleichen.

    Beitrag zuletzt geändert: 1.2.2013 13:13:21 von hackyourlife
  21. Autor dieses Themas

    freedom-fighters

    freedom-fighters hat kostenlosen Webspace.

    naja is jetzt auch egal ein netter user hat mir ein schickes tut geschickt.
    Danke an tecfreak
  22. 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!