Frage zu $_Post
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
attribut
befehl
code
datenbank
datum
eintrag
eintragen
formular
funktion
menge
nachfrage
nutz
post
schau
schutz
test
verbindung
verwechseln
zugreifen
zweck
-
Hallo,
ich hab ein Formular:
<form action="lala.php" method="post">
Was man da einträgt, wird auf der nächsten Seite, also lala.php angezeigt, so wie ich s haben möchte.
Aber wenn ich auf blabla, die Werte von lala.php nehme geht das nicht.
Funktioniert das auch nicht?
Kann nur lala auf auf die Seite mit dem Formular zugreifen?
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Erst mal:
Dein Post ist grausam zu lesen und zu verstehen.
Denn lala und blabla sind leicht zu verwechseln.
Besser wäre Seite 1 und Seite 2 (z.B.)
Poste doch mal den Code beider Seiten bezüglich des Formulars und der zu verarbeitenden Seite, damit man besser sieht was du genau brauchst. -
Ok, tut mir leid ^^
Seite1:
<form action="seite2.php" method="post"> Dein Name:<br> <input type="text" size="15" maxlength="20" name="name"><br><br> Dein E-Mail:<br> <input type="text" size="15" maxlength="20" name="mail"><br><br> <input type="submit" value="Abschicken"> </form>
Seite2:
<?php $verbindung = mysql_connect("localhost", "seth93" , "*****") or die("Verbindung zur Datenbank konnte nicht hergestellt werden"); mysql_select_db("seth93") or die ("Datenbank konnte nicht ausgewählt werden"); $name = $_POST["name"]; $mail = $_POST["mail"]; $result = mysql_query("SELECT id FROM test WHERE name LIKE '$name'"); $menge = mysql_num_rows($result); if($menge == 0) { $eintrag = "INSERT INTO test (name, mail) VALUES ('$name', '$mail')"; $eintragen = mysql_query($eintrag); if($eintragen == true) { } } ?>
Ich glaub if und so sind unnötig.
Ich hab das Script von woanders her und etwas verändert, für meine Zwecke.
Seite3:
<?php $verbindung = mysql_connect("localhost", "seth93" , "******") or die("Verbindung zur Datenbank konnte nicht hergestellt werden"); mysql_select_db("seth93") or die ("Datenbank konnte nicht ausgewählt werden"); $name = $_POST["name"]; $mail = $_POST["mail"]; $result = mysql_query("SELECT id FROM test WHERE name LIKE '$name'"); $menge = mysql_num_rows($result); if($menge == 0) { $eintrag = "INSERT INTO test (name, mail) VALUES ('$name', '$mail')"; $eintragen = mysql_query($eintrag); if($eintragen == true) { } } $nProzent = mt_rand(0, 100); echo $name; ?> <div class="progress"><span style="width: <?echo $nProzent?>%;"><center><?echo $nProzent?>%</center></span></div> deien e mail <? echo $mail; ?>
Beitrag geändert: 1.9.2008 17:22:43 von seth93 -
ich muss Karpfen mal wieder recht geben!
<form action="lala.php" method="post">
hiermit schickst (postest) du deine werte, die in dem <form> attribut stehen doch nur zu lala.php...
also stimmt das, was du gesagt hast...
also du hast schon recht. Entweder zum einem oder zum anderen. schau dir mal die $_Get funktion an. Wenn du die daten auch bei seite 3 brauchst übertrag sie doch mit der Get funktion ;) -
Aber wenn es dann funktioniert, solltest du lieber noch den Code mit mysql_real_escape_string() gegen SQL-Injection schützen !
-
Einfach mysql_real_escape_string() einfügen?
Ist egal wo? (Also innerhalb <? und ?>)
Was ist den SQL_Injection.
Bei meinem Kontaktformular kann man eh nur max 100 Wörter reinschreiben, dadurch kann man doch keine Befehle machen oder?
Ok ich schau mir $_GET mal an.
Muss das zu method="get"> geändert werden? -
>> Einfach mysql_real_escape_string() einfügen?
$name = mysql_real_escape_string($_POST["name"]);
>> Was ist den SQL_Injection.
http://de.wikipedia.org/wiki/SQL_Injection ....Suchen hilft, Wikipedia auch
>> Ok ich schau mir $_GET mal an.
>> Muss das zu method="get"> geändert werden?
Ja. -
Du kannst beides weitergeben. Das mit post ist sehr umständlich, da der User immer auf einen Absende-Button kllicken muss, und get ist sehr unsicher, da jeder die Variablen verändern kann.
-
Get mit diesem SQL-Injection schutz müsste doch sicher sein oder kann man da noch weiteres verändern?
Auch mit Schutz?
-
Ich komm mit $_GET nicht voran.
Es ist genauso wie bei $_POST
Also auf Seite1 ist mein Formular.
<form action="seite2.php" method="get">
Seite2:
$name = mysql_real_escape_string($_GET["name"]);
$name = mysql_real_escape_string($_GET["mail"]);
Seite3:
$name = mysql_real_escape_string($_GET["name"]);
$name = mysql_real_escape_string($_GET["mail"]);
Auf Seite 2 werden die noch angezeigt, aber auf Seite 3 nicht mehr.
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage