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.
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.
Zitieren


Gehe zu:


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