PHP Frage

  • PHP
    $result = mysql_query("SELECT * FROM TABELLENNAME WHERE userName = '".$name."'"); //SELECT = Datensätze auswählen, WHERE = Bedingung, $name mit dem Namen ersetzen
    
    
    if(mysql_num_rows($result)){ //Funktion zum Ermitteln der Zeilen, die durch den Query selektiert werden, wenn 1 = User vorhanden(sollte es mehrere User mit dem Namen geben eben "mysql_num_rows($result) >=1)
    	//Vorhanden
    }else{
    	//Nicht vorhanden
    }
  • Mit den Punktoperator kannst du Strings verketten, also zusammenfügen.
    Also wird einfach an den String Query z.B. der Inhalt von der Variablen $name hinzugefügt.


    LG

    Main: CPU: Intel Core i5-4440 @ 3,10 GHz | CPU-Cooling: Matterhorn -PURE- | RAM: 16GB Crucial Ballistix Sport DDR3-1600 DIMM CL9-9-9-24 |
    Motherboard: ASRock B85M Pro4 | GPU: Sapphire Radeon R9 390X Nitro 8GB GDDR5 |

    SSD: Samsung SSD 840 Evo 500GB | Power Supply: 550 Watt Corsair CS Series Modular 80+ Gold | Case: beQuiet! Silent Base 800


    As I walk through the valley of the shadow of death
    I take a look at my life and realize there's nothin' left.

  • Mit den Punktoperator kannst du Strings verketten, also zusammenfügen.
    Also wird einfach an den String Query z.B. der Inhalt von der Variablen $name hinzugefügt.


    LG


    ah okay, danke :)


    /e:
    Was ist hier ran falsch, ich bekomme immer einen Serverfehler :O

    3 Mal editiert, zuletzt von Lynnchu™ ()

  • Okay, danke :)


    Nun sagt er, er kann den Namen nicht finden, obwohl alles in der Tabelle steht :O


  • Vielleicht ist der Name mehrfach in der Tabelle?


    Allerdings sehe ich noch einen Fehler.
    Du bekommst eine Resource mit der SELECT Anweisung zurück, bedeutet: Du kannst nicht einfach $pw mit dem Passwort vergleichen.


    Mach es so:

    PHP
    while($row = mysql_fetch_assoc($pw)){
    	if($row["passwort"] == $passwort){
        	//Passwort korrekt
    	}else{
        	//Passwort inkorrekt
    	}
    }
  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Vielleicht ist der Name mehrfach in der Tabelle?


    Allerdings sehe ich noch einen Fehler.
    Du bekommst eine Resource mit der SELECT Anweisung zurück, bedeutet: Du kannst nicht einfach $pw mit dem Passwort vergleichen.


    Mach es so:

    PHP
    while($row = mysql_fetch_assoc($pw)){
    	if($row["passwort"] == $passwort){
        	//Passwort korrekt
    	}else{
        	//Passwort inkorrekt
    	}
    }


    Es ist nur 1 Eintrag in der Tabelle.


    Jetzt bekomme ich nen Serverfehler mit dem Code:

    PHP
    <?php$username = $_POST["username"];$passwort = $_POST["passwort"];$result = mysql_query("SELECT * FROM `Benutzer` WHERE `Name` = '".$username."'");if(mysql_num_rows($result)){	$pw = mysql_query("SELECT `Passwort` FROM `Benutzer` WHERE `Name` = '".$username."'");	while($row = mysql_fetch_assoc($pw)){    if($row["passwort"] == $passwort){    {        echo "Du bist der Boss!";    }else{        echo "Falsches Passwort!";    }}else{    echo "Dieser Name konnte nicht gefunden werden!";}?>


    Aber wo wähle ich denn meine Datenbank aus, beim connecten? :O

  • Dann liegt es wahrscheinlich aber nicht am Code, sondern am Server. Da kann ich dir allerdings nicht helfen, sorry.


    Sicher?
    Hier nochmal alle Codes:

    Spoiler anzeigen
    index.php

    PHP
    <head>		<title>Lynnchus Testseite</title>	</head>	<form action="home.php" method="post">	Name:<input type="Name" name="name"><br>	Passwort: <input type="Password" name="passwort"><br>	<input type="Submit" value="Login">	</form>

    Spoiler anzeigen
    home.php

    PHP
    <?php$username = $_POST["username"];$passwort = $_POST["passwort"];mysql_select_db("Lynnchu");$result = mysql_query("SELECT * FROM `Benutzer` WHERE `Name` = '".$username."'");if(mysql_num_rows($result)){	$pw = mysql_query("SELECT `Passwort` FROM `Benutzer` WHERE `Name` = '".$username."'");	while($row = mysql_fetch_assoc($pw)){		if($row["passwort"] == $passwort){		{			echo "Du bist der Boss!";		}else{			echo "Falsches Passwort!";		}	}}else{    echo "Dieser Name konnte nicht gefunden werden!";}?>


    ..

  • Zitat

    Beim Abrufen von WEBSITE ZENSIERT ist auf der Website ein Fehler aufgetreten. Möglicherweise wird sie gerade gewartet oder ist falsch konfiguriert.
    Laden Sie die Webseite erneut.
    Klicken Sie auf die Schaltfläche zum erneuten Laden, um die für das Laden der Seite erforderlichen Daten erneut zu senden.
    Fehlercode: 500

  • Ok das heißt irgendwas im PHP Skript ist falsch


    Geh mal in den Code und werf folgendes ganz oben dahin.


    <?php
    ini_set("display_errors",1);
    error_reporting(E_ALL);
    ?>


    Damit sollte der einen besseren Fehler zeigen.
    Drück beim aktualisieren bitte STRG + F5 und nicht nur F5


    /e
    Mach aus

    PHP
    if($row["passwort"] == $passwort){


    mal

    PHP
    if($row["Passwort"] == $passwort){


    Wenn du einen Linux Server hast, wird es daran liegen.


    Grüße

    ik bin der vito c:

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen