Problem mit PHP zu MySql

ok mach ich.
dann muss ich es halt noch en bischen abändern, dass nicht jeder die adresse von meinem new user script lesen kann. ist nämlich noch nicht so recht gesichert.
 
Ok hier das gesammt file:
PHP:
<html>
<head>
<link rel="stylesheet" type="text/css" href="style.css">
<style type="text/css">
/* ... hier sind dateispezifische Formate erlaubt ... */
</style>
<title>Rauche Frei </title>
</head>

<body>
<div id="topbar">

<center>
<img src="/top2.gif" >

</img>
</center>
</div>

<div id="blue">
<H2>Freies Rauchen und Freies Nichtrauchen </H2>

<?php;
$username= "$_POST[username]";
$userpass= "$_POST[userpass]";
$usermail= "$_POST[usermail]";

echo $username;
echo $userpass;
echo $usermail;
echo "<p>";
?>

<form method="post" action="user4.php">
        <label>Benutzername:</label><BR><input name="username" type="text"><p>
        <label>Passwort: </label><BR><input name="userpass" type="password" <?php;//id="userpass"><p>
        ?>
        <label>E-Mail: </label><BR><input name="usermail" type="text"><p>
        
        <input name="Eintragen" type="submit" id="login" value="Einloggen">
<p>
<?php;

$userpass = md5($_POST['userpass']);

print_r ($_POST);
echo $_POST[username];

$con= mysql_connect('localhost','web176-akip','eT92') or die(mysql_error());
     mysql_select_db('web176-an',$con) or die(mysql_error());
     
$sql = "INSERT INTO users 
           (username, userpass, UserSession, usermail)
              VALUES
           ('". $_POST['username'] ."','". $userpass ."',NULL,'". $_POST['usermail'] ."')"; 
           
            
       //,'$_POST[null]'     ,'$_POST[userpass]','$_SESSION[ID]','$_POST[usermail]'       'int(11)'     (UserName, UserPass, UserMail)
        
mysql_query($sql) OR die(mysql_error());        

echo $_POST[username];

mysql_close($con);

?>        
        
</div>




<div id="left1">
<H2>
 
<?php;
include "links.php";
?>


</H2>


</div>

<?php;
//include 'sessionhelpers.inc.php';

//if (logged_in())
  //include "userdata.php";
  
?>

<div id="down">
<?php;
include "down.php";
?>

</div>

</body>

</html>

Sorry, ist hald noch en bischen zu gemüllt, aber im zuge einer schnellen antwort lass ichs mal so
 
Zuletzt bearbeitet:
Erklär mir bitte nochmal genau, was passiert bzw. nicht passiert. :)

Zum code:
PHP:
$username= "$_POST[username]";
Ist nicht zu empfehlen.
variablen sollten vom String ausgeklammert werden und bei einem Array Stringkeys immer in ' oder " setzen:
$username= $_POST['username'];

Und so wie ich das sehe werden da immer Werte eingetragen. Auch wenn nur das Formular angezeigt wird.
Du musst den unteren Teil mit einem if einklammern, sodass der nur ausgeführt wird, wenn Formulardaten vorhanden sind.
Dann hast du keine leeren Einträge in der DB.
 
@Hilmy

mach mal bitte genau das, was ich dir geschrieben hab mit dem If um den Block, wo du die Datensätze einfügst herum, denn ich denke dass dort irgendein Mysql Fehler auftritt, weil keine Werte vorhanden sind und es deshalb zu einem die kommt und der Rest einfach nicht mehr ausgegeben wird :)
 
cool, macht vol sinn, habe nicht daran gedacht, dass php aufhören könnte zu parsen, wenn es an einen mysql Fehler kommt.

Hab versucht zu machen was du mir gesagt hasst. Mit { } Klammern. Habe allerdings nioch im Probleme mit der PHP syntax. Ist ne fucking pain.

Mein Code sieht so aus:
PHP:
if ($_POST == TRUE)     
	       {$sql = "INSERT INTO users 
           (username, userpass, UserSession, usermail)
              VALUES
           ('". $_POST['username'] ."','". $userpass ."',NULL,'". $_POST['usermail'] ."')"};
 
Versuch mal nicht nur den Mysql Befehl einzuklammern sondern den ganzen Block
Und am besten nicht mit $_POST, denn das könnte ja irgendwoher kommen, sondern direkt mit dem Button.
Also
PHP:
if(isset($_POST['button']))
 {

$userpass = md5($_POST['userpass']);

print_r ($_POST);
echo $_POST[username];

$con= mysql_connect('localhost','web176-akip','eT92') or die(mysql_error());
     mysql_select_db('web176-an',$con) or die(mysql_error());
     
$sql = "INSERT INTO users 
           (username, userpass, UserSession, usermail)
              VALUES
           ('". $_POST['username'] ."','". $userpass ."',NULL,'". $_POST['usermail'] ."')"; 
           
            
       //,'$_POST[null]'     ,'$_POST[userpass]','$_SESSION[ID]','$_POST[usermail]'       'int(11)'     (UserName, UserPass, UserMail)
        
mysql_query($sql) OR die(mysql_error());        

echo $_POST[username];

mysql_close($con);

}
...
 
Wie ich sehe hat sich das Problem gelöst ;)
Du solltest villeicht noch schauen, denn bei mir im opera wird die Seite nicht ganz korrekt angezeigt. Die Navigation wird unter den Content verschoben. (wahrscheinlich wegen float und der Breite)

Bitte ändere das Thema noch auf gelöst.
 
@SimonErich

Vielen Dank. Funktioniert jetzt alles richtig. Ausser vieleicht ein par kleinen darstellungsfehlern.
Irgendwie werden meine Fenster nur in Firefox korreckt angezeigt. Desshalb habe ich auch das designed for Firefox eingefügt. Ich habe allerdings keine Ahnung wieso es bei IE und Opera icht so recht funktionieren will.
Falls du dir den Rest der Seite einmahl angeschaut hast, hastr du vieleicht auch gesehen, dass es zum Teil auch noch ein par Sonderzeichen giebt, die da nicht hingehören( '; ). Komischerweise aber nur, wenn man eingelogt ist:confused:.

Wie auch immer. Vielen dank für deine Hilfe.

Greetz Hilmy
 
Zurück