Varibalen von html Nach PHP

Vampirgeist

Grünschnabel
Hallo leute

ich habe ein problem und ich weiß nicht weiter ich habe ein Login und mächte nun über eine html seite das problem ist wie kann ich dir daten von der HTML seite an die daten des php scripts übergeben.


stelle mal bei Sachen rein

HTML:
<html>
<body text="#000000" bgcolor="#CCCCCC" oncontextmenu="return false" ondragstart="return false" onselectstart="return false" bgproperties="fixed" lang="de">
<center>
    <h3>
        <font face="Time New Roman">
            User erstellen
        </font>
    </h3>
</center>
<form action="db.php" method="get">
    <table border="1">
        <tr>
            <td>
                User ID:
            </td>
            <td>
                <input name="$ID" type="Zahl" maxlength="5" align="LEFT" />
            </td>
        </tr>
        <tr>
            <td>
                User Name:
            </td>
            <td>
                <input name="$Name" type="text" maxlength="10" align="LEFT" />
            </td>
        </tr>
        <tr>
            <td>
                Passwort:
            </td>
            <td>
                <input name="$Passwort" type="text" align="LEFT" maxlength="6" />
            </td>
        </tr>
        <tr>
            <td>
                Nachname:
            </td>
            <td>
                <input name="$Nachname" type="text" align="LEFT" maxlength="50" />
            </td>
        </tr>
        <tr>
            <td>
                Vorname:
            </td>
            <td>
                <input name="$Vorname" type="text" align="LEFT" maxlength="50" />
            </td>
        </tr>
    </table>
<input type="button" value="User Erstellen" onclick="db.php" />
</form>
</body>
</html>

das ist das PHP script

PHP:
<?php
// Definition der Benutzer
$benutzer[echo ("$ID")]["Nickname"] =echo ("$Name");
$benutzer[echo ("$ID")]["Kennwort"] =echo ("$Passwort");
$benutzer[echo ("$ID")]["Nachname"] =echo ("$Nachname");
$benutzer[echo ("$ID")]["Vorname"]  =echo ("$Vorname");

// Sie können an dieser Stelle beliebig viele Benutzer anlegen.
// Achten Sie dabei nur auf die Fortführung der Nummer.

// Aufbau der Datenbankverbindung
$connectionid  = mysql_connect ("localhost", "vampirgeist", "11390");
if (!mysql_select_db ("vampirgeist", $connectionid))
{
  die ("Keine Verbindung zur Datenbank");
}

// Zuerst alle Datensätze löschen um keine Dopplungen zu bekommen.
mysql_query ("DELETE FROM benutzerdaten");

// Daten eintragen
while (list ($key, $value) = each ($benutzer))
{
  // SQL-Anweisung erstellen
  $sql = "INSERT INTO ".
    "benutzerdaten (Nickname, Kennwort, Nachname, Vorname) ".
  "VALUES ('".$value["Nickname"]."', '".
                       md5 ($value["Kennwort"])."', '".
                       $value["Nachname"]."', '".
                       $value["Vorname"]."')";
  mysql_query ($sql);

  if (mysql_affected_rows ($connectionid) > 0)
  {
    echo "Benutzer erfolgreich angelegt.<br>\n";
  }
  else
  {
   echo "Fehler beim Anlegen der Benutzer.<br>\n";
  }
}
?>


Bitte um Hilfe danke schon mal in vorhaus wenn fragen sind immer her damit


mfg

vampirgeist
 
Ich verstehe das Problem nicht ganz. Die Daten werden doch bestimmt geschickt. Versuch mal in der HTML Datei z.B. das Namensfeld nicht '$Name' sondern nur 'Name' zu benennen und dann in der PHP Datei echo $_GET['Name'];

Passiert da etwas? Also gibt er das aus was du im Namesfeld eingegeben hast?


PS: Wenn wir schon dabei sind, die Logindaten solltest du mit POST und nicht mit GET übergeben, sonst kann ja jeder das PW im Querystring lesen ;)
 
PHP:
   $benutzer[echo ("$ID")]["Nickname"] =echo ("$Name");
    $benutzer[echo ("$ID")]["Kennwort"] =echo ("$Passwort");
    $benutzer[echo ("$ID")]["Nachname"] =echo ("$Nachname");
    $benutzer[echo ("$ID")]["Vorname"]  =echo ("$Vorname");

Da hast du schon dein Problem

PHP:
    $benutzer[$_GET["ID"]]["Nickname"] =$_GET["Name"];
    $benutzer[$_GET["ID"]]["Kennwort"] =$_GET["Passwort]";
    $benutzer[$_GET["ID"]]["Nachname"] =$_GET["Nachname"];
    $benutzer[$_GET["ID"]]["Vorname"]  =$_GET["Vorname"];

Auch wenn Du mit superglobals = on arbeitest , versteh ich nicht warum du dann noch eine Ausgabe davor setzt da Du doch eine Variable zuweisen möchtest.
also echo $_GET["Name"]; wird mir sicher den Namen ausgeben , aber ich glaube das er ein Problem damit bekommt wenn ich sage $x = echo $_GET["Name"];

Des weiteren immer so vor gehen als hättest du Superglobals = off.

Und die Übergabe würde ich mittels POST machen , sonst hast oben in der URL alles stehen wie wichtigere Dinge , zum Beispiel das Passwort ;)
 
Zuletzt bearbeitet:
Mit folgendem Skript lassen sich neue Benutzer registrieren:
PHP:
<?php

	$link = mysql_connect('localhost', 'vampirgeist', '11390')
		or die('Verbindungaufbau zum Datenbankserver schlug fehl!');
	mysql_select_db('vampirgeist', $link)
		die('Auswahl der Datenbank schlug fehl!');

	if( isset($_POST['submit']) ) {
		$query = "
			INSERT INTO
			        `benutzerdaten`
			  SET
			        `Nickname` = '".mysql_real_escape_string($_POST['nickname'])."',
			        `Kennwort` = '".md5($_POST['passwort'])."',
			        `Nachname` = '".mysql_real_escape_string($_POST['nachname'])."', 
			        `Vorname` = '".mysql_real_escape_string($_POST['vorname'])."'
			";
		mysql_query($query)
			or die('Datenbankabfrage schlug fehl: '.mysql_error());
		if( mysql_affected_rows($link) > 0 ) {
			echo 'Benutzer erfolgreich angelegt.';
		}

	}

?>

…

<form action="<?php echo $_SERVER['REQUEST_URI']; ?>" method="post" id="registration-form">
	<p><label for="registration-form:nickname">Nickname</label>
		<input type="text" id="registration-form:nickname" name="nickname" maxlength="10"></p>
	<p><label for="registration-form:passwort">Passwort</label>
		<input type="password" id="registration-form:passwort" name="passwort" maxlength="6"></p>
	<p><label for="registration-form:nachname">Nachname</label>
		<input type="text" id="registration-form:nachname" name="nachname" maxlength="50"></p>
	<p><label for="registration-form:vorname">Vorname</label>
		<input type="text" id="registration-form:vorname" name="vorname" maxlength="50"></p>
	<p><input type="submit" name="submit" value="Neuen Benutzer registrieren"></p>
</form>
Übrigens solltest du dich für einheitliche Begrifflichkeiten entscheiden: heißt es nun „Kennwort“ oder „Passwort“, heißt es nun „Nickname“, „User Name“ oder doch nur „Name“?
 
HTML:
<form action="db.php" mehtod="get" type="text/css">...</form>


Eventuell fehlte dir auch nur die Angabe type dabei , notfalls schreib mal bei action= die komplette URL hin die Du aufrufen möchtest.
 
Naja weisst was ich meine , ehm ich nenn es einfach so wie ich es schreibe meist damit komm ich am besten klar ;)

So hab ich es damals gelernt das man noch nen type="text/css" hinknallt und so mach ich das heute noch , es sei denn es ist ein Datei Upload. Kann auch sein das es der völlige Blödsinn ist und ich das eigentlich auch rauslassen könnte da es eh nix bezweckt.

Aber dafür hab ich momentan keine Zeit :(
 
Zuletzt bearbeitet:
Kann auch sein das es der völlige Blödsinn ist und ich das eigentlich auch rauslassen könnte da es eh nix bezweckt.
Du sagst es: es ist absolut völliger Blödsinn! Übrigens klassifiziert der Media-Typ „text/css“ CSS-Quellcode.

Wer hat dir soetwas überhaupt beigebracht?
 
Zurück