• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Anmeldung von usern mit php in mysql

Status
Für weitere Antworten geschlossen.
G

general_xxx

Guest
Hi leute sorry wegen soviel text, aber ich bin schon langsam am verzweifel weil das nicht geht. Wäre echt cool wenn ihr mir helfen könntet !!!


Also ich habe bereits ein login und eine Datenbank erstellt. Ich bin mal der Meinung, dass das login-script hier egal ist aber falls ihr das braucht könnt ihr ja nochmal bescheid sagen.

Also erstmal habe ich bei xampp 1.5.1 mit phpMyAdmin 2.7.0-pl1

"Verbunden mit MySQL 5.0.18-nt auf localhost als root@localhost" --- steht da wortwörtlich

Da habe ich jetzt die Datenbankerstellt (ich habe euch mal die ganze ausgabe von mysql gegeben, damit ich keine angabe vergesse, sry)


Code:
phpMyAdmin SQL Dump
-- version 2.7.0-pl1
-- http://www.phpmyadmin.net
-- 
-- Host: localhost
-- Erstellungszeit: 28. Februar 2006 um 23:35
-- Server Version: 5.0.18
-- PHP-Version: 5.1.1
-- 
-- Datenbank: `loginsystem`
-- 

-- --------------------------------------------------------

-- 
-- Tabellenstruktur für Tabelle `benutzerdaten`
-- 

CREATE TABLE `benutzerdaten` (
  `Id` int(11) NOT NULL auto_increment,
  `Nickname` varchar(50) collate latin1_general_ci NOT NULL default '',
  `Kennwort` varchar(50) collate latin1_general_ci NOT NULL default '',
  `email` varchar(50) collate latin1_general_ci NOT NULL,
  `beschreibung` varchar(2000) collate latin1_general_ci NOT NULL,
  PRIMARY KEY  (`Id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=7 ;

-- 
-- Daten für Tabelle `benutzerdaten`
-- 

INSERT INTO `benutzerdaten` VALUES (0, 'admin', '15e9305738433747bfeca8e5fd4e7bf8', '[email protected]', 'Ich bin der Administrator');

so jetzt habe ich auch mal ein anmeldeformular erstellt, also ein formular wo sich leute selbst anmelden können. Diese daten sollen automatisch in diese datenbank eingetragen werden !!!

Hier mein Anmeldescript

[php:1:beec983e0f]<html>
<title>Anmeldung</title>
<body bgcolor="black" text="#a0a0a0">
<center>
<table border="3" width="400" height="200" cellpadding="1" cellspacing="1">
<tr>
<td>
<form action="<? $_SERVER['localhost'] ?>" method="post">
Nickname:
</td>
<td>
<input type="text" size="17" name="nickname">



</td>
</tr>
<tr>
<td>
E-Mail:
</td>
<td>
<input type="text" size="17" name="email">



</td>
</tr>
<tr>
<td>
Passwort:
</td>
<td>
<input type="text" size="17" name="Kennwort">



</td>
</tr>
<tr>
<td>
Passwort wiederholen:
</td>
<td>
<input type="text" size="17" name="Kennwort2">



</td>
</tr>
<tr>
<td>
Kurze Beschreibung wer du bist:
</td>
<td>
<input type="text" size="17" name="beschreibung">



</td>
</tr>

<center>
</td>
</tr>
<tr>
<td>
<input type="submit" name="submit" value="Anmelden">
</td>
<input type="hidden" name="wasistzutun" value="Anmelden">
</tr>
</table>
</center>
</form>
<?php

// Adresse des Servers mit Port
$servername = "localhost";

// Benutzername für die Datenbank
$dbusername = "root";

// Passwort für die Datenbank
$dbpassword = "localhost";

// Name der datenbank
$dbname = "Loginsystem";

$table = "Benutzerdaten";

if(isset($wasistzutun)) {
if($wasistzutun == "Anmelden") {
if (($nickname && $email && $beschreibung && $Kennwort && $Kennwort2)

!= "") {
if($Kennwort == $Kennwort2) {
if($submit) {
mysql_connect ("$servername", "$dbusername",

"$dbpassword") OR die ("Verbindung zum MySQL-Server fehlgeschlagen");
mysql_select_db ("$dbname") OR die("Verbindung zur Datenbank

fehlgeschlagen");
$query="INSERT INTO $table (nickname, email, kennwort,

beschreibung) VALUES ('$nickname', '$email', '$Kennwort', '$beschreibung')";

echo "Du hast dich erfolgreich angemeldet!";
echo $nickname;

} else {
echo "Du hast entweder nicht alle Felder ausgefüllt oder ein

Fehler ist aufgetreten!";
}
}
}
}
}
mysql_close();
?>

</body>
</html>
[/php:1:beec983e0f]

Ok, wenn ich dieses script jetzt ausführe denn passiert etwas komisches.
Egal was ich eintrage, wenn das wiederholte passwort nich das gleiche ist wie das erste, oder auch wenn ich alles richtig eintarage passiert, wenn ich auf ok drücke nicht, nicht mal ne fehlermeldung, sonst könnte ich ja was machen...

Sorry, dass hier soviel text steht aber ich habe versucht es so kurz, aber so genau wie möglich zu beschreiben.

Schon mal im vorraus DANKE !!! :D :D :D
 
Werbung:
ganz oben in die sql-aufforderung beim auto_increment och ein PRIMARY KEY 'reinsetzen, dann müsste es gehen.

Nils aka XraYSoLo
 
ja die tabelle ist ja schon erfolgreich angelegt, es geht nur darum das die anmelden php nichts macht
 
Werbung:
könntest du mir evtl zeigen wie ich den primär key da oben noch einbinde ??? :) :) :)
 
in den phpmyadmin gehen, die tabelle aufrufen und das feld editieren (da gibts einen radio-butten, der ausgewählt werden kann. der heißt "primary key").

Nils aka XraYSoLo
 
Werbung:
also bei mir steht unten bei indizes schon das drin :

Name Typ Kardinalität Aktion Feld
PRIMARY PRIMARY 1 Id

wenn ich da jetzt bei aktion auf primärschlüssel gehe, dann kommt da oben bei sql-befehl :

  • ALTER TABLE `benutzerdaten` DROP PRIMARY KEY ,
    ADD PRIMARY KEY ( `Id` )

und unten bei indizes steht nichts neues ...

kann natürlich auch sein, dass du was ganz anderes meintest... :D , falls ja :D sorry :D :D


//EDIT heißt das :

PRIMARY KEY (`Id`)

nich, dass die id schon als primärkey gesetzt ist ?

Kann ich dich evtl bei msn mit in meine Kontaktliste nehmen ?
 
@xraysolo man kann keine auto increment spalten ohne key einrichten. ausserdem kann wegen einem fehlenden schluessel kein insert fehlschlagen -> was laberst du für einen Müll?

@general du musst $query schon an die datenbank senden [z.b. mittels mysql_query ]
weierhin benutze vorher die funktion mysql_real_escape_string() auf alles vom user stammende...
 
AHA, danke für deine antwort, da ich aber relativ neu mich mit php und mysql beschäftige (habe vorher java gelernt und hatte deshalb keine zeit für php und so) kann ich nicht so richtigwas anfangen mit deinem tip (TROZDEM DANKE !!!). Könntest du mir evtl anhand meines anmeldescripts da oben zeigen wie man das einbaut ???

ps.tut mir leid dass ich in diesem bereich des compis so ein noob bin ..., aber für mysql zu lernen fehlt mir wegem dem abitur gerade die zeit.

Also wäre echt nett con dir !!! :D
 
Werbung:
niklasboelter schrieb:
@xraysolo man kann keine auto increment spalten ohne key einrichten. ausserdem kann wegen einem fehlenden schluessel kein insert fehlschlagen -> was laberst du für einen Müll?

na und?

denkste wirklich, ich hätte das nicht bei mir versucht? danach gings.

Nils aka XraYSoLo
 
XraYSolo es mag dir ja entgangen sein aber es geht hier nicht um das anlegen einer tabelle sonderm um php code der nicht funkioniert. du magst zwar recht haben, allerdings war das ueberhaupt nicht teil der diskussion sondern hat eigentlich nix mit dem thema zu tun

@OP: wenn du nicht einmal weisst wo du dich ueber funktionen schlau machen kannst bzw was eine variable ist [vermute ich jetzt mal] solltest du einfach mal irgendwann wenn du zeit hast ein tutorial durchlesen
 
@niklasboelter

was variablen und so sind weiß ich schon, alleine schon wegen java, das problem ist nur, dass ich wegen einem userlogins mich nicht wochenlang mit mysql beschäftigen möchte, deshalb habe ich mal gehofft, das mir hier jemand helfen kann, so wie man das im bord nun mal macht. ich habe auch schon in anderten boards leuten erklärt wie man arrays erstellt oder was for-schleifen sind, da waren die andren die noobs, trozdem habe ich mich nie hingesatellt und gesagt, ja wenn du wat machen willst musste lernen Hier ein paar links zu tutorials. sondern anhand deren quelltextes habe ich denen gezeigt, wie man das einbindet.
Dabei lernen die trozdem wie es geht, müssen sich aber nicht täglich stundenlang vor den bildschirm setzen und sich die tutorials durchlesen.

Trozdem danke !!!

Vielleicht kann mir ja jemand anderes helfen ???

@XraYSoLo

vielleicht habe ich mich ja aucvh nicht sio gut ausgedrückt, eigentlich wollter ich nur das anmelde script so bekommen, dass es die sachen die im browser on den user eingegeen werden, dan auch in der datenbank gespeihert werden.
Trozdem cool das du mir zeigst wie man das macht und nicht sagst :" lies dir die tutorials durch !!!"
alleine dafür finde ich seine antwort schon besser, auch wenn sie in diesem fall nicht geholfen haben

------------------------------------------------------------------------------------------------

Hat vielleicht irgendeiner noch ne idee was ich machen kann damit das funtioniert ohne ,mich auf tutorials zu verweisen ???

denn ich glaube wenn man sich damit auskennt, kann man mir schnell helfen, ich will ja nicht, dass ihr mir alles über mysql u. php erklärt oder zusammen mit mir eine ganze page erstellt, sondern eigentlich nur dieses ganz kleine anmelde script

DANKE :D :D :D
 
Werbung:
ich habe dir genau gesagt was du machen musst in einer von meinem standpunkt aus auch fuer anfänger verständliche art und weise (und vor allem fuer leute die schon hochsprachen wie java koennen??)

als du signalisiertest das du nix verstanden hast nahm ich an das du einfach ueberhaupt keine ahnung hast und nur von anderen deinen quellcode gebacken haben willst.
[vorallem wegen deinem "DANKE :D :D :D "]

hier nochmal ausfuerhlicher:
erst alle werte aus dem superglobalen array $_POST mit der funktion mysql_real_escape_string() behandeln:
[php:1:44b33ca4a5]
<?php
$nickname = mysql_real_escape_string($_POST['nickname']);
$email = mysql_real_escape_string($_POST['email']);
$Kennwort = mysql_real_escape_string($_POST['Kennwort']);
$Kennwort2 = mysql_real_escape_string($_POST['Kennwort2']);
$beschreibung = mysql_real_escape_string($_POST['beschreibung']);
?>
[/php:1:44b33ca4a5]
dann das if zeugs.
nach dem aufbau von $query noch ein
[php:1:44b33ca4a5]
<?php
mysql_query($query);
?>
[/php:1:44b33ca4a5]

Ich war einfach bei meinem 1. Post davon ausgegangen das du das da oben selbst erstellt hast und somit wenigstens etwas ahnung hast. war wohl eine Fehleinschätzung. :)
 
ok habe das jetzt eingefügt :

  • <html>
    <title>Anmeldung</title>
    <body bgcolor="black" text="#a0a0a0">
    <center>
    <table border="3" width="400" height="200" cellpadding="1" cellspacing="1">
    <tr>
    <td>
    <form action="<? $_SERVER['localhost'] ?>" method="post">
    Nickname:
    </td>
    <td>
    <input type="text" size="17" name="nickname">



    </td>
    </tr>
    <tr>
    <td>
    E-Mail:
    </td>
    <td>
    <input type="text" size="17" name="email">



    </td>
    </tr>
    <tr>
    <td>
    Passwort:
    </td>
    <td>
    <input type="text" size="17" name="Kennwort">



    </td>
    </tr>
    <tr>
    <td>
    Passwort wiederholen:
    </td>
    <td>
    <input type="text" size="17" name="Kennwort2">



    </td>
    </tr>
    <tr>
    <td>
    Kurze Beschreibung wer du bist:
    </td>
    <td>
    <input type="text" size="17" name="beschreibung">



    </td>
    </tr>

    <center>
    </td>
    </tr>
    <tr>
    <td>
    <input type="submit" name="submit" value="Anmelden">
    </td>
    <input type="hidden" name="wasistzutun" value="Anmelden">
    </tr>
    </table>
    </center>
    </form>
    <?php

    // Adresse des Servers mit Port
    $servername = "localhost";

    // Benutzername für die Datenbank
    $dbusername = "root";

    // Passwort für die Datenbank
    $dbpassword = "localhost";

    // Name der datenbank
    $dbname = "Loginsystem";

    $table = "Benutzerdaten";

    $nickname = mysql_real_escape_string($_POST['nickname']);
    $email = mysql_real_escape_string($_POST['email']);
    $Kennwort = mysql_real_escape_string($_POST['Kennwort']);
    $Kennwort2 = mysql_real_escape_string($_POST['Kennwort2']);
    $beschreibung = mysql_real_escape_string($_POST['beschreibung']);

    if(isset($wasistzutun)) {
    if($wasistzutun == "Anmelden") {
    if (($nickname && $email && $beschreibung && $Kennwort && $Kennwort2)

    != "") {
    if($Kennwort == $Kennwort2) {
    if($submit) {
    @mysql_connect ("$servername", "$dbusername",

    "$dbpassword") OR die ("Verbindung zum MySQL-Server fehlgeschlagen");
    mysql_select_db ("$dbname") OR die("Verbindung zur Datenbank

    fehlgeschlagen");
    $query="INSERT INTO $table (nickname, email, kennwort,

    beschreibung) VALUES ('$nickname', '$email', '$Kennwort', '$beschreibung')";
    mysql_query($query);
    echo "Du hast dich erfolgreich angemeldet!";
    echo $nickname;

    } else {
    echo "Du hast entweder nicht alle Felder ausgefüllt oder ein

    Fehler ist aufgetreten!";
    }
    }
    }
    }
    }
    @mysql_close();
    ?>

    </body>
    </html>

und beim aufrufen mit dem browser kommt dann erst die Tabelle wo ich alles eingeben kann und dann :


  • Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'ODBC'@'localhost' (using password: NO) in D:\xampp\xampp\htdocs\xampp\website\anmelden.php on line 82

    Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in D:\xampp\xampp\htdocs\xampp\website\anmelden.php on line 82

    Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'ODBC'@'localhost' (using password: NO) in D:\xampp\xampp\htdocs\xampp\website\anmelden.php on line 83

    Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in D:\xampp\xampp\htdocs\xampp\website\anmelden.php on line 83

    Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'ODBC'@'localhost' (using password: NO) in D:\xampp\xampp\htdocs\xampp\website\anmelden.php on line 84

    Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in D:\xampp\xampp\htdocs\xampp\website\anmelden.php on line 84

    Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'ODBC'@'localhost' (using password: NO) in D:\xampp\xampp\htdocs\xampp\website\anmelden.php on line 85

    Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in D:\xampp\xampp\htdocs\xampp\website\anmelden.php on line 85

    Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'ODBC'@'localhost' (using password: NO) in D:\xampp\xampp\htdocs\xampp\website\anmelden.php on line 86

    Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in D:\xampp\xampp\htdocs\xampp\website\anmelden.php on line 86

was soll ich den jetzt machen :?: :?: :?:
 
Werbung:
das mysql_connect() vor die benutzung der anderen mysql_** funktionen setzen
 
ok das habe ich jetzt auch gemacht --- keine fehler angezeit es geht aber immer noch nicht :(

hab es mal übersichtlicher gemacht (hoffe ich)

  • <html>
    <title>Anmeldung</title>
    <body bgcolor="black" text="#a0a0a0">
    <center>
    <table border="3" width="400" height="200" cellpadding="1" cellspacing="1">
    <tr>
    <td>
    <form action="<? $_SERVER['localhost'] ?>" method="post">
    Nickname:
    </td>
    <td>
    <input type="text" size="17" name="nickname">



    </td>
    </tr>
    <tr>
    <td>
    E-Mail:
    </td>
    <td>
    <input type="text" size="17" name="email">



    </td>
    </tr>
    <tr>
    <td>
    Passwort:
    </td>
    <td>
    <input type="text" size="17" name="Kennwort">



    </td>
    </tr>
    <tr>
    <td>
    Passwort wiederholen:
    </td>
    <td>
    <input type="text" size="17" name="Kennwort2">



    </td>
    </tr>
    <tr>
    <td>
    Kurze Beschreibung wer du bist:
    </td>
    <td>
    <input type="text" size="17" name="beschreibung">



    </td>
    </tr>

    <center>
    </td>
    </tr>
    <tr>
    <td>
    <input type="submit" name="submit" value="Anmelden">
    </td>
    <input type="hidden" name="wasistzutun" value="Anmelden">
    </tr>
    </table>
    </center>
    </form>
    <?php

    //-------------------------------------------------------------------------------------------------------------------

    // Adresse des Servers mit Port
    $servername = "localhost";

    // Benutzername für die Datenbank
    $dbusername = "root";

    // Passwort für die Datenbank
    $dbpassword = "";

    // Name der datenbank
    $dbname = "Loginsystem";

    $table = "Benutzerdaten";

    //--------------------------------------------------------------------------------------------------------------------

    @mysql_connect ("$servername", "$dbusername", "$dbpassword") OR die ("Verbindung zum MySQL-Server fehlgeschlagen");

    mysql_select_db ("$dbname") OR die("Verbindung zur Datenbank fehlgeschlagen");

    //--------------------------------------------------------------------------------------------------------------------

    $nickname = $_POST['name'];
    $nickname = $_POST['nickname'];
    $email = $_POST['email'];
    $Kennwort = $_POST['Kennwort'];
    $Kennwort2 = $_POST['Kennwort2'];
    $beschreibung = $_POST['beschreibung'];
    $wasistzutun = $_POST['wasistzutun'];

    $nickname = mysql_real_escape_string($_POST['nickname']);
    $email = mysql_real_escape_string($_POST['email']);
    $Kennwort = mysql_real_escape_string($_POST['Kennwort']);
    $Kennwort2 = mysql_real_escape_string($_POST['Kennwort2']);
    $beschreibung = mysql_real_escape_string($_POST['beschreibung']);
    $wasistzutun = $_POST['wasistzutun'];
    //--------------------------------------------------------------------------------------------------------------------

    if(isset($wasistzutun)) {
    if($wasistzutun == "Anmelden") {
    if(!($nickname == '' || $email == '' || $beschreibung == '' || $Kennwort == '' || $Kennwort2 == '')) {
    if($Kennwort == $Kennwort2) {
    if($submit) {

    $query="INSERT INTO $table (nickname, email, kennwort, beschreibung) VALUES ('$nickname', '$email', '$Kennwort', '$beschreibung')";
    //--------------------------------------------------------------------------------------------------------------------

    mysql_query($query) OR die(mysql_error());

    //--------------------------------------------------------------------------------------------------------------------

    echo "Du hast dich erfolgreich angemeldet!";
    echo $nickname;

    } else {
    echo "Du hast entweder nicht alle Felder ausgefüllt oder ein

    Fehler ist aufgetreten!";

    }
    }
    }
    }
    }

    //-------------------------------------------------------------------------------------------------------------------
    error_reporting(E_ALL);
    @mysql_close();
    ?>

    </body>
    </html>

Haste noch ne idee ?
 
mach mal statt
Code:
mysql_query($query);
Code:
mysql_query($query) OR die(mysql_error());
 
Werbung:
ne geht leider immer noch nicht, kommt auch kein fehler, übrigens das passwort ist in .md5 gespeichert.

Nochmal danke für die hilfe :D

ich habe das auch oben mal geändert
 
also es kommt
"Du hast dich erfolgreich angemeldet!"
und es ist 100% nix in der Tabelle in der Datenbank?
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben