Antworten auf deine Fragen:
Neues Thema erstellen

anmeldung zum webshop, stimmt das??php, übung

Merlin10

Noch nicht viel geschrieben

Hallo Leute
ich sitze hier und überlege was das ist, ich habe ein formular für eine anmelung zu einem Webshop, ist eine Übungs aufgabe zum studium. ok weiter, ich fülle das Formular aus und nichts Passiert, die daten werden auch nicht auf dem Server gespeichert, die Verbindung steht, und die tbl stimmen auch. vlt könnt ihr mal drüber schauen,
Danke
Gruss Jürgen

Hier die Hauptseite
PHP:
require_once ("class_webshop.php");
require_once ("class_texte-neu.php");


$art = new webshop();

if(isset($_REQUEST['pdf']))
{
    $art->pdfliste();
}
$art->inhalt($text[0]);
  $art->anzeigen();
  $art->inhalt($text[1]);
if(isset($_REQUEST['neuanmeldung']))
  $art->setKundenDaten(
       array(
             'name'     => $_REQUEST['name'],
             'vorname'  => $_REQUEST['vorname'],
             'plz'      => $_REQUEST['plz'],
             'passwort' => $_REQUEST['passwort'],
             'ort'      => $_REQUEST['ort'],
             'strasse'  => $_REQUEST['strasse'],
             'kennung'  => $_REQUEST['kennung'],
             'email'    => $_REQUEST['email'])
            );
$art->setTitel($titetext);
$art->kopf();

if (!empty($_REQUEST['kennung']) && !empty($_REQUEST['passwort']))
    {
          $art->setKundenNummer($_REQUEST['kennung'], $_REQUEST['passwort']);
}

if($art->setKundenNummer($kennung, $passwort) == 0)
{
  if(!isset($_REQUEST['neu']))
    $art->inhalt($text[5]);
  else
    $art->inhalt($text[6]);
}
elseif(isset($_REQUEST['wk']))
{
  $art->inhalt($text[3]);
  $art->auswahl($art->setKundenNummer()); # neuer Parameter!
  $art->inhalt($text[2]);
}
elseif(isset($_REQUEST['order']))
{
  $art->bestellen($art->getKundenNummer());
  $art->inhalt($text[4]);
}
else
{
  if(!empty($_REQUEST['id']))
  {
    $art->waehlen($_REQUEST['id'],
    $art->getKundenNummer()); # neuer Parameter!
  }
  #$art->inhalt($text[0]);
  #$art->anzeigen();
  #$art->inhalt($text[1]);
}
$art->fuss();
?>

Hier die scriptseite 1 zum erfassen der Kundendaten stimmt das mit dem bind Param bin mir da nicht sicher??????
PHP:
class kunde
{
 /* private $KndNr = 0;*/
  private $dbh;

  public function __construct(&$dbh)
  {
  if (is_object($dbh) && ($dbh instanceof PDO))
  $this->dbh = $dbh;
  else
  $this->KndNr = time();
  if (isset($_SESSION['kunde']))
  {
  $this->KndNr = $_SESSION['kunde'];
  }
  }


   
public function setKundenNummer($kennung, $passwort)
{
  $this->KndNr = 0;
  if(!empty($kennung) && !empty($passwort))
  {
  try
  {
  $sql = "SELECT k_kundennummer
  FROM ws_kunden
  WHERE k_kennung = :kennung
  AND k_passwort = :passwort";
  $result = $this->dbh->prepare($sql);
  $result->bindParam(':kennung', $kennung, PDO::PARAM_STR, 20);
  $result->bindParam(':passwort',$passwort, PDO::PARAM_STR, 32);
  $result->execute();

  $tmp = $result->fetchAll();
  if(isset($tmp[0]['k_kundennummer']) && !empty($tmp[0]['k_kundennummer']))
  {
  $this->KndNr = (integer)$tmp[0]['k_kundennummer'];
  }
  $_SESSION['kunde'] = $this->KndNr;
  return $this->KndNr;
  }
  catch(PDOException $e)
  {
  echo $e->getMessage();
  }
  }
}
public function setKundenDaten($daten)
{
  if(!is_array($daten)) return false;
  try
  {
  $sql = "INSERT INTO `mondmagi_webshop`.`ws_kunden` (k_name, k_vorname, k_plz, k_ort,
  k_strasse, k_email, k_passwort,
  k_kennung)
  VALUES (:name, :vorname, :plz, :ort, :strasse,
  :email, :passwort, :kennung)";
  $result = $this->dbh->prepare($sql);
   if(empty($daten['name']))
   return false;
  $result->bindParam(':name', $daten['name'], PDO::PARAM_STR, 30);
     if(empty($daten['vorname']))
   return false;
  $result->bindParam(':vorname', $daten['vorname'], PDO::PARAM_STR, 30);
     if(empty($daten['plz']))
   return false;
   $result->bindParam(':plz', $daten['plz'], PDO::PARAM_STR, 6);
     if(empty($daten['ort']))
   return false;
   $result->bindParam(':ort', $daten['ort'], PDO::PARAM_STR, 20);
  if(empty($daten['strasse']))
   return false;
   $result->bindParam(':strasse', $daten['strasse'], PDO::PARAM_STR, 30);
  if(empty($daten['email']))
   return false;
   $result->bindParam(':email', $daten['email'], PDO::PARAM_STR, 30);
  if(empty($daten['passwort']))
   return false;
   $result->bindParam(':passwort',md5 ($daten['passwort']), PDO::PARAM_STR, 32);
  if(empty($daten['kennung']))
   return false;
  $result->bindParam(':kennung', $daten['kennung'], PDO::PARAM_STR, 20);
  $result->execute();
  if($result->rowCount()== 1)
  {
  echo "Datensatz wurde eingetragen.";
  return true;
  }
  else
  return false;
  }
  catch(PDOException $e)
  {
  echo $e->getMessage();
  }
}

}
hier die Formulare
PHP:
$text = array();
$text[0][0]="<h1>Webshop</h1>";
$text[0][1]="<p>Folgende Artikel k&ouml;nnen Sie bei uns bestellen.</p>";
$text[0][2]="<p><a href=\"".$_SERVER['PHP_SELF']."?pdf\"><input type=\"button\" value=\"Artikelliste als PDF\"</a></p>";
$text[1][0]="<br /><a href=\"".$_SERVER['PHP_SELF']."?wk\"><input type=\"button\" value=\"Warenkorb\" /></a>";
$text[2][0]="<p><a href=\"".$_SERVER['PHP_SELF']."?order\">bestellen</a></p>";
$text[2][1]="<p><a href=\"". $_SERVER['PHP_SELF']."\">zur&uuml;ck zur Artikelauswahl</a>";
$text[3][0]="<h1>Warenkorb</h1>";
$text[3][1]="<p>Im Warenkorb liegen:</p>";
$text[4][0]="<p>Ihre Bestellung wurde aufgenommen.";
$text[4][1]="<br/>Vielen Dank.</p>";
$text[4][2]="<p><a href=\"". $_SERVER['PHP_SELF']."\">zur&uuml;ck zur Artikelauswahl</a>";
       
$text[5][0]="<h3>Bitte melden Sie sich an.</h3>";
$text[5][1]="<form method=\"post\"  action=\"".$_SERVER['PHP_SELF']."\" accept-charset=\"utf-8\">";
$text[5][3]="<table>";
$text[5][4]="<tr>\n<td>Anmeldename: </td><td><input name=\"kennung\" type=\"text\"></td>\n</tr>";
$text[5][5]="<tr>\n<td>Passwort: </td><td><input name=\"passwort\" type=\"password\"></td>\n</tr>";
$text[5][6]="<tr>\n<td colspan=\"2\" align=\"center\"><hr><input type=\"submit\" value=\"anmelden\"></td>\n</tr>";
$text[5][7]="</table>";
$text[5][8]="</form>\n<br />";
$text[5][9]="<a href=\"".$_SERVER['PHP_SELF']."?neu\">Neuer Kunde?</a>";
$text[6][0]="<h3>Bitte geben Sie ihre Daten ein.</h3>\n".
            "<p>Diese werden selbstverständlich vertraulich behandelt.</p>";
$text[6][1]="<form method=\"post\" action=\"".$_SERVER['PHP_SELF']."\" accept-charset=\"utf-8\">";
$text[6][2]="<input type=\"hidden\" name=\"neuanmeldung\">";
$text[6][3]="<table>";
$text[6][4]="<tr>\n<td>Name: </td><td><input name=\"name\" type=\"text\"></td>\n</tr>";
$text[6][5]="<tr>\n<td>Vorname: </td><td><input name=\"vorname\" type=\"text\"></td>\n</tr>";
$text[6][6]="<tr>\n<td>PLZ: </td><td><input type=\"text\" name=\"plz\"></td>\n</tr>";
$text[6][7]="<tr>\n<td>Ort: </td><td><input name=\"ort\" type=\"text\"></td>\n</tr>";
$text[6][8]="<tr>\n<td>Stra&szlig;e: </td><td><input name=\"strasse\" type=\"text\"></td>\n</tr>";
$text[6][9]="<tr>\n<td>EMail-Adresse: </td><td><input name=\"email\" type=\"text\"></td>\n</tr>";
$text[6][5]="<tr>\n<td>Anmeldename: </td><td><input name=\"kennung\" type=\"text\"></td>\n</tr>";
$text[6][6]="<tr>\n<td>Passwort: </td><td><input name=\"passwort\" type=\"password\"></td>\n</tr>";
$text[6][12]="<tr>\n<td colspan=\"2\" align=\"center\"><hr><input type=\"submit\" value=\"anmelden\"></td>\n</tr>";
$text[6][13]="</table>";
$text[6][14]="</form>";
 

Duddle

Posting-Frequenz: 14µHz

Es ist zu wenig Code, um es lokal nachzubauen und zu testen; es ist zu viel Code, um nach offensichtlichem wie Syntaxfehlern zu suchen.
Grenze den Fehler Schritt für Schritt ein, bis du die Quelle gefunden hast. Lass dir die SQL-Anfragen vor dem Abschicken ausgeben und führe sie manuell in der Datenbank aus. Dann siehst du, ob es zu Fehlern kommt oder die Anfrage das korrekte Ergebnis produziert.

Edit: dein Konstruktor für kunde ist seltsam. Du prüfst, ob du einen korrekten DB-Handle hast, aber machst im negativen Fall nichts konkretes um das zu korrigieren.


Duddle
 

Merlin10

Noch nicht viel geschrieben

Danke für die Antworten,

jepp ist für das fernstudium ils. hänge an dem heft mit Pause, ca 3mon dran. Ich mach das mit dem prüfen,und auch den constructor oh vlt fehlt das, denn auch die artikel werden angezeigt doch in den warenkorb geht nichts rein. das Interresante ist, das ich nebenbei an meiner webside arbeite, und für das kontakt formular, fast die selbe einstellung habe, das die daten auf dem server gespeichert werden und das klappt ohne probleme.
danke
gruss Jürgen
 
F

fitandbeauty

Guest

Geht mir genauso. Stehe schon fast vor der Selbstaufgabe. Habe niemanden gefunden der eine Lösung hatte.

Falls du jemals eine Lösung findest lass es mich wissen.
Gebe dir Bescheid, wenn ich eine finde.
gruss anita
 

Duddle

Posting-Frequenz: 14µHz

Algorithmen tun exakt das, was man ihnen aufgibt. Tun sie das nicht, ist die Logik falsch oder die Daten werden falsch behandelt. Tritt ein Fehler auf, kann dieser (fast) immer durch Debugging eingegrenzt, gefunden und behoben werden.

Lass dir anzeigen, wann welche Daten wie aussehen. Vergleiche das mit der Erwartung. Verfolge abweichende Ist- und Soll-Zustände solange, bis die Quelle gefunden ist.


Duddle
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.565
Beiträge
1.538.065
Mitglieder
67.488
Neuestes Mitglied
Andrew56524
Oben