Zou eventueel aan je php-versie kunnen liggen of wellicht heb je toch nog iets anders als hoe ik het heb. Voeg anders gewoon de code van toevoegen.php toe aan die van input.php.quote:Op zaterdag 1 augustus 2015 22:03 schreef jodelahity het volgende:
Ja alles wordt gewoon toegevoegd. Alleen het wordt toegevoegd aan de database voordat het gevalideerd wordt. Dus ook 'test' komt als e-mail erin terwijl dat eigenlijk alleen 'test@hotmail.com' zou moeten zijn bijvoorbeeld.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | <?php $servername = "localhost"; $username = "root"; $password = "***"; $dbname = "myDB"; // Create connection $conn = new mysqli($servername, $username, $password, $dbname); // Check connection if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } function test_input($data) { $data = trim($data); $data = stripslashes($data); $data = htmlspecialchars($data); return $data; } if(isset($_POST["submit"])) { $naam=$_POST['naam']; $email=$_POST['email']; $website=$_POST['website']; $comment=$_POST['comment']; if (empty($_POST["naam"])) { $naamErr = "Het invullen van een naam is noodzakelijk"; } else { $naam = test_input($_POST["naam"]); // check if naam only contains letters and whitespace if (!preg_match("/^[a-zA-Z ]*$/",$naam)) { $naamErr = "Alleen letters en spaties zijn toegestaan"; } } if (empty($_POST["email"])) { $emailErr = "Een e-mail adres is noodzakelijk"; } else { $email = test_input($_POST["email"]); // check if email address is well-formed if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { $emailErr = "Geen kloppend e-mail formaat"; } } if (empty($_POST["website"])) { $website = ""; } else { $website = test_input($_POST["website"]); // check if URL address syntax is valid (this regular expression also allows dashes in the URL) if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website)) { $websiteErr = "Ongeldig websiteformaat"; } } if (empty($_POST["comment"])) { $comment = ""; } else { $comment = test_input($_POST["comment"]); } if ($naamErr=='' and $emailErr=='' and $websiteErr=='') { $sql = $conn->prepare("INSERT INTO gebruikerscompleet (naam, email, website, comment) VALUES (?, ?, ?, ?)"); $sql->bind_param('ssss', $naam, $email, $website, $comment); if (!$sql->execute()) { echo "Error: " . $sql->error; } else { echo "Succesvol toegevoegd"; } } } $conn->close(); ?> |
Mijn php versie is 5.5.12quote:Op zaterdag 1 augustus 2015 22:06 schreef Arcee het volgende:
[..]
Zou eventueel aan je php-versie kunnen liggen of wellicht heb je toch nog iets anders als hoe ik het heb. Voeg anders gewoon de code van toevoegen.php toe aan die van input.php.
Dus input.php wordt dan:
[ code verwijderd ]
En dan <?php include 'toevoegen.php';?> uit het formulier halen.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | <?php // define variables and set to empty values $naamErr = $emailErr = $websiteErr = ""; $naam = $email = $comment = $website = ""; if ($_SERVER["REQUEST_METHOD"] == "POST") { if (empty($_POST["naam"])) { $naamErr = "Het invullen van een naam is noodzakelijk"; } else { $naam = test_input($_POST["naam"]); // check if naam only contains letters and whitespace if (!preg_match("/^[a-zA-Z ]*$/",$naam)) { $naamErr = "Alleen letters en spaties zijn toegestaan"; } } if (empty($_POST["email"])) { $emailErr = "Een e-mail adres is noodzakelijk"; } else { $email = test_input($_POST["email"]); // check if email adadress is well-formed if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { $emailErr = "Geen kloppend e-mail formaat"; } } if (empty($_POST["website"])) { $website = ""; } else { $website = test_input($_POST["website"]); // check if URL address syntax is valid (this regular expression also allows dashes in the URL) if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website)) { $websiteErr = "Ongeldig websiteformaat"; } } if (empty($_POST["comment"])) { $comment = ""; } else { $comment = test_input($_POST["comment"]); } } function test_input($data) { $data = trim($data); $data = stripslashes($data); $data = htmlspecialchars($data); return $data; } ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | <?php $servername = "localhost"; $username = "root"; $password = "noeska"; $dbname = "myDB"; // Create connection $conn = new mysqli($servername, $username, $password, $dbname); // Check connection if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } // Onderstaande stukje heb ik toegevoegd if(isset($_POST["submit"]) and $naamErr=='' and $emailErr=='' and $websiteErr=='') { $naam=$_POST['naam']; $email=$_POST['email']; $website=$_POST['website']; $comment=$_POST['comment']; $sql = $conn->prepare("INSERT INTO gebruikerscompleet (naam, email, website, comment) VALUES (?, ?, ?, ?)"); $sql->bind_param('ssss', $naam, $email, $website, $comment); if ($conn->query($sql) === TRUE) { echo "Succesvol toegevoegd"; } else { echo "Error: " . $sql . "<br>" . $conn->error; } } $conn->close(); ?> |
1 2 3 4 | if ($conn->query($sql) === TRUE) { // lijn 31 echo "Succesvol toegevoegd"; } else { echo "Error: " . $sql . "<br>" . $conn->error; // lijn 34 |
Zal hier goed naar kijkenquote:You are mixing mysqli and mysql extensions, which will not work.
1 | $stmt->execute(); |
1 2 3 4 5 | if ($conn->query($sql) === TRUE) { echo "Succesvol toegevoegd"; } else { echo "Error: " . $sql . "<br>" . $conn->error; } |
Ik zoek o.a. bij stackoverflow hierop maar is nog niet gelukt (ook al zijn er wel veel zoekresultaten voor deze foutmeldingen)quote:Warning: mysqli::query() expects parameter 1 to be string, object given in
Catchable fatal error: Object of class mysqli_stmt could not be converted to string in
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | <?php $servername = "localhost"; $username = "root"; $password = "***"; $dbname = "myDB"; // Create connection $conn = new mysqli($servername, $username, $password, $dbname); // Check connection if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } // Onderstaande stukje heb ik toegevoegd if(isset($_POST["submit"]) and $naamErr=='' and $emailErr=='' and $websiteErr=='') { $naam=$_POST['naam']; $email=$_POST['email']; $website=$_POST['website']; $comment=$_POST['comment']; $sql = $conn->prepare("INSERT INTO gebruikerscompleet (naam, email, website, comment) VALUES (?, ?, ?, ?)"); $sql->bind_param('ssss', $naam, $email, $website, $comment); if ($conn->query($sql) === TRUE) { // [b]dit is de eerste lijn waar het over gaat[/b] echo "Succesvol toegevoegd"; } else { echo "Error: " . $sql . "<br>" . $conn->error; // [b]dit is de tweede lijn waar het over gaat[/b] } } $conn->close(); ?> |
1 2 3 4 5 | if ($conn->query($sql) === TRUE) { echo "Succesvol toegevoegd"; } else { echo "Error: " . $sql . "<br>" . $conn->error; } |
quote:Op zondag 2 augustus 2015 09:34 schreef jodelahity het volgende:
Validatie werkt dus, alleen het versturen na de validatie (als de gegevens goed zijn ingevuld) lukt nog niet.
Het gaat daarbij dus om dit stukje code
[ code verwijderd ]
Vervang dat eens weer door:quote:Op zondag 2 augustus 2015 09:34 schreef jodelahity het volgende:
Validatie werkt dus, alleen het versturen na de validatie (als de gegevens goed zijn ingevuld) lukt nog niet.
Het gaat daarbij dus om dit stukje code
[ code verwijderd ]
1 2 3 4 | if (!$sql->execute()) { echo "Error: " . $sql->error; } else { echo "Succesvol toegevoegd"; |
1 2 3 | $sql = $conn->prepare("INSERT INTO gebruikerscompleet (naam, email, website, comment) VALUES (?, ?, ?, ?)"); $sql->bind_param('ssss', $naam, $email, $website, $comment); |
1 2 | $sql = "INSERT INTO gebruikerscompleet (naam, email, website, comment) VALUES ('$naam', '$email', '$website', '$comment')"; |
Zo ontzettend bedanktquote:Op zondag 2 augustus 2015 09:37 schreef Arcee het volgende:
if (!$sql->execute()) {
echo "Error: " . $sql->error;
} else {
echo "Succesvol toegevoegd";
Jawel hoor. Probleem was dat je 2 verschillende methodes door elkaar gebruikte. Je had de prepare wel overgenomen, maar de bijbehorende execute niet. Prepare hoort dus bij execute en $sql = "... hoort bij jouw stukje ($conn->query($sql)).quote:Op zondag 2 augustus 2015 09:54 schreef jodelahity het volgende:
Zo ontzettend bedankt
Bedoel ik zoek echt zoveel en probeer zoveel uit van wat ik lees maar dit was ik niet zo tegengekomen
Die ! is gewoon een 'not', dus die test of de execute() correct is uitgevoerd of niet. execute() geeft dus een true of false terug.quote:Op zondag 2 augustus 2015 09:54 schreef jodelahity het volgende:
Ik leer de basis die ik nog niet ken nog wel bij trouwens zoals 'waarom !$sql daar' bijvoorbeeld. Maar dit was even heel belangrijk omdat ik nu goed de sql codes kan uitproberen.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | <?php $servername = "localhost"; $username = "root"; $password = "***"; $dbname = "myDB"; // Create connection $conn = new mysqli($servername, $username, $password, $dbname); // Check connection if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } // sql to create table $sql = "CREATE TABLE userinfo ( naam VARCHAR(40), email VARCHAR(50), website VARCHAR(40), comment VARCHAR(400), )"; if ($conn->query($sql) === TRUE) { echo "Table userinfo created successfully"; } else { echo "Error creating table: " . $conn->error; } $conn->close(); ?> |
1 | Error creating table: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 6 |
Door de komma op regel 20 verwacht MySQL nog een waarde.quote:Op zondag 2 augustus 2015 10:17 schreef jodelahity het volgende:
[ code verwijderd ]
Ik had verwacht dat ik nu ook gewoon op deze manier een table kon aanmaken Werkte eerst wel, maar nu na prepare and bind niet meer lijkt me?
[ code verwijderd ]
Eerst lukte het me wel om op die manier het aan te maken namelijk voor zover ik weet.
En dank je, ook voor de uitleg weer ik doe mijn best maar het is niet zo simpel
Die laatste komma weghalen.quote:Op zondag 2 augustus 2015 10:17 schreef jodelahity het volgende:
Ik had verwacht dat ik nu ook gewoon op deze manier een table kon aanmaken Werkte eerst wel, maar nu na prepare and bind niet meer lijkt me?
$sql = "CREATE TABLE userinfo (
naam VARCHAR(40),
email VARCHAR(50),
website VARCHAR(40),
comment VARCHAR(400),
)";
1 | #1062 - Duplicate entry 'b' for key 'a' |
Ik heb niet echt een idee, maar helpt het als je een purge probeert? En heb je je index wel juist toegevoegd?quote:Op dinsdag 4 augustus 2015 22:28 schreef mstx het volgende:
Ik heb een raar probleempje bij een MySQL tabel. Ik wil een kolom een unique index geven, maar op het moment dat ik dat doe geeft hij een duplicate key error.
[ code verwijderd ]
Waarbij waarde "b" altijd de waarde in de laatste rij is, en die komt niet vaker voor in de tabel. Als ik die rij verwijder geeft hij daarna weer dezelfde fout maar dan met de waarde die op dat moment in de "nieuwe" laatste rij staat.
Iemand een idee?
Een framework is er om werk uit handen te nemen, dus als het formbuilder gedeelte van symfony2 je niet bevalt, lekker weg laten of wat anders gebruiken .quote:Op woensdag 5 augustus 2015 18:53 schreef robin007bond het volgende:
Fuck it, net forms gemaakt zonder de ingebouwde form handling van Symfony, maar wel met de routing-mogelijkheden en dergelijke. Dat gaat prima.
Serieus, fuck die frameworks soms. Soms ben je zo lang bezig met vinden hoe je iets op de beste manier in zo'n framework kunt doen dat ik mezelf af begin te vragen of dit niet gewoon werkverschaffing is.
Soms ben je anders wel het wiel opnieuw aan het uitvinden als je geen frameworks gebruikt, dat is dan weer de andere kant. Plus je wordt niet echt door enige structuur gestuurd.
Daar heb je een goed punt.quote:Op zaterdag 8 augustus 2015 13:43 schreef TwenteFC het volgende:
[..]
Een framework is er om werk uit handen te nemen, dus als het formbuilder gedeelte van symfony2 je niet bevalt, lekker weg laten of wat anders gebruiken .
Wat wil je hiermee precies bereiken?quote:Op maandag 17 augustus 2015 17:28 schreef wipes66 het volgende:
weet iemand trouwens of het mogelijk is om in de query cache van mysql te kijken, om te zien welke queries in de cache zitten?
gewoon nieuwsgierig of het uberhaupt kanquote:Op maandag 17 augustus 2015 19:16 schreef TwenteFC het volgende:
[..]
Wat wil je hiermee precies bereiken?
Volgens mij worden enkel hashes voor betreffende queries opgeslagen, niet de queries zelf.quote:Op maandag 17 augustus 2015 19:35 schreef wipes66 het volgende:
[..]
gewoon nieuwsgierig of het uberhaupt kan
Mee eens dat een beetje complex formulier al snel niet meer binnen het standaard raamwerk van formulierbuilders valt. Dan moet je je vaak in allerlei bochten wringen om het werkend of performant te krijgen. Op een gegeven moment wordt het een spaghetti van hacks of wordt het geheel zo log dat het niet fatsoenlijk onderhoudbaar en leesbaar meer is. Dus in zulke gevallen maak ik zelf liever een opzet.quote:Op zaterdag 8 augustus 2015 14:12 schreef robin007bond het volgende:
[..]
Daar heb je een goed punt.
Het form-gedeelte is oké voor simpele forms, maar als het complexer wordt dan is het niet echt de meest handige oplossing.
Ik heb het gevoel alsof de meeste frameworks het meest zijn gericht op simpele CRUD-operaties en dat complexere problemen vaak worden bemoeilijkt.
Precies. Dat heb ik nu wel in een harde les geleerd.quote:Op maandag 17 augustus 2015 20:00 schreef zoem het volgende:
[..]
Mee eens dat een beetje complex formulier al snel niet meer binnen het standaard raamwerk van formulierbuilders valt. Dan moet je je vaak in allerlei bochten wringen om het werkend of performant te krijgen. Op een gegeven moment wordt het een spaghetti van hacks of wordt het geheel zo log dat het niet fatsoenlijk onderhoudbaar en leesbaar meer is. Dus in zulke gevallen maak ik zelf liever een opzet.
1 2 3 4 5 | <div id=\"webshopmaindiv\"> <a href=\"javascript:ajaxpage('webshop/navigatiewebshop2.php?navigatie_ID = " . $row['navigatie_ID'] ."', 'webshopmaindiv2');\"><img alt=".$row['productnaam']." height=\"100px\" width=\"100px\" src=".$row['afbeelding']." /></a> " ?>; </div> |
1 2 3 4 5 6 7 8 9 10 | <?php // Get data from the database depending on the value of the id in the URL $sql = "SELECT * FROM navigatie WHERE navigatie_ID=" . $_GET["navigatie_ID"]; $rs = $conn->query($sql); while($row = $result->fetch_assoc()) { // Write the data of the person echo "<dt>ID en productnaam</dt><dd>" . $row["navigatie_ID"] . " " . $row["productnaam"] . "</dd>"; } |
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |