Ergebnis 1 bis 18 von 18

Thema: freesql.org

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1

    freesql.org

    Hi,
    ich möchte mich nun bei http://www.freesql.org/ anmelden.
    Mein Problem dabei ist, dass ich nicht weiß, was ich bei "Account Creation code" angeben muss.
    Hat vll. jemand mit dem ganzen schon Erfahrung?

  2. #2
    Zitat Zitat
    Database npcfighterdb created
    The permissions have been set on npcfighterdb
    Ich hab einfach irgendwas eingegeben. Scheint dann sowas ähnliches wie ne "Kunden" Nummer zu sein. Geht also auch so, tipp ne Nummer ein und die restlichen Daten und fertig. ^^

  3. #3
    thx!

    dann kann ich endlich mal mit meinem Newssystem weitermachen

  4. #4
    Wie greife ich jetzt eigentlich genau auf eine solche Datenbank zu, also, welche Adresse ist das genau?

    und was genau kommt dann in

    $host, $user, $pass und $db

    wenn

    $link = mysql_connect($host, $user, $pass);
    mysql_select_db($db) or die("Auswahl der Datenbank fehlgeschlagen");

    ist?

    edit: sry, hat sich erledigt

    Geändert von Niji-chan (09.10.2005 um 15:52 Uhr)

  5. #5
    Zitat Zitat von Niji-chan
    Wie greife ich jetzt eigentlich genau auf eine solche Datenbank zu, also, welche Adresse ist das genau?

    und was genau kommt dann in

    $host, $user, $pass und $db

    wenn

    $link = mysql_connect($host, $user, $pass);
    mysql_select_db($db) or die("Auswahl der Datenbank fehlgeschlagen");

    ist?
    Host könnte freesql.org sein. Zumindest bekomm ich da auf Port 3306 eine Antwort.
    $user dein username mit dem du dir da eine Datenbank angelegt hast, $pass dein Kennwort und $db der Datenbankname den du auf freesql.org eingegeben hast.

  6. #6
    soa, ich kann jetzt rein theoretisch drauf zugreifen...

    ich bekomme folgende Fehlermeldung:
    Zitat Zitat
    Anfrage fehlgeschlagen: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ''myblog' WHERE 'id' = 1' at line 1
    Woran kann das liegen?

    PHP-Code:
    $username "***";
            
    $password "***";
            
    $tabelle "***";
            
    $db mysql_connect("freesql.org"$username$password)
               or die(
    "Keine Verbindung möglich: " mysql_error());
            echo 
    "Verbindung zum Datenbankserver erfolgreich";
            
    mysql_select_db($tabelle) or die ("Auswahl der Datenbank fehlgeschlagen");
            
            
    $query "SELECT * FROM myblog";
            
    $result mysql_query($query) or die ("Anfrage fehlgeschlagen: " mysql_error());
            
            while (
    $line mysql_fetch_array($resultMYSQL_ASSOC)) {
              
    $abfrage "SELECT 'titel' FROM 'myblog' WHERE 'id' = 1";
              
    $abfrage2 mysql_query($abfrage) or die ("Anfrage fehlgeschlagen: " mysql_error());
              
    $ergebnis mysql_result($abfrage2);
              echo 
    $ergebnis;
            } 
    vor allem bin ich mir bei der korrekten Abfrage noch unsicher...

    wahrscheinlich müsste da eher
    PHP-Code:
    $abfrage "SELECT 'titel' FROM 'myblog' WHERE 'id' = 1";
              
    $ergebnis mysql_result($abfrage); 
    hin?

  7. #7
    Die While-Schleife erscheint mir unnötig.

    So sähe das bei mir aus:
    PHP-Code:
            $username "***";
            
    $password "***";
            
    $db_name "***";
            
    $db mysql_connect("freesql.org"$username$password)
               or die(
    "Keine Verbindung möglich: " mysql_error());
            echo 
    "Verbindung zum Datenbankserver erfolgreich";
            
    mysql_select_db($db_name) or die ("Auswahl der Datenbank fehlgeschlagen");

              
    $abfrage "SELECT * FROM myblog WHERE id = '1'";
              
    $abfrage2 mysql_query($abfrage) or die ("Anfrage fehlgeschlagen: " mysql_error());
              while(
    $ergebnis mysql_fetch_array($abfrage2)){
                echo 
    $ergebnis[titel];
              } 
    Achte darauf wie ich die Apostrophe gesetzt hab.
    Außerdem hab ich eine andere Struktur gewählt, deine verschachtelte Abfrage erschien mir unnötig kompliziert und Performanceverschwendend.
    Desweiteren lass ich durch das Jokerzeichen * alle Felder der Tabelle myblog ansprechen. Das erscheint mir sinnvoll, da ich denke, das du vor hast ein Blog zu scripten. Ich gehe davon aus das ein Blogeintrag nicht nur aus einem Titel, sondern auch aus weiteren feldern bestehen wird.

    $tabelle ist übrigens unglücklich gewählt. Das ist nicht eine Tabelle die du auswählst, sondern eine Datenbank.
    Eine Datenbank ist eine Ansammlung von Tabellen (z.B. myblog) welche wiederrum aus Spalten (Feldern) und Zeilen (Datensätzen) bestehen.
    Datenbanken werden vom Datenbankserver (MySQL z.B.) verwaltet und zugänglich gemacht.
    Du musst also zuerst die Datenbank wählen. Ein MySQL-User kann auch mehrere Datenbanken besitzen, deshalb musst du ind einem Script definieren auf welche deiner Datenbanken zu zugreifen willst. Das geschieht mit mysql_select_db().

    Dein Fehler lag vermutlich in den falsch gesetzten Apostrophes.

    Geändert von Chocwise (09.10.2005 um 17:34 Uhr)

  8. #8
    ok, jetz funktioniert alles...

    um mehrere Blogeinträge anzuzeigen, benutze ich jetz eine if-Abfrage. klappt soweit.


    manchmal dauert das Laden des Inhalts zwar etwas, aber das liegt wohl eher an freesql...

    Momentan stehen zwar nur Testeinträge drin, aber hier mal der Link:
    http://www.simghost.de/skizzen/home.htm

    (das soll keine Werbung sein)

    Das Menü wird auch noch abgeändert.

    Jetzt möchte ich ein Eingabescript schreiben, wodrauf man nur zugreifen kann, wenn man Passwort und Benutzernamen kennt.
    Diesbezüglich würde ich mal gerne wissen, was es da für "sichere" Möglichkeiten gibt.

  9. #9
    Zitat Zitat von Niji-chan
    ...

    Jetzt möchte ich ein Eingabescript schreiben, wodrauf man nur zugreifen kann, wenn man Passwort und Benutzernamen kennt.
    Diesbezüglich würde ich mal gerne wissen, was es da für "sichere" Möglichkeiten gibt.
    Für ein Blog reicht ein .htaccess-Schutz. Dazu erstellst du einen neuen Ordner auf deinem Webspace in welchem du die Scripte packst über die man das Blog verwalten können soll.
    In den Ordner hinzu packst du dann die .htaccess und die .htpasswd-Datei wie auf SelfHTML beschrieben.

    Für Redaktionelle Systeme mit mehreren Mitarbeitern würd ich ein Sessionsystem empfehlen. Aber das ist hier IMO too much.

    EDIT: Hmja. Im SelfHTML-Tut ist scheinbar keine Erwähnung der .htpasswd-Datei.
    Hier ein Beispiel:
    Zitat Zitat von .htaccess-Datei
    AuthType Basic
    AuthName "AdminCP"
    AuthUserFile /pfad/zur/.htpasswd
    require user Niji
    Zitat Zitat von .htpasswd-Datei
    Niji:60lwxfC9Ln84g
    Das Kennwort verschlüsselt bekommst du im SelfHTML-Tut.

    Geändert von Chocwise (09.10.2005 um 20:13 Uhr)

  10. #10
    ok, ich machs jetzt mit .htaccess

    Neues Problem:

    Ich möchte, dass meine Leser die einzelnen Beiträge kommentieren können.

    Die Comments kann ich unter meinem jeweiligen Beitrag ohne Probleme erscheinen lassen, aber erstmal müssen die diese ja auch verfassen können.
    Ich möchte dazu ein Pop-Up öffnen lassen, nachdem man auf "Comment verfassen" geklickt hat, in dem man dann Namen und Nachricht hinterlassen kann.
    Soweit so gut. An der Eingabe an sich scheitert es ja auch nicht, aber wie übergebe ich jetzt per Link die $id vom jeweiligen Beitrag?
    Muss ich da etwa mit einem Formular arbeiten, oder wie geht das am Besten?

    PHP-Code:
    echo "<p>Comments zu diesem Eintrag // (Comment verfassen)</p>"
    So, sieht der Code momentan aus.
    Ich möchte also jetzt die Möglichkeit haben, zu diesem Eintrag speziell einen Kommentar zu hinterlassen.

    Und so sieht die Ausgabe der Comments aus:
    PHP-Code:
    if (mysql_num_rows($result2)>0) {
                  for (
    $a=0$a mysql_num_rows($result); $a++) {
                    
    $autor mysql_result($result2$a"autor");
                    
    $inhalt mysql_result($result2$a"inhalt");
                    
                    echo 
    "<p>von: ";
                    echo 
    $autor;
                    echo 
    "<br>\n";
                    echo 
    $inhalt;
                    echo 
    "</p>\n";
                  }
                } 

  11. #11
    Zitat Zitat von Niji-chan
    ok, ich machs jetzt mit .htaccess

    Neues Problem:

    Ich möchte, dass meine Leser die einzelnen Beiträge kommentieren können.

    Die Comments kann ich unter meinem jeweiligen Beitrag ohne Probleme erscheinen lassen, aber erstmal müssen die diese ja auch verfassen können.
    Ich möchte dazu ein Pop-Up öffnen lassen, nachdem man auf "Comment verfassen" geklickt hat, in dem man dann Namen und Nachricht hinterlassen kann.
    Soweit so gut. An der Eingabe an sich scheitert es ja auch nicht, aber wie übergebe ich jetzt per Link die $id vom jeweiligen Beitrag?
    Muss ich da etwa mit einem Formular arbeiten, oder wie geht das am Besten?

    ...
    Ohne dir auf die Füße treten zu wollen: Weißt du schon etwas mit EGPCS-Variablen anzufangen?
    Die Übergabe von Variablen an ein Script kann auf unterschiedlichen Wegen erfolgen:
    Enviroment: Sowas wie $REMOTE_ADDR um die IP eines Clients auszulesen, oder $HTTP_REFERER welche den Referer enthält.

    Get: Das Dingen was du suchst. GET ist die Methode der Wahl wenn man Variablen mit der URL übergeben möchte. In der URL schaut das dann z.B. so aus: http://domain.tld/script.php?variabl...ar=nocheinwert
    Innerhalb eines Scripts greift man eine solche Variable dann so ab:
    echo $_GET[variable]." und ".$_GET[nocheinevar];
    oder auch einfach:
    echo $variable." und ".$nocheinevar;
    wenn register_globals öhm... on sind... war das glaub ich.

    Post: Die Post Variablen sind jene die per Formular übergeben werden. Aber die kennst du bereits. Der superglobale Arry dafür ist: $_POST[variable]

    Cookie: Joa, auch Cookies sind im Grunde nur ein Weg um ein Variable/Wert-Paar an ein Script zu übergeben. Der superglobale Array: $_COOKIE[variable]

    Server: Die Server-Variablen enthalten Serverseitige Informationen wie z.B. $_SERVER[PHP_SELF] bzw. $PHP_SELF welches den Dateinamen des gerade ausgeführten Scripts enthält.


    Hier das Beispiel eines Codes:
    Das hier in den <head>-Bereich deiner Scriptseite:
    PHP-Code:
    <script language="JavaScript">
        function 
    popup(LOCATION) {
             
    window.open(LOCATION,"kommentieren","width=300,height=500,scrollbars=no");
             }
    </script> 
    <a href="javascriptopup('script.php?site=topnews')">
    PHP-Code:
    if (mysql_num_rows($result2)>0) {
                  for (
    $a=0$a mysql_num_rows($result); $a++) {
                    
    $autor mysql_result($result2$a"autor");
                    
    $inhalt mysql_result($result2$a"inhalt");
                    
    $id mysql_result($result2$a"id");
                    
                    echo 
    "<p>von: ";
                    echo 
    $autor;
                    echo 
    "<br>\n";
                    echo 
    $inhalt;
                    echo 
    "<br>\n";
                    echo 
    "<a href=\"javascript:popup('comment.php?id=".$id.")\">kommentieren</a>";
                    echo 
    "</p>\n";
                  }
                } 
    Modifizier evtl. noch die Zeile ind er ich $id definiere. Ich hab keine Ahnung ob dein Feld in der DB tatsächlich id heißt und ob das Fels im Query überhaupt auch mit abgefragt wird.


    Ahja. Ich möcht dir auch noch sagen, dass deine Query-Auswertung mit der for-Schleife und der Verwendung von mysql_result() innerhalb einer Schleife, sehr umständlich ist. Das ginge eleganter. Wenn du interessiert bist an der eleganteren Lösung, geb bescheid.

    Geändert von Chocwise (13.10.2005 um 12:40 Uhr)

  12. #12


    Ich habs mit Get hinbekommen... vielen lieben Dank!

    Morgen gibts dann den ersten richtigen Eintrag in meinem Blog zu bewundern

    Ok, einen Minibug habe ich:

    Wenn ich nur einen Kommentar bei einem Beitrag habe, zeigt der immer 2 Kommentare an, wobei der eine leer ist
    (Code steht noch im letzten Posting)

  13. #13
    Zitat Zitat von Niji-chan
    ...Wenn ich nur einen Kommentar bei einem Beitrag habe, zeigt der immer 2 Kommentare an, wobei der eine leer ist
    (Code steht noch im letzten Posting)
    Gut, einen Moment büdde. Ich muss eben deinen Code auswerten und umscripten.
    Edit folgt...

    EDIT:
    Ich hab dir bereits mal die verwendung von mysql_fetch_array() anstelle mysql_result() nahegelegt AFAIR. Besonders wenn man mehrere Datensätze ausgeben muss, ist mysql_fetch_array() schneller.
    Hier dein modifizierter Code:
    PHP-Code:
    if (mysql_num_rows($result2)>0) {
                  while(
    $data=mysql_fetch_array($result2)) {
                    echo 
    "<p>von: ";
                    echo 
    $data[autor];
                    echo 
    "<br>\n";
                    echo 
    $data[inhalt];
                    echo 
    "</p>\n";
                  }
                } 
    Du siehst das es eine ganze Ecke weniger Code ist plus es ist Performanceschohnender.
    Damit ist dann auch gleich der Bug mit dem leeren Eintrag weg denk ich.

    Geändert von Chocwise (13.10.2005 um 12:52 Uhr)

  14. #14
    thx! funktioniert einwandfrei

    kann gut sein, dass du mir das schon mal gesagt hast ^^

    Ich bastel dann mal weiter...

    EDIT:

    och menno... jetz habe ich versucht beides mal mit mysql_fetch_array zu arbeiten, dabei kam bei mir jetz folgendes raus:
    PHP-Code:
    <?php
            $username 
    "***";
            
    $password "***";
            
    $tabelle "***";
            
    $db mysql_connect("freesql.org"$username$password)
               or die(
    "Keine Verbindung möglich: " mysql_error());
            
    /*echo "Verbindung zum Datenbankserver erfolgreich";*/
            
    mysql_select_db($tabelle) or die ("Auswahl der Datenbank fehlgeschlagen");
            
    $query "SELECT * FROM `myblog` ORDER BY `id` DESC";
            
    $result mysql_query($query) or die ("Anfrage fehlgeschlagen: " mysql_error());
            
            if (
    mysql_num_rows($result)>0) {
                        
                        while(
    $i=mysql_fetch_array($result)) {
                echo 
    "<p class='titel'><span class='datum'>\n";
                            echo 
    $i[datum];
                            echo 
    "</span> // ";
                            echo 
    $i[titel];
                            echo 
    " // von: ";
                            echo 
    $i[autor];
                            echo 
    "</p>\n<p style='background-color: white;'>";
                            echo 
    $i[inhalt];
                echo 
    "</p>\n";
                echo 
    "<p class='titel'>Comments zu diesem Eintrag // (<a href='new_comment.php?beitrags_id=$i' target='_top'>Comment verfassen</a>)</p>";
                
                
    $query2 "SELECT * FROM `blogcomments` WHERE `beitrags_id` = ".$id." ORDER BY `id` DESC";
                
    $result2 mysql_query($query2) or die ("Anfrage fehlgeschlagen: " mysql_error());
                
                if (
    mysql_num_rows($result2)>0) {
                  while(
    $data=mysql_fetch_array($result2))   {
                    echo 
    "<p style='background-color: #ffffcc';>von: ";
                    echo 
    $data[autor];
                    echo 
    "<br>\n";
                    echo 
    $data[inhalt];
                    echo 
    "</p>\n";
                  }
              }
                            echo 
    "<hr width='50%'>\n";
                        }
                        }
                    
    mysql_close($link);
            

            
    ?>
    Fehler:
    Zitat Zitat
    Anfrage fehlgeschlagen: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'ORDER BY `id` DESC' at line 1
    Ich hab doch die Anführungszeichen nich falsch gemacht, oder?

    ( $query2 = "SELECT * FROM `blogcomments` WHERE `beitrags_id` = ".$id." ORDER BY `id` DESC"

    Edit²:
    noch immer ohne Lösung - weitere Frage:
    Wie kann ich machen, dass HTML in Textarea-Eingaben nicht akzeptiert wird?

    Geändert von Niji-chan (13.10.2005 um 14:50 Uhr)

  15. #15
    Zitat Zitat von Niji-chan
    ...Ich hab doch die Anführungszeichen nich falsch gemacht, oder?

    ( $query2 = "SELECT * FROM `blogcomments` WHERE `beitrags_id` = ".$id." ORDER BY `id` DESC"
    Hmh... ich mach das mit den Quotes immer anders:
    PHP-Code:
     
    $query2 
    "SELECT * FROM blogcomments WHERE beitrags_id='$id' ORDER BY id DESC"
    Versuchs mal so. Wenns nicht geht, meld dich noch mal.
    Zitat Zitat von Niji-chan
    Edit²:
    noch immer ohne Lösung - weitere Frage:
    Wie kann ich machen, dass HTML in Textarea-Eingaben nicht akzeptiert wird?
    schau dir mal die Funktionen html_entities() und html_specialchars() an.
    Wähle von den beiden dann die die dir am ehesten gefällt und jag durch sie den Output bevor du ihn per Echo ausgibst.
    z.B. so:
    PHP-Code:
    echo(html_specialchars($data[inhalt])); 
    Die Eingabe wird zwar akzeptiert, allerdings werden typische HTML-Codezeichen in ihre Umschreibungen umgewandelt.
    z.B. > wird zu &gt;
    So ist es hier im Forum auch. Schreibe ich HTML-Code, wird er in anzeigbaren Text umgewandelt.

    Geändert von Chocwise (13.10.2005 um 17:38 Uhr)

  16. #16
    jetzt wird das "WHERE" nicht mitgelesen, also, es wird nicht gefiltert angezeigt.
    also werden alle Comments unter jedem Beitrag angezeigt, egal, zu welchem Beitrag sie eigentlich gehören...

    PHP-Code:
    echo(html_specialchars($data[inhalt])); 
    ist falsch

    PHP-Code:
    echo(htmlspecialchars($data[inhalt])); 
    funktioniert hingegen
    nur mal so nebenbei...

  17. #17
    Zitat Zitat von Niji-chan
    jetzt wird das "WHERE" nicht mitgelesen, also, es wird nicht gefiltert angezeigt.
    also werden alle Comments unter jedem Beitrag angezeigt, egal, zu welchem Beitrag sie eigentlich gehören...
    Hmh...
    Schau mal ob $id wirklich im Script ankommt.
    Mach mal irgendwo
    echo $id;
    im Script und dazu auch noch zur Kontrolle.
    echo $_GET[id];
    Wenn beides geht, musst du warten bis dir einer der anderen Mituser hilft. Denn so funktionierts bei mir tadellos auf den unterschiedlichsten Systemen.

    Wird nur $_GET[id] ausgegeben, ist bei dir register_globals auf off. Womit du mit den superglobalen Arrays arbeiten musst (siehe meinen Post über die EGPCS-Variablen weiter oben).

    Wird bei beiden nichts ausgegeben: Hmja... dann hast du vermutlich die URL im Popuplink falsch gestaltet oder die Variable heißt gar nicht $id bzw $_GET[id].

    Überprüf außerdem ob beitrags_id wirklich so heißt.

    Zitat Zitat von Niji-chan
    PHP-Code:
    echo(html_specialchars($data[inhalt])); 
    ist falsch

    PHP-Code:
    echo(htmlspecialchars($data[inhalt])); 
    funktioniert hingegen
    nur mal so nebenbei...
    Oi, sorry. Da bin ich mit was durcheinander gekommen. ^__^

  18. #18
    PHP-Code:
    $i=Array
    $_GET[i]= 
    In der Database habe ich jetzt nochmal den Namen überprüft. Dabei habe ich festgestellt, dass immer alle Comments mit der beitrags_id "0" angezeigt werden. alle, die ne andere Zahl in dieser Spalte stehen haben, werden ignoriert.


    PHP-Code:
    while($i=mysql_fetch_array($result)) {

    ...

    $query2 "SELECT * FROM blogcomments WHERE beitrags_id='$i' ORDER BY id"
    och menno...

    EDIT:

    habe jetzt
    PHP-Code:
    $query2 "SELECT * FROM blogcomments WHERE beitrags_id='$i[id]' ORDER BY id"
    funktioniert jetzt alles...

    thx 4 help

    Geändert von Niji-chan (13.10.2005 um 19:27 Uhr)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •