Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » PHP » schreiben von mysql mit php

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
01.02.2010, 17:20 Uhr
Möchtegern proggi



im folgenden code soll der textfeld eintrag gespeichert werden.
(die accountdaten schreibe ich logischerweise nicht rein.)


PHP 4:
<?php
error_reporting(E_ALL);

// Zum Aufbau der Verbindung zur Datenbank
define ( 'MYSQL_HOST',      '' );
define ( 'MYSQL_BENUTZER',  '' );
define ( 'MYSQL_KENNWORT',  '' );
define ( 'MYSQL_DATENBANK', '' );

$db_link = mysql_connect (MYSQL_HOST, MYSQL_BENUTZER, MYSQL_KENNWORT);

if ( $db_link )
{
  
}
else
{
    // hier sollte dann später dem Programmierer eine
    // E-Mail mit dem Problem zukommen gelassen werden
    die('keine Verbindung möglich: ' . mysql_error());
}
mysql_close($db_link );


$username       =       $_POST['username'];
$password       =       $_POST['password'];
$email          =       $_POST['email'];







$sql = "
  INSERT INTO `real_war`
  (
    `sername`,`userpassword`, `email`
  )
  VALUES
  (
  '$username','$password', '$email'
  );
"
;
$db_erg = mysql_query($sql)
   or die("Anfrage fehlgeschlagen: " . mysql_error());

?>

<form action="" method="post">
    <br><br><br>
    Username:
    <input type="text" name="username">
    Passwort:
    <input type="text" name="password">
    Email:
    <input type="text" name="email">

    <input type="submit" name="accept" value="Speichern">
        
</form>




dann erscheint aber volgende fehlermeldung:



Code:
Notice: Undefined index: username in /data/multiserv/users/209282/projects/295288/www/regist.php on line 25

Notice: Undefined index: password in /data/multiserv/users/209282/projects/295288/www/regist.php on line 26

Notice: Undefined index: email in /data/multiserv/users/209282/projects/295288/www/regist.php on line 27

Warning: mysql_query() [function.mysql-query]: Access denied for user 'www-data'@'localhost' (using password: NO) in /data/multiserv/users/209282/projects/295288/www/regist.php on line 45

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /data/multiserv/users/209282/projects/295288/www/regist.php on line 45
Anfrage fehlgeschlagen: Access denied for user 'www-data'@'localhost' (using password: NO)





was kann ich machen, damits läuft?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
01.02.2010, 17:47 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


naja ich würde an deiner stelle den code mal nochmals anschaun:

1. du schließt deine datenbankverbindung bevor du sie benutzt.
2. du führst deinen code bereits aus bevor du überhaupt dem user eine form präsentiert hast
3. du schreibst un'escape'te strings des users in deinen query. mysql_real_escape_string ist dein freund!
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
01.02.2010, 19:10 Uhr
Möchtegern proggi



oh ^^ iwie logisch.

hab grad heut angefangen mysql zu machen.^^

jetzt mit geändertem code.


PHP 4:
<?php
$username       =       $_POST['username'];
$password       =       $_POST['password'];
$email          =       $_POST['email'];

?>


<form action="" method="post">
    <br><br><br>
    Username:
    <input type="text" name="username">
    Passwort:
    <input type="text" name="password">
    Email:
    <input type="text" name="email">

    <input type="submit" name="accept" value="Speichern">
        
</form>


<?php
error_reporting(E_ALL);

// Zum Aufbau der Verbindung zur Datenbank
define ( 'MYSQL_HOST',      'localhost' );
define ( 'MYSQL_BENUTZER',  'redsquad@1' );
define ( 'MYSQL_KENNWORT',  '' );
define ( 'MYSQL_DATENBANK', 'redsquad@1-namen' );

$db_link = mysql_connect (MYSQL_HOST, MYSQL_BENUTZER, MYSQL_KENNWORT);

if ( $db_link )
{
  
}
else
{
    // hier sollte dann später dem Programmierer eine
    // E-Mail mit dem Problem zukommen gelassen werden
    die('keine Verbindung möglich: ' . mysql_error());
}

$sql = "
  INSERT INTO `real_war`
  (
    `username`,`userpassword`, `email`
  )
  VALUES
  (
   NULL, $username, $password, $email
  );
"
;
$db_erg = mysql_query($sql)
   or die("Anfrage fehlgeschlagen: " . mysql_error());
mysql_close($db_link );
?>





aber es kommt eine Fehlermeldung.


PHP 4:
Anfrage fehlgeschlagen: No database selected


Bearbeitung von 0xdeadbeef:

Passwort entfernt


Dieser Post wurde am 01.02.2010 um 20:16 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
01.02.2010, 19:11 Uhr
Möchtegern proggi



Die NULL im text is egal, ob des drinsteht.

s geht trotzdem net.


(im inet steht, dass da NULL reinkommt. braucht man des?)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
01.02.2010, 19:57 Uhr
0xdeadbeef
Gott
(Operator)


Du musst vor mysql_query mit mysql_select_db die Datenbank auswählen, auf die die Anfrage angewandt werden soll. Wenn ich das richtig lese, wäre das bei dir etwa

C++:
mysql_select_db('namen', $db_link);


nach dem Öffnen der Verbindung und vor dem Abschicken der Anfrage.

Und du solltest wirklich die Benutzereingaben durch mysql_real_escape_string jagen, bevor du sie in die Abfrage schreibst, sonst bist du SQL-Injections hoffnungslos ausgeliefert. Auch musst du sie in der Abfrage quoten, sonst haut der SQL-Parser dir das um die Ohren. Sofern dir keiner SQL-Code untergejubelt hat, jedenfalls - stell dir vor jemand schreibt "NULL, NULL, NULL); DROP DATABASE namen; -- " ins username-Feld.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
01.02.2010, 20:11 Uhr
Möchtegern proggi



oh shit

hab passwort reingesetzt.

is ja eig. nichts wichtiges drauf

und ändern kann ichs au noch.



ne datenbank heißt redsquad@1-namen

is beim webhoster halt so.

thx
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
01.02.2010, 20:17 Uhr
0xdeadbeef
Gott
(Operator)


Ich hab das mal für dich da weggenommen. Solltest dir übrigens sicherere Passwörter überlegen.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
01.02.2010, 20:26 Uhr
Möchtegern proggi



ich habs eingefügt unter


PHP 4:
mysql_select_db('redsquad@1-namen', $db_link);
$db_erg = mysql_query($sql)
   or die("Anfrage fehlgeschlagen: " . mysql_error());
mysql_close($db_link );




noch immer der selbe fehler.

passwort hab ich auch geändert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
01.02.2010, 20:42 Uhr
0xdeadbeef
Gott
(Operator)


Prüf den Rückgabewert von mysql_select_db und gib ggf. mysql_error vor mysql_query aus.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
01.02.2010, 21:37 Uhr
Möchtegern proggi



hab alles erdenkliche versucht.


Problem:

gestern hats beim ausprobieren noch geklappt.

heute gehts neme.

hab bestimmt iwas verändert.

hab aber kp was. :-((

also heeut mach ich nichts mehr.
nur noch pennen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ PHP ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: