Foren
Neue Beiträge
Foren durchsuchen
Was ist neu?
Neue Beiträge
Profilnachrichten
Online
Anmelden
Registrieren
Aktuelles
Suche
Suche
Nur Titel durchsuchen
Von:
Neue Beiträge
Foren durchsuchen
Menü
Anmelden
Registrieren
App installieren
Installieren
Programmierung
PHP
Userid auslesen und an Session übergeben
JavaScript ist deaktiviert. Für eine bessere Darstellung aktiviere bitte JavaScript in deinem Browser, bevor du fortfährst.
Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden.
Du solltest ein Upgrade durchführen oder einen
alternativen Browser
verwenden.
Auf Thema antworten
Beitrag
[QUOTE="Tini, post: 8377, member: 1861"] Hallo liebe Foren Mitglieder, ich baue gerade eine Webseite mit Datenbank und versuche es gerade das erste mal mit PHP. Einloggen usw, klappt alles, wenn nicht das große ABER wäre. Ich benutze PDO und man loggt sich mit Mail und Passwort ein. Ich brauch aber für die Session die userid um die Datenbank mit Fremdschlüsseln zu beschreiben. so sieht jetzt der Versuch aus die Userid zu finden beim Login: [PHP] <?php if(isset($_POST["submit"])){ require("mysql.php"); $stmt = $mysql->prepare("SELECT * FROM user WHERE mail = :mail"); //$stmt = $mysql->prepare("SELECT id FROM user WHERE mail = :mail"); $stmt->bindParam(":mail", $_POST["mail"]); $stmt->execute(); $count = $stmt->rowCount(); if($count == 1){ //Username ist frei $row = $stmt->fetch(); $row ["userid"] = $_SESSION["userid"]; //test user id speichern $stmt->bindParam(":userid", $_SESSION["userid"]); //test user id speichern $stmt->execute(); //test user id speichern if(password_verify($_POST["pw"], $row["passwort"])){ session_start(); $_SESSION["mail"] = $row["mail"]; $_SESSION["userid"] = $row["userid"]; //test user id speichern header("Location: geheim_kurs_formular.php"); //test id $result = mysql_query("SELECT userid FROM user WHERE mail = ?"); if (!$result) { echo 'Konnte Abfrage nicht ausführen: ' . mysql_error(); exit; } $row = mysql_fetch_row($result); echo $row[0]; // 42 $result = $_SESSION["userid"]; $search_user = $mysql->prepare("SELECT userid FROM user WHERE mail = ? AND passwort = ?"); $search_user->bind_param('ss',$mail,$passwort); $search_user->execute(); $search_result = $search_user->get_result(); if($search_result->num_rows == 1): $search_object = $search_result->fetch_object(); $_SESSION['mail'] = $search_object->userid; endif; // test id ende } else { echo "Der Login ist fehlgeschlagen"; } } else { echo "Der Login ist fehlgeschlagen"; } } ?>[/PHP] ....und wenn ich in der Session versuche die Fremdschlüsseltabelle zu beschreiben gibt es lauter Fehler. [PHP] <?php if(isset($_POST["submit"])){ require("mysql.php"); { //Username ist frei { //User anlegen $_SESSION["userid"] = $userid; $stmt = $mysql->prepare("INSERT INTO ort (name, strasse, hausnummer, plz, ort, tel returning id) VALUES (:name, :strasse, :hausnr, :plz, :ort, :tel, :id)"); //------------------------ Test id aus ort in veranst_ref -------- $stmt = $mysql->prepare("INSERT INTO veranst_ort (no, veranstalter_id, ort_ref) VALUES (NULL, :userid, :id)"); // (insert into ort (name) values ('Name 1') returning id) insert into detail (master_id, val) select id, 'das kommt in detail' from new_id; // $id = $_SESSION['currentid']; //if ( isset($_POST['first_name']) && isset($_POST['last_name']) && isset($_POST['summary'])) { //$sql = "INSERT INTO profile (first_name, last_name, summary,userid) // VALUES (:first_name, :last_name, :summary,:userid)"; // $stmnt = $pdo->prepare($sql); // $stmnt->execute(array( // ':first_name' => $_POST['first_name'], // ':last_name' => $_POST['last_name'], // ':summary' => $_POST['summary'], // ':userid' => $id; // )); // $_SESSION['success'] = "Record added"; // header("Location: index.php"); // return; // } //------------------------- Test ID aus ort ende ------------------ $stmt->bindParam(":name", $_POST["name"]); $stmt->bindParam(":strasse", $_POST["strasse"]); $stmt->bindParam(":hausnr", $_POST["hausnummer"]); $stmt->bindParam(":plz", $_POST["plz"]); $stmt->bindParam(":ort", $_POST["ort"]); $stmt->bindParam(":tel", $_POST["telefon"]); $stmt->bindParam(":id", $id, PDO::PARAM_STR); $stmt->bindParam(":userid", $_SESSION["userid"]); //$stmt->bindParam(":mail", $mail, PDO::PARAM_STR); $stmt->execute(); echo "Dein Veranstaltungsort wurde angelegt"; } } } ?>[/PHP] was ihm jetzt nicht gefällt ist das execute(); und PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens. Jetzt zeigt er mir auch eine Fehlermeldung in einem anderen Php Abschnitt wo $stmt->execute(); steht. Kann mir Irgendwer helfen? Vielen lieben Dank im Vorraus. Liebe Grüße Tini [/QUOTE]
Zitate
Authentifizierung
Antworten
Programmierung
PHP
Userid auslesen und an Session übergeben
Oben
Unten