Problem in der Contact.inc.php

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

  • Problem in der Contact.inc.php

    Hey, bin noch ein recht blutiger Anfänger was die Programmierung angeht . Ich habe mich am Tutorial für den PW-geschützten Loginbereich von dieser Seite versucht und konnte auch den größten Teil nachvollziehen .

    Aber leider läuft nix
    Ich vermute mein Problem in der Datei Contact.inc.php

    im original tut sieht die datei so aus :

    01  <?php
    02  $dbHost = "localhost";
    03  $dbUser = "root";
    04  $dbPass = "";
    05  $dbName = "login";
    06  $connect = @mysql_connect($dbHost, $dbUser, $dbPass) or die("Konnte keine Verbindung zum Datenbankserver aufbauen!");
    07  $selectDB = @mysql_select_db($dbName, $connect) or die("Konnte die Datenbank <b>$dbName</b> nicht auswählen!");
    08  ?>

    entfernt man davon mal die hässlichen sachen und ergänzt <> etc bekomme ich da raus

    <?php
    $dbHost = "localhost";
    $dbUser = "root";
    $dbPass = "";
    $dbName = "login";
    $connect = @mysql_connect($dbHost, $dbUser, $dbPass) or die("Konnte keine Verbindung zum Datenbankserver aufbauen!");
    $selectDB = @mysql_select_db($dbName, $connect) or die("Konnte die Datenbank &lt;b&gt;$dbName&lt;/b&gt; nicht ausw&auml;hlen!");
    ?>

    Im Tut steht, ich sollte zur Contact.inc.php mal das Gästebuchtut öffnen,der link ist bei mir aber leider tot.
    $dbHost ist mir klar
    $dbUser --> auf meinem PC ... lokal.. geb ich da root ein?
    $dbPass --> auch leer oder?
    der Name der Datenbank ist login versteh ich auch


    Hier mal die SQL meiner Datenbank:

    CREATE TABLE IF NOT EXISTS `users` (
    `id` int(5) NOT NULL AUTO_INCREMENT,
    `user` varchar(30) NOT NULL,
    `pass` varchar(30) NOT NULL,
    PRIMARY KEY (`ID`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

    die Datenbank hab ich mit PHPmyAdmin erstellt.


    rufe ich ejtzt über http://localhost/index.php die seite auf, bekomme ich fehlermeldungen die sich im Endeffekt alle auf die contact.inc.php beziehen.
    Ich sitze da jetzt schon seit Stunden dran und mopse mir von allen möglichen Seiten diese "Kontakt" daten und passe die skripte so gut ich es kann an. aber NIE! funktioniert es.
    Wär super,wenn ihr mir helfen könntet
    -> und ja, Suchfunktion hab ich auch schon versucht.

  • #2
    Zitat von Kergal Beitrag anzeigen
    $connect = @mysql_connect($dbHost, $dbUser, $dbPass) or die("Konnte keine Verbindung zum Datenbankserver aufbauen!");
    $selectDB = @mysql_select_db($dbName, $connect) or die("Konnte die Datenbank &lt;b&gt;$dbName&lt;/b&gt; nicht ausw&auml;hlen!");
    Das @-Zeichen unterdrückt mögliche Fehlermeldungen - also raus damit!

    rufe ich ejtzt über http://localhost/index.php die seite auf, bekomme ich fehlermeldungen die sich im Endeffekt alle auf die contact.inc.php beziehen.
    Und warum verschweigst du uns, welche?
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      @Kergal
      Bitte lies dir das hier mal genau durch. Da geht es um eine vernünftige Fehlerbehandlung, auch was Datenbanken angeht.

      peter
      Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
      Meine Seite

      Kommentar


      • #4
        Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\xampp\htdocs\index.php:1) in C:\xampp\htdocs\index.php on line 2

        Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\index.php:1) in C:\xampp\htdocs\index.php on line 2

        Parse error: parse error in C:\xampp\htdocs\connect.inc.php on line 5

        das sind die fehler

        die ersten linien der index.php sind :
        <?php
        session_start();
        require("connect.inc.php");
        ?>


        ..>werd mich jetzt an den Link von Kropff wagen .
        Danke für eure wirklich SUPER schnelle Hilfe soweit


        --> hätte ich deinen link vielleicht doch vorher anklicken sollen.
        Zuletzt geändert von Kergal; 21.06.2009, 16:57.

        Kommentar


        • #5
          was dein session-problem angeht, dafür gibt es hier einen eigenen thread. da geht es zwar um header, aber das selbe gilt auch für sessions. und das hat nichts mit deiner contact.inc.php zu tun.

          peter
          Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
          Meine Seite

          Kommentar


          • #6
            @ Kropff ich hab mir deinen Thread durchgelesen und hab soweit ich ihn verstanden habe wirklich versucht mich dran zu halten... alle leerzeichen vorne dran weggemacht

            aber ich habs immernoch nicht geschafft. Ich hab seit dem letzten Post nichts anderes gemacht- gut eine Pipipause- als diese Headers already sent sachen zu schaffen...aber ich habe immernoch exakt die gleichen Fehlermeldungen.
            Ich würde mich über TIPPS wirklich freuen.

            Danke schonmal
            Gruß Kergal

            Kommentar


            • #7
              headers already sent = du hast bereits irgend ein (oder gar mehrere) Zeichen vor deiner session...() Anweisung ausgegeben!!!
              WHILE (!$asleep) { $sheep++; }

              Kommentar


              • #8
                Zitat von Kergal Beitrag anzeigen
                @ Kropff ich hab mir deinen Thread durchgelesen und hab soweit ich ihn verstanden habe wirklich versucht mich dran zu halten... alle leerzeichen vorne dran weggemacht
                Könnte das berühmte BOM-Problem sein. Das verursacht auch schon eine Ausgabe. In dem Fall benötigst du einen Editor, der das anzeigt oder entfernen kann. Bei Notepad++ z.B. kannst du das über "Format" -> "UTF-8 ohne BOM" in deiner PHP-Datei entfernen. Oder du speicherst die Datei im ANSI-Format ab. Wenn es deine Zeichenkodierung zulässt.

                Peter
                Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                Meine Seite

                Kommentar


                • #9
                  Manchmal sucht man seine Probleme halt einfach an der falschen Stelle

                  Ich hab alle Leerzeichen rausgemacht-- > aber in einer Kopie meiner Dateien.
                  Hab aber über localhost nur die originale geöffnet. Ja, ein wenig blöd . Aber ein tolles gefühl, denn immerhin komm ich jetzt vorran.
                  Danke euch. Das Skript arbeitet jetzt zumindest ein wenig weiter.

                  Ich bin wie gesagt absoluter anfänger und manchmal ergeben die Sachen keinen Sinn . Deshalb nicht böse sein,wenn ich jetzt direkt eine neue Frage habe. Ich wills ja lernen .







                  Wie bereits beschrieben habe ich an dem LoginSkript mit Datenbank gehangen und hänge immernoch dran. Die seiten scheinen vom Syntax soweit parse-bar sein .
                  Wenn ich mich einloggen möchte auf der Index.php seite habe ich aber ein Problem. Username stimmt,Passwort stimmt nicht. Ich komme immer auf meine "Passwort ist falsch schleife" . habs mit dem md5 und dem "eigentlichen PW" versucht. Der Zugriff auf die Datenbank funktioniert eigentlich auch-> denn neue Benutzer kann ich anmelden und sie werden auch in der Datenbank gespeichert.


                  Hier die index.php datei

                  <?php
                  }elseif(!$_POST['username'] || $_POST['username'] == "") {
                  echo '<p align="center">Einen Benutzernamen brauchen wir schon ;-)<br><br><a href="index.php?lang=de&">Zurueck</a></p>';
                  }elseif(!$_POST['password'] || $_POST['password'] == "") {
                  echo '<form action="index.php?lang=de&" method="post">';
                  echo '<p align="center">Ein Passwort brauchen wir schon ;-)<br><br>';
                  echo '<input type="hidden" name="username" value="'.$_POST['username'].'">';
                  echo '<input type="submit" name="zurueck" value="Zurueck">';
                  echo '</p>';
                  echo '</form>';
                  }else{
                  $password = md5($password);
                  $query = mysql_query("SELECT user, pass FROM users WHERE user='".$_POST['username']."'") or die('Select ist fehlgeschlagen!');
                  $result = mysql_fetch_array($query) or die('<p align="center">Sorry, aber dieser Benutzername existiert nicht!<br><a href="index.php?lang=de&">Zurueck</a></p>');
                  if($password != $result['pass']){
                  echo '<form action="index.php?lang=de&" method="post">';
                  echo '<p align="center">Sorry, aber dieses Passwort ist falsch!<br><br>';
                  echo '<input type="hidden" name="username" value="'.$_POST['username'].'">';
                  echo '<input type="submit" name="zurueck" value="Zurück"></p>';
                  echo '</form>';
                  die;
                  }else{
                  $user = $result['user'];
                  session_register('user');
                  echo '<p align="center">LogIn erfolgreich! :-)<br><br><a href="sichere_seite.php">Weiter</a></p>';

                  das versuchs pw ist 1234 und der username ist bassti und wie gesagt der username klappt auch.

                  Ich würde mich über Hinweise nicht unbedingt die konkrete Lösung wirklich freuen. Hoffe es fragen noch ein paar andere so oft wie ich .

                  Kommentar


                  • #10
                    Hinweis:

                    Setze mal vor diese Zeile

                    PHP-Code:
                         if($password != $result['pass']){ 
                    eine Ausgabe der beiden Werte, die du vergleichst (mit echo oder var_dump). Nennt sich Debuggen.

                    Außerdem solltest du Nutzereingaben ($_POST) nicht direkt in die SQL-Query übernehmen, sondern vorher mit mysql_real_escape_string() formatieren, um dich vor SQL-Injections zu schützen.

                    Gruß Marc

                    Kommentar


                    • #11
                      das ist bestimmt ein guter tipp, aber ich kann nicht debuggen und im Forum hab ich nix gefunden. (also schon was zum Thema debuggen..das scheint etwas sehr gebräuchliches zu sein,da es in jedem Thread mindestens 1 mal auftaucht)

                      Kommentar


                      • #12
                        Dann schreib einfach vor die Zeile aus dem letzten Post:

                        PHP-Code:
                        echo $password ', ' $result['pass'] . '<br />'
                        Das müsste dir schon mal 'ne Idee geben, was nicht passend gesetzt wird.

                        Hangel dich dann mit solchen Ausgaben weiter im Script nach oben bis zur ersten Zeile, in der noch alles zu passen scheint. Dann ist per Ausschlussverfahren so etwa in der Zeile darunter ein Problem.

                        Kommentar


                        • #13
                          Debugging techniques for PHP programmers

                          Kommentar


                          • #14
                            Zitat von Kergal Beitrag anzeigen
                            das ist bestimmt ein guter tipp, aber ich kann nicht debuggen
                            Dann lerne es.
                            Wer nicht debuggen kann, kann auch nicht programmieren.
                            I don't believe in rebirth. Actually, I never did in my whole lives.

                            Kommentar

                            Lädt...
                            X