Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] php seite schützen

Einklappen

Neue Werbung 2019

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

  • [Erledigt] php seite schützen

    Hallo ihr Lieben,
    ich habe eine liste.php seite und eine login.php seite.
    ich möchte wenn jemand leere felder oder falsche eingabe in die seite login.php macht, kein zugang zu der seite liste.php hat.
    hier die stelle die das ganze kontrolliert in liste.php
    PHP-Code:
    $email $_POST["inp_email"];
    $pwd $_POST["inp_pwd"];
    $emailrow $row['email'];
    $pwdrow $row['pwd'];
    if (
    $email == "" or $pwd == "" or $pwdrow !== $pwd or $emailrow !== $email ) {
    echo  
    "feld ist leer";
    header 'Location: http://www.abcxyz.de/login.php' );

    die weiterleitung an login.php funktioniert bei leeren felder.
    aber funktioniert nicht bei falschen eingaben, und da bitte ich euch um eure hilfe.

    ich bin euch sehr dankbar
    Rafal


  • #2
    PHP-Code:
    echo  "feld ist leer"
    header 'Location: http://www.abcxyz.de/login.php' ); 
    KEINE Ausgaben vor header()!!!
    Zitat von nikosch
    Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

    Kommentar


    • #3
      Danke tkausl, aber das löst das Problem nicht.

      Kommentar


      • #4
        Mehr Code wäre sicherlich nützlich.
        Zitat von nikosch
        Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

        Kommentar


        • #5
          Was hast du denn schon versucht? Betreibe debugging: http://php-de.github.io/#debugging

          PHP-Code:
          if ($email == "" or $pwd == "" or $pwdrow !== $pwd or $emailrow !== $email 
          Und dazu würde ich mir eine Funktion mit/nach dem Wächterprinzip http://php-de.github.io/jumpto/waechter/ bauen, dieses ewiglangen or Statements find ich persönlich extremst eklig.
          Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
          PHP.de Wissenssammlung | Kein Support per PN

          Kommentar


          • #6
            2 Möglichkeiten:
            - Du stellst einen Fehler fest und gibst dem Benutzer die Möglichkeit, die Eingaben zu wiederholen, d.h. du zeigst die selbe Seite nochmal an und kannst dann einen entsprechenden Hinweis (echo 'Fehler!') geben.
            - Du stellst einen Fehler fest und leitest direkt auf eine andere Seite weiter. Hier darf halt vor der Umleitung mit "header", wie bereits oben erwähnt, keine Ausgabe erfolgen.
            Kaum macht man's richtig, schon geht's

            Kommentar


            • #7
              Danke an alle,
              hier ist der ganze Code.
              mein ziel ist wenn die inputs inp_email und inp_pwd leer sind oder falschen Angaben haben, dann muss der Benutzer weitergeleitet an login.php seite.
              1000 Dank für euere Hilfe
              PHP-Code:
              <?php
              $verbindung 
              mysql_connect("x""y""z")
              or die (
              "connection error");
              mysql_select_db("y")
              or die (
              "database error");
              $abfrage "SELECT * FROM gbook WHERE email='$email' AND pwd='$pwd'";
              $email $_POST["inp_email"];
              $pwd $_POST["inp_pwd"];
              $emailrow $row['email'];
              $pwdrow $row['pwd']; 
              if (
              $email == "" or $pwd == "" or $pwdrow !== $pwd or $emailrow !== $email )
              {
              header 'Location: login.php' );
              }
              else {
              $abfrage "SELECT * FROM gbook WHERE email='$email' AND pwd='$pwd'";
              $ergebnis mysql_query($abfrage);
              $num mysql_num_rows($ergebnis);
              }
              ?>
              <?php
              $row 
              mysql_fetch_object($ergebnis)
              ?>
              Gästebuch<br>
              <table class="format" width="100%">
              <tr><th>Name: </th><td><?php echo  $row->name?></td></tr>
              <tr><th>Komentar: </th><td><?php echo  $row->comment?></td></tr>
              </table>
              <?php
              mysql_close
              ($verbindung);
              ?>

              Kommentar


              • #8
                Welcher Code? Was war des problemes Lösung?

                Kommentar


                • #9
                  hallo Paulnator2112,
                  ich verstehe dein deutsch nicht, sorry ich bin ausländer.

                  Kommentar


                  • #10
                    Wenn du mehr auf Perfomance ausgehst würd ich dir empty() empfehlen.
                    http://php.net/manual/de/function.empty.php

                    PHP-Code:
                    if(empty($email) || empty($pwd)) {
                       
                    $error "Bitte fuelle alle Felder aus!";
                    }
                    if(isset(
                    $error)) {
                      echo 
                    $error;

                    So habe ich es zumindest aus deinem Beitrag raus lesen können.
                    Ahja, arbeite lieber mit Sessions()

                    Dann kannst du überprüfen ob der Benutzer eingeloggt ist oder nicht.
                    Beispiel:
                    PHP-Code:
                    if(isset($_SESSION['username'])) { header("Location: login.php"); } 

                    Kommentar


                    • #11
                      Hi,

                      auf einiges wurdest du bereits hingewiesen, deswegen Schnelldurchlauf:

                      $verbindung = mysql_connect("x", "y", "z")
                      or die ("connection error");
                      mysql_select_db("y")
                      or die ("database error");
                      - veraltet! Nutze PDO oder mysqli

                      $abfrage = "SELECT * FROM gbook WHERE email='$email' AND pwd='$pwd'";
                      - wo kommen die Variablen her?! Die befüllst du doch erst danach (zudem hast du ein SQL Injection Problem!)

                      if ($email == "" or $pwd == "" or $pwdrow !== $pwd or $emailrow !== $email )
                      - unglücklich...auf empty() usw wurdest Du ja schon hingewiesen!

                      $abfrage = "SELECT * FROM gbook WHERE email='$email' AND pwd='$pwd'";
                      - s.o.

                      ?>
                      <?php
                      - kannst du weglassen

                      <table class="format" width="100%">
                      - warum ne width Angabe, wenn du class="format" hast? Vernünftig aufbauen!

                      <br>
                      - überflüssig. Bau vernünftig mit div's o.ä. auf

                      mfg Wolf29
                      while (!asleep()) sheep++;

                      Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

                      Kommentar


                      • #12
                        Was ich meine ist:
                        1. In tapatalk wird kein code gezeigt
                        2. Ob dein problem gelöst ist.
                        If it's nessescary I can also say it in english

                        Kommentar


                        • #13
                          Danke Leute, ihr habt mir sehr gut geholfen

                          Kommentar


                          • #14
                            @offtopic:
                            mal ne doofe Frage zu !empty.. kommt das auf selbe raus wie:
                            PHP-Code:
                            if(strlen(trim($var)) != 0){..} 
                            No Sacrifice , no Glory--

                            Kommentar


                            • #15
                              Nein, siehe Manual zu empty()

                              Prüft, ob eine Variable einen Wert enthält
                              Probier es halt aus:

                              PHP-Code:
                              $x "\n"// selbiges mit allem Werten die trim() vernichtet, Leerzeichen, etc...

                              var_dump( !empty($x) ); // bool(true)

                              var_dumpstrlen(trim($x)) ); // int(0)

                              var_dump( (bool)strlen(trim($x)) ); // bool(false) 
                              Warum auch solche Spielchen?

                              Siehe auch: http://php.net/manual/en/types.comparisons.php (etwas runter scrollen)

                              LG
                              Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                              PHP.de Wissenssammlung | Kein Support per PN

                              Kommentar

                              Lädt...
                              X