This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
sql geht nicht
#11
(15.08.2018, 07:32)m.scatello schrieb: Beispiel:
$query = sprintf($query, mysqli_real_escape_string($mysqli,$name),
mysqli_real_escape_string($mysqli, $passwort_hash),
mysqli_real_escape_string($mysqli, $preis),
mysqli_real_escape_string($mysqli, $email),  
mysqli_real_escape_string($mysqli, $staff));  
Das ist einfach nur Käse. So ist das deutlich besser zu lesen:

$query = sprintf($query, mysqli_real_escape_string($mysqli,$name),
                         mysqli_real_escape_string($mysqli, $passwort_hash),
                         mysqli_real_escape_string($mysqli, $preis),
                         mysqli_real_escape_string($mysqli, $email),  
                         mysqli_real_escape_string($mysqli, $staff));  
Und glaubst du wirklich, dass dein Script jemals zu dieser Ausgabe kommt:

echo '<span style="color:red;font-weight:bold;">Beim speichern ist ein Fehler aufgetreten. </span>';


Ja sieht schon leserlicher aus das stimmt wohl.Vieleicht sollte ich mal einen Editor nutzen der da mit hilft ,direkt im Browser zu schreiben hilft da nix und man muß selbst dran denken um das leserlicher darzustellen und das mache ich nicht immer bzw selten.

Eigentlich dürfte der echo ja nie erscheinen. Weil wenn ein Fehler kommt hat die die() Meldung ja vorrang.
Also sollte mal wohl nur eins von den beiden nehmen.
Als Lösung markieren Zitieren
#12
(19.04.2022, 00:47)admin schrieb: Ich schreibe dein Problem mal hier  rein weil es vieleicht noch andere gibt die das auch haben



<?php
error_reporting(E_ALL); 
ini_set('display_errors', true);
$pdo = new PDO('mysql:host=localhost:3306;dbname=auftrag', 'Name', 'Passwort');
?>
<!DOCTYPE html> 
<html> 
<head>
  <title>Hairlich | Registrierung</title> 
</head> 
<body>
<?php
$showFormular = true;
if(isset($_POST['register'])) {
 $error = false;
 $email = $_POST['email'];
 $preis = $_POST['preis'];
  $staff = $_POST['staff'];
 if(!filter_var($email)) {
 echo '<p class="error"><b>Bitte einen gültigen Benutzernamen angeben</b></p><br>';
 $error = true;
 } 
 if(!$error) { 
 $statement = $pdo->prepare("SELECT * FROM register WHERE email = :email");
 $result = $statement->execute(array('email' => $email));
 $user = $statement->fetch();
 if($user !== false) {
 echo '<p class="error"><b>Dieser Benutzername ist bereits vergeben</b></p>';
 $error = true;
 } 
 }
 if(!$error) { 
 $statement = $pdo->prepare("INSERT INTO register (email, preis, staff) VALUES (:email, :preis, :staff)");
 $result = $statement->execute(array('email' => $email, 'preis' => $preis, 'staff' => $staff));
 if($result) { 
 echo '
 
 <br><h1>Du wurdest erfolgreich registriert. </h1><a href="login.php"><button>zum Login</button></a>';
 $showFormular = false;
 } else {
 var_dump($result);
var_dump($statement);
 }
 } 
}
if($showFormular) {
?>
 <br><br><br><br>
 <br><br><br><br>
<form action="registrieren.php" method="post">
Benutzername:<br>
<input type="text" size="40" maxlength="250" name="email" placeholder="Wähle einen Benutzernamen..."><br><br>
Dein Passwort:<br>
<input type="text" size="40"  maxlength="250" name="passwort" placeholder="Wähle ein Passwort..."><br>
Passwort wiederholen:<br>
<input type="text" size="40" maxlength="250" name="passwort2" placeholder="weitere Infos"><br><br>
Eingeloggt bleiben?<br>
 <select class="" name="staff">
 <option value="false">Diese Option kommt bald</option>
 </select>
 <br><br>
 
 <input name="register" type="submit" value="Registrieren">
</form>
<?php
} //Ende von if($showFormular)
?>
 
<br>
 <a href="login.php" class="alreadyreg">Bereits registriert? -> Anmelden</a>
 
 <style>
body {font-family: Arial, Helvetica, sans-serif; text-align: center; background-color: #E6E6E6;}
input[type=text], select, textarea {
 width: 30%;
 padding: 12px;
 border: 1px solid #ccc;
 border-radius: 4px;
 box-sizing: border-box;
 margin-top: 6px;
 margin-bottom: 16px;
 resize: vertical;
}
 
 input[type=password]{
 width: 30%;
 padding: 12px;
 border: 1px solid #ccc;
 border-radius: 4px;
 box-sizing: border-box;
 margin-top: 6px;
 margin-bottom: 16px;
 resize: vertical;
}
input[type=submit] {
   background-color: #578e8c;
 color: white;
 padding: 12px 20px;
 border: none;
 border-radius: 4px;
 cursor: pointer;
 opacity: 0.8;
}
input[type=submit]:hover {
 background-color: #578e8c;
 opacity: 1.0;
}
.container {
 border-radius: 5px;
 background-color: #f2f2f2;
 padding: 20px;
}
 
 
 
 button{
  background:#1AAB8A;
  color:#fff;
  border:none;
  position:relative;
  height:60px;
  font-size:1.6em;
  padding:0 2em;
  cursor:pointer;
  transition:800ms ease all;
  outline:none;
}
button:hover{
  background:#E6E6E6;
  color:#1AAB8A;
}
button:before,button:after{
  content:'';
  position:absolute;
  top:0;
  right:0;
  height:2px;
  width:0;
  background: #1AAB8A;
  transition:400ms ease all;
}
button:after{
  right:inherit;
  top:inherit;
  left:0;
  bottom:0;
}
button:hover:before,button:hover:after{
  width:100%;
  transition:800ms ease all;
}
 .error{
 color: red;
 
 }
 .alreadyreg{
 text-decoration: none;
 font-size: 10pt;
 color: black;}
 
 .alreadyreg:hover{
 text-decoration: none;
 font-size: 12pt;
 color: red;}
 
</style>
</body>
</html>


Jetzt aber, oder? Wo liegt der Fehler?


Error:

Code

  1. [/url]Notice: Undefined index: preis in /var/www/.php on line 18
  2. [url=https://=10533#codeLine_2_6c506f]bool(false) object(PDOStatement)#3 (1) { ["queryString"]=> string(74) "INSERT INTO register (email, preis, staff) VALUES (:email, :preis, Confusedtaff)" }

SoBig Grinu solltest erstmal kucken wo du preis definierst ? Gar nicht. also muß da erstmal ein Preis Feld dazu ,oder du nimmst den Preiss aus den Sql abfrage raus.

Mach das erstmal dann sehen wir weiter

 Bittte, Bitte kein MySQL über PDO nutzen. Dafür gibt es MySQLI. Das ist performanceschonender und noch einige andere Vorteile.
Als Lösung markieren Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste