Nico: Virtueller Server mit Domain gesucht + Frage nach SQL mit Perl

Hi Surfer!

Ein Freund von mir und ich haben einen Chat designed, und ihn auch schon probehalber online gesetzt. Er läuft an sich sehr gut, nur ist der Server sehr langsam. Jetzt suchen wir einen wirklich guten virtuellen Server mit Domain, CGI, mind. 50 MB Webspace, der relativ schnell ist und selten ausfällt. Die Daten sollten auf Erfahrungswerten beruhen. Etwa bei www.webdesign-net.de, das echt ein tolles Angebot ist, hat ein
Freund von mir einen Chat gehabt, der permanent serverseitig abgestürzt ist. Wenn das Angebot auch noch höchstens 300 DM pro Jahr kostet, wäre es super.

Zweistens: Für diesen Chat, der schon relativ sicher ist, wollen wir nun auch MySQL in Perl einsetzen. Dazu haben wir folgendes Script:
-------------------------------------
#!/usr/bin/perl

use DBI;

Daten

Server

$host = "localhost";

Benutzer

$user = "root";

Passwort

$password = "DASPW";

Datenbank

$database = "chat";

Datensatz/Tabelle

$table = "normal";

Zur Datenbank verbinden

$dbh = DBI->connect("DBI:mysql:$database:$host", $user, $password, { PrintError => 0}) die "Can't connect: $DBI::errstr";

Neue Tabelle erstellen

BLOB = CaseSensitives Textfeld ; TEXT = In-CaseSensitives Textfeld

#$SQL = "CREATE TABLE $table (alias BLOB, pw BLOB, email BLOB)";

Feld löschen

#$SQL = "DELETE FROM $alias WHERE Alias = 'asd'";

Etwas in Feld packen

#$SQL = "INSERT INTO $alias (alias, pw, email) VALUES ('$alias', '$pw', '$email')";

Etwas aus Tabelle raussuchen

#$SQL = "SELECT * FROM $alias WHERE alias like ''";

... und nun mit Sortierung...

#$SQL = "SELECT * FROM $alias WHERE alias like '%$search_for%' ORDER BY $sort";

... und mit Limit

#$SQL = "SELECT * FROM $alias WHERE alias like '%$search_for%' LIMIT 0,30";

Feld erneuern

#$SQL = "UPDATE $alias SET alias = '$field'";

Tabelle löschen

#$SQL = "DROP TABLE $table";

Datenbank löschen

#$SQL = "DROP DATABASE $database";

if ($SQL ne "") { &doSQL; }

Subroutine

sub doSQL {
print "query: $SQL\n";
$dbh->do("$SQL") die $DBI::errstr;
}

Verbindung zur Datenbank trennen

$dbh->disconnect;
---------------------------------------
Wie kann ich nun die einzelnen Werte einer Zeile (pro Benutzer wollen wir je eine Datenbank erstellen, also für Benutzer1 die Datei Benutzer1, für Benutzer2 die Datei Benutzer2 etc.) je einer
Variable zuweisen? Also dass der Spaltenwert von email auch in der Variable $email steht?

Wenn Rückfragen sind, könnt ihr die auch stellen! ;)

Danke im Voraus, Nico!

  1. Ein Freund von mir und ich haben einen Chat designed, und ihn auch schon probehalber online gesetzt. Er läuft an sich sehr gut, nur ist der Server sehr langsam. Jetzt suchen wir einen wirklich guten virtuellen Server mit Domain, CGI, mind. 50 MB Webspace, der relativ schnell ist und selten ausfällt. Die Daten sollten auf Erfahrungswerten beruhen. Etwa bei www.webdesign-net.de, das echt ein tolles Angebot ist, hat ein
    Freund von mir einen Chat gehabt, der permanent serverseitig abgestürzt ist. Wenn das Angebot auch noch höchstens 300 DM pro Jahr kostet, wäre es super.

    CGI-Chatsysteme sind bei Providern prinzipiell nicht gerne gesehen, da sie die Server oft unangemessen auslasten, zumindest wenn sie stark frequentiert werden. Mit einem Etat von 300 DM jährlich wirst Du es vermutlich schwer haben, einen geeigneten Provider zu finden.

    Wie kann ich nun die einzelnen Werte einer Zeile (pro Benutzer wollen wir je eine Datenbank erstellen, also für Benutzer1 die Datei Benutzer1, für Benutzer2 die Datei Benutzer2 etc.) je einer

    Uah! Das ist ja ein völlig abstruser Ansatz. Du solltest die Datensätze zeilenweile in einer Tabelle oder in einer Relation von Tabellen speichern.

    Peter

    1. Hallo Peter!

      CGI-Chatsysteme sind bei Providern prinzipiell nicht gerne gesehen, da sie die Server oft unangemessen auslasten, zumindest wenn sie stark frequentiert werden. Mit einem Etat von 300 DM jährlich wirst Du es vermutlich schwer haben, einen geeigneten Provider zu finden.

      Nun ja, ich kenne www.prosite.de, da haben wir den im Moment, der kostet 20 DM pro Monat und sonst garnichts. Nur ist der halt eben sehr langsam, und wenn mal 30 Chatter oder mehr, wie wir erwarten, da sind, werden die zwar nichts dagegen haben, aber das wird elend langsam. webdesign-net.de hat auch nichts dagegen, nur ist der Chat die ganze Zeit down. Und server4you.de, wo ein anderer meiner Internet-Freunde seinen Chat hat, ist relativ teuer, und für Privatpersonen sehr teuer, wenn sich nicht mindestens 5 Leute finden, die die Kosten untereinander aufteilen... Wir wären jetzt höchstens zu dritt...

      Uah! Das ist ja ein völlig abstruser Ansatz. Du solltest die Datensätze zeilenweile in einer Tabelle oder in einer Relation von Tabellen speichern.

      Nun ja, es garantiert mehr Sicherheit für den einzelnen User, da jemand, wenn er es schaffen sollte, die Datenbank zu bekommen, höchstens die Userdaten dieses Einzelnen herauszubekommen, und nicht direkt alle.

      Desweiteren kenne ich mich mit Datenbanken bisher wenig aus und tue gerade meine ersten Schritte in PHP3 damit, wo das relativ einfach ist. Laut meines Wissens sieht ja der Inhalt einer Datenbank in etwa so aus:

      Bezeichnung d. Spalte NameBez. d. Sp. PWBez. d. Sp. eMail

      Diese Zeilen stehen da so ja nicht drin, oder?

      User1                     passwort1     user1@user1.de  
      User2                     passwort2     user2@user2.de  
      etc.

      Und wenn ich es so mache, was vielleicht wirklich sinvoller ist, wie kann ich dann einen Vergleich mit den Daten machen? Wenn man die Lösung mit der einzelnen Datenbank nimmt, kann man die Abfrage, ob der User überhaupt existiert, ja erst einmal mit
      if(-e $hash{'name'})
      machen (wobei in %hash die Formulardaten stehen). Wie kann ich das nun mit der gesamten Datenbank machen, und wie kann ich dann überprüfen, ob das Passwort richtig ist (mit meinem Script da)? Die eMail-Adresse etc. (es kommen weitere Daten hinzu) sind für interne Zwecke gedacht.

      Also, allgemein *g* gesagt: Wie kann ich die Datenbank durchlaufen, was wir in einer textbasierten Datenbank, die wir bisher hatten, mit

      open(DATEI, "<daten.dat");
      @dat = <DATEI>;
      for(@dat)
      {
      ($name, $pw, $email) = split(/\t/, $_);
      if($hash{'name'} eq $name && $hash{'pw'} eq $pw)
      {
      $login = 1;
      last;
      }

      else
      {
      $login = 0;
      }
      }
      close(DATEI);

      realisiert haben?

      Ich hoffe, du hast genug Zeit, das durchzulesen... ;)

      Tschau, Nico!

      1. Bezüglich virtuellen Server
        www.internet-outsourcing.de

        mfg
        Hunold