Url verbergen / Formular ohne Button

chriha

Mitglied
Tacho,
und zwar hab ich folgende Probleme:
1. Es sollen die Eigenschaften aktualisiert werden, wenn man auf einen Link klickt. Das klappt auch alles sehr gut, jedoch mach ich das mit GET weshalb man nun ziemlich bescheissen könnte, da ja http://www.url.de/index.php?train=a in der Adressleiste angezeigt wird. Mit POST klappt das glaub ich auch nicht, da ja beim Überfahren des Links die Url auch in der Statuszeile angezeigt wird.

2. Ich hab jetzt mal einen Teil einer if - Anweisung (bei meiner Funktion) eingefügt und möchte jetzt bei else eine eMail mit den Variablen an mich schicken lassen (wie ein Formular). Formulare werden aber immer mit einem Button abgeschickt …und falls else zutrifft, sollen die Variablen gleich abgeschickt werden


1. Wie löse ich nun das erste Problem mit der POST Methode, ohne dass der User die Url erfährt?
2. Wie lass ich mir die Variablen zusenden, ohne dass der User etwas davon mitbekommt?


Hier ist mein Code:
PHP:
 <?php

include ("config.inc.php");

$sql_inventar = mysql_query ("SELECT *
                              FROM inventar
                              WHERE userid = '$userid'")
                              or die ("Konnte Inventar nicht ausgeben!" . mysql_error());

$sql_userinfo = mysql_query ("SELECT *
                              FROM userstats
                              WHERE userid = '$userid'")
                              or die ("Fehler 103!" . mysql_error());

// E-Karten anzeigen
$card_a = mysql_result ($sql_inventar, 0, 'ecard_a');
if ($card_a == 0)
    {
        $show_karten = $keine_ecards;
    }
elseif ($card_a == 1)
    {
        $show_karten = $ekarte_a;
    }


// Eigenschaften durch Lesen der Bücher verbessern
switch ($_GET['train'])
    {
        case "a":

                if ($card_a == 1)
                    {
                        $reaktion = mysql_result ($sql_userinfo, 0, 'reaktion');
                        $geschick = mysql_result ($sql_userinfo, 0, 'geschicklichkeit');
                        $sicherheit = mysql_result ($sql_userinfo, 0, 'sicherheit');

                        $reaktion += 2;
                        $geschick += 2;
                        $sicherheit += 2;

                        $update_stats = mysql_query ("UPDATE userstats
                                                      SET reaktion = '$reaktion', geschicklichkeit = '$geschick', sicherheit = '$sicherheit'
                                                      WHERE userid = '$userid'")
                                                      or die ("Konnte Eigenschaften nicht verbessern!" . mysql_error());
                        $update_karten = mysql_query ("UPDATE inventar
                                                      SET ecard_a = '0'
                                                      WHERE userid = '$userid'")
                                                      or die ("Konnte E-Karte nicht löschen!" . mysql_error());
                    }
                else
                    {
                        echo "Du hast keine E-Karten, um diese Aktion durchzuführen!<br>Dein Hackversuch wurde dem Administrator mitgeteilt!";
                        $hacking_zeit = date("H:i:s", time());
                        $hacking_datum = date("d.m.Y", time());
                        $sql_user = mysql_query ("SELECT username
                                                  FROM users
                                                  WHERE userid = '$userid'")
                                                  or die ("Konnte User nicht finden" . mysql_error());
                        $hacking_user = mysql_result ($sql_user, 0, 'username');
                        $hacking_ip = $_SERVER["REMOTE_ADDR"];
                        $hacking_ort = "Verbesserung der Eigenschaften durch E-Karten - Fahrertraining";
                        // Hier kommen die Formularangaben hin, welche bei else abgeschickt werden
                    }
        break;
        default:
        break;
    }
?>

Für Hilfe wär ich dankbar!
 
Ist meines Erachtens nicht möglich.
Du musst in jedem FORM eine URL bzw. Datei angeben, die das dann dem entsprechend bearbeitet. Aber du könntest in dieser Datei dann ein header(Location: url) machen, welches die Daten an das eigentliche Script weitergibt.
Der User bekommt immer mit, was er dir zusendet. Er braucht nur in den Quelltext zu schauen, oder mit einem Überwachungstool im Hintergrund die gesendeten Daten mitloggen.
 
Ja, das mit dem mail() Befehl hab aich schon gefunden, danke.

Das Linkproblem sollte ich vielleicht mit Sessions lösen ... muss mich da aber erstmal einlesen.
 
Zurück