Suchen
Inside Forum
Nützliche Links




 
phpforum.de bei Facebook
 
phpforum.de bei Twitter
 

Zurück   PHP Forum: phpforum.de > PHP > PHP

PHP Alles rund um PHP

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 04.01.2013, 13:28
FreakyPhP FreakyPhP ist offline
Besucher
 
Registriert seit: 03.01.2013
Beiträge: 53
Standard Php Header Weiterleitung klappt nicht!

Hallo.

das Problem mit der Registrierung von gestern habe ich gelöst bekommen! Nun stehe ich vor einem Login Problem! Ich möchte, dass nachdem man sich eingeloggt hat, man auf eine seite weitergeleitet wird. Hier der Code dazu:

PHP Quellcode:
<?php
include 'config.php';
$username = $_POST['username'];
$password = md5($_POST['password']);

$query = mysql_query("SELECT * FROM users WHERE username = '$username' AND password = '$password'");
$data = mysql_fetch_assoc($query);

if(mysql_num_rows($query)){
    session_start():
    $_SESSION['username'] = $data['username'];
  header("Location: login_succesfull.php");
  exit;
}

header("Location: login_failed.php");

?>


Nach dem übertragen der Daten passiert jedoch gar nix. Kann jemand helfen??

MFG
Mit Zitat antworten
  #2  
Alt 04.01.2013, 13:38
hellbringer hellbringer ist offline
Forum-Mitarbeiter
 
Registriert seit: 27.03.2008
Beiträge: 31.050
Standard AW: Php Header Weiterleitung klappt nicht!

Standardantwort/FAQ:
Richtig debuggen
  1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
  2. Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(-1);
  3. Man verwendet ini_set('display_errors', '1'); damit die Fehler auch angezeigt werden.
  4. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
  5. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde. Wichtig bei MySQL Fehlern (...not a valid MySQL result resource...): mysqli_error() verwenden oder Abfrage ausgeben und zb mit phpmyadmin testen.
  6. Schritt 5 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
  7. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
  8. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
  9. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.

Die Ausgaben per var_dump oder echo kann man sich ersparen, in dem man einen Debugger benutzt.

Wiki Links:
Ausführliche Informationen zum Thema Debuggen
Dokumentationen und Tutorials in Tutorials


Standardantwort/FAQ:
Dein Code ist anfällig für SQL Injections. Benutzereingaben (z.B. aus einem Formular oder aus der URL), dürfen niemals ungefiltert in SQL-Strings eingebaut werden. Ein Angreifer wäre sonst in der Lage aktiven Code in Dein SQL einzuschleusen. SQL Injections gehören zu den gefährlichsten und weitverbreitesten Fehlern bei Webanwendugen. Dabei ist ihre Vermeidung recht einfach. PHP stellt für jede unterstützte Datenbank eine Funktion zum Entschärfen von Benutzereingaben zur Verfügung.

Für mysqli erledigt das mysqli_real_escape_string() bzw. für die veraltete mysql-Extension mysql_real_escape_string().

Außerdem bieten die beiden neueren Extensions PDO und mysqli die Möglichkeit, prepared Statements zu verwenden. In diesem Fall kümmern sich PHP und die Datenbank selbst um das Maskieren von gefährlichen Sonderzeichen.

In unserem Wiki gibt es einen Artikel zu SQL Injections mit einem konkreten Beispiel.
Mit Zitat antworten
  #3  
Alt 04.01.2013, 16:53
0v3rl0rd 0v3rl0rd ist offline
Neuer Besucher
 
Registriert seit: 30.12.2012
Beiträge: 7
Standard AW: Php Header Weiterleitung klappt nicht!

Kannst du nicht einfach, wenn der Benutzername und das Passwort richtig sind mit echo eine Zeile HTML hinzufügen also (mal angenommen du würdest die Abfrage so machen):
PHP Quellcode:
<?PHP
if(isset($_POST["username"])) {
$user_na = $_POST["username"];
     if($user_na == "******") {
     echo "<meta http-equiv='refresh' content='10; URL=******'>"; //nach "content=' " kommt die Zeit in Sekunden die die Seite wartet, "URL=*******' " ist dementsprechend die Seite die geladen wird und die Anführungszeichen MÜSSEN das UMSCHLEIßEN. Ich weiß auch nicht warum :D
}
}
?>


Hilft dir das?

- 0v3rl0rd
Mit Zitat antworten
  #4  
Alt 04.01.2013, 17:36
hellbringer hellbringer ist offline
Forum-Mitarbeiter
 
Registriert seit: 27.03.2008
Beiträge: 31.050
Standard AW: Php Header Weiterleitung klappt nicht!

Zitat:
Zitat von 0v3rl0rd Beitrag anzeigen
Kannst du nicht einfach, wenn der Benutzername und das Passwort richtig sind mit echo eine Zeile HTML hinzufügen also (mal angenommen du würdest die Abfrage so machen):
PHP Quellcode:
<?PHP
if(isset($_POST["username"])) {
$user_na = $_POST["username"];
     if($user_na == "******") {
     echo "<meta http-equiv='refresh' content='10; URL=******'>"; //nach "content=' " kommt die Zeit in Sekunden die die Seite wartet, "URL=*******' " ist dementsprechend die Seite die geladen wird und die Anführungszeichen MÜSSEN das UMSCHLEIßEN. Ich weiß auch nicht warum :D
}
}
?>


Hilft dir das?

- 0v3rl0rd
Am Thema vorbei. Er vergleicht den User in der Datenbank und nicht mit PHP. Und die Anführungszeichen müssen nun mal Attributwerte umschließen. HTML ist so definiert und das sind Grundlagen.
Mit Zitat antworten
  #5  
Alt 04.01.2013, 17:43
Zeichen32 Zeichen32 ist offline
Engagierter Besucher
 
Registriert seit: 15.12.2009
Beiträge: 971
Standard AW: Php Header Weiterleitung klappt nicht!

Die Header Location erwartet eine URL und kein Dateiname.
__________________
echo "Zeichen";
Mit Zitat antworten
  #6  
Alt 04.01.2013, 17:45
Ninchen Ninchen ist offline
Neuer Besucher
 
Registriert seit: 04.01.2013
Beiträge: 16
Standard AW: Php Header Weiterleitung klappt nicht!

Zitat:
Zitat von Zeichen32 Beitrag anzeigen
Die Header Location erwartet eine URL und kein Dateiname.
Alle modernen Browser akzeptieren sowohl eine URI als auch eine URL. Die zukünftige RFC des W3C dazu sieht auch vor, dass relative Pfade angegeben werden dürfen.
Mit Zitat antworten
  #7  
Alt 04.01.2013, 17:57
FreakyPhP FreakyPhP ist offline
Besucher
 
Registriert seit: 03.01.2013
Beiträge: 53
Standard AW: Php Header Weiterleitung klappt nicht!

Also ich hab das mal mit dem debuggen gemacht und da sagt er folgendes:

Parse error: syntax error, unexpected T_LOGICAL_OR in /usr/export/www/vhosts/funnetwork/hosting/mrpyrowatch/config.php on line 8

hier der Quellcode der config.php:
PHP Quellcode:
<?php

$localhost = 'mrpyrowatch.mr.funpicsql.de';
$dbuser = 'mysql1120800';
$dbpass = '(Mein PW)';
$dbname = 'mysql1120800';

$connect = mysql_connect($localhost, $dbuser, $dbpass) or die ("Verbindungsversuch fehlgeschlgen");

mysql_select_db($dbname) or die("Konnte die Datenbank nicht verbnden");

?>


Ich finde aber keinen Fehler
Mit Zitat antworten


Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu
Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Individuelle Weiterleitung nach LogIn klappt nicht Haupte PHP 20 14.11.2008 11:33
weiterleitung klappt nicht jakkob PHP 11 08.07.2008 19:51
Weiterleitung von SSL-Bereich auf normale PHP klappt nicht Arwen68 PHP 2 20.11.2006 22:35
Weiterleitung klappt nicht HoMi1982 PHP 0 02.03.2006 01:17
Weiterleitung mittels Auswahlmenü klappt nicht calio73 HTML 7 28.10.2005 01:02


Alle Zeitangaben in WEZ +2. Es ist jetzt 00:24 Uhr.


Powered by vBulletin® Version 3.8.8 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Powered by NuWiki v1.3 RC1 Copyright ©2006-2007, NuHit, LLC