[PHP] Hulp gezocht! [PHP]

Gestart doorJosnl12 reacties29 weergaven

13 berichten · pagina 1 van 1

Josnl

Lid · Topicstarter

Berichten
3.461
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Hallo one2xs! smile
Ik ben bezig met een soort van marktplaats script, alleen dan heeeel simpel.
(Voor mij aardig moeilijk yummie)

Ik heb nu het volgende:
www.zoozio.nl/php/toevoegen.php

Hoe zorg ik ervoor dat de ingevoerde gegevens in de database komen te staan?

Alvast bedankt voor jullie hulp!thumbsup
EDIT:
Ik wil de gegevens van dit form in mn database zetten:

<FORM METHOD="POST" ACTION="product_toevoegen.php">
<TABLE BORDER="0">
  <TR>
    <TD>Je naam:</TD>
    <TD>
      <INPUT TYPE="TEXT" NAME="name" SIZE="30px" />
    </TD>
  </TR>
  <TR>
    <TD>Je e-mail adres:</TD>
    <TD><INPUT TYPE="TEXT" NAME="email" SIZE="30px" /></TD>
  </TR>
  <TR>
      <TD>Advertentienaam:</TD>
      <TD><INPUT TYPE="TEXT" NAME="ad_name" SIZE="30px" /></TD>
  </TR>  
  <TR>
      <TD>Beschrijving:</TD>
    <TD><textarea name="beschrijving" cols="40" maxlength="250" rows="10">Maximaal 250 tekens!</textarea></TD>
  </TR>
  <TR>
      <TD>Plaatje:</TD>
    <TD><INPUT TYPE="TEXT" NAME="plaatje" SIZE="30px" /></TD>
  </TR>     
</TABLE>
<P><INPUT TYPE="SUBMIT" VALUE="Toevoegen" NAME="toevoegen"></P>
</FORM>


Ik weet ook niet precies waar ik de insert moet zetten, in toevoegen.php of product_toevoegen.php.
0
Berichten
20.364
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Je kan beter de action veranderen in een leeg ding , dus zo:
action=""


Daarna zet je je php code bovenaan je form.
0
Josnl

Lid · Topicstarter

Berichten
3.461
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
En dan gewoon de insert erboven doen?
0
Berichten
20.364
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Jazeker, maar vergeet de POST if niet. En ik zou hem ook wat beveiligen tegen mysql injecties.
0
Berichten
5.795
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
het beste kan je alles in kleinde letters doen

en je kunt de volgende code gebruiken voor in database te zetten

[COLOR= #0000BB]<?php
$server[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #DD0000]"localhost"[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$wachtwoord[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #DD0000]"wachtwoord"[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$gebruikersnaam[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #DD0000]"gebruikersnaam"[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$database[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #DD0000]"database"[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$mysql_conn[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/mysql_connect"]mysql_connect[/URL] [COLOR= #007700]([/COLOR][COLOR= #DD0000]"$server"[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]"$gebruikersnaam"[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]"$wachtwoord"[/COLOR][COLOR= #007700]);[/COLOR]
[URL="http://www.php.net/mysql_select_db"]mysql_select_db[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]"$database"[/COLOR][COLOR= #007700]);[/COLOR]

[COLOR= #0000BB]$insert[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #DD0000]"INSERT INTO tabelnaam(name,email,ad_name,beschrijving,plaatje) VALUES("[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$_POST[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]name[/COLOR][COLOR= #007700]] .[/COLOR] [COLOR= #DD0000]","[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$_POST[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]email[/COLOR][COLOR= #007700]] .[/COLOR] [COLOR= #DD0000]","[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$_POST[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]ad_name[/COLOR][COLOR= #007700]] .[/COLOR] [COLOR= #DD0000]","[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$_POST[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]beschrijving[/COLOR][COLOR= #007700]] .[/COLOR] [COLOR= #DD0000]","[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$_POST[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]plaatje[/COLOR][COLOR= #007700]] .[/COLOR] [COLOR= #DD0000]")"[/COLOR][COLOR= #007700];[/COLOR]
[URL="http://www.php.net/mysql_query"]mysql_query[/URL][COLOR= #007700]([/COLOR] [COLOR= #0000BB]$insert[/COLOR] [COLOR= #007700]);[/COLOR]
?>
0
Josnl

Lid · Topicstarter

Berichten
3.461
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Dankjulliewel!

@Daiman,
Kan ik ook een config includen?

Ik heb nu namelijk als config.php:

[COLOR= #0000BB]<?php

$dbhost[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #DD0000]localhost[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$dbuser[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #DD0000]josnl_****[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$dbpass[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #DD0000]****[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$dbname[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #DD0000]josnl_****[/COLOR][COLOR= #007700];[/COLOR]

[URL="http://www.php.net/mysql_connect"]mysql_connect[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$dbhost[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$dbuser[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$dbname[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$dbpass[/COLOR][COLOR= #007700])[/COLOR]

?>


En hoe beveilig ik het tegen injecties e.d?
0
Berichten
5.795
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
dan wordt het

[COLOR= #0000BB]<?php[/COLOR]
[URL="http://www.php.net/include"]include[/URL] [COLOR= #DD0000]config.php[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$insert[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #DD0000]"INSERT INTO tabelnaam(name,email,ad_name,beschrijving,plaatje) VALUES("[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$_POST[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]name[/COLOR][COLOR= #007700]] .[/COLOR] [COLOR= #DD0000]","[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$_POST[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]email[/COLOR][COLOR= #007700]] .[/COLOR] [COLOR= #DD0000]","[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$_POST[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]ad_name[/COLOR][COLOR= #007700]] .[/COLOR] [COLOR= #DD0000]","[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$_POST[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]beschrijving[/COLOR][COLOR= #007700]] .[/COLOR] [COLOR= #DD0000]","[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$_POST[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]plaatje[/COLOR][COLOR= #007700]] .[/COLOR] [COLOR= #DD0000]")"[/COLOR][COLOR= #007700];[/COLOR]
[URL="http://www.php.net/mysql_query"]mysql_query[/URL][COLOR= #007700]([/COLOR] [COLOR= #0000BB]$insert[/COLOR] [COLOR= #007700]);[/COLOR]
?>


je config moet dan

[COLOR= #0000BB]<?php
$dbhost[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #DD0000]localhost[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$dbuser[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #DD0000]josnl_****[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$dbpass[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #DD0000]****[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$dbname[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #DD0000]josnl_****[/COLOR][COLOR= #007700];[/COLOR]
[URL="http://www.php.net/mysql_select_db"]mysql_select_db[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]"$dbname"[/COLOR][COLOR= #007700]);[/COLOR]
[URL="http://www.php.net/mysql_connect"]mysql_connect[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$dbhost[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$dbuser[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$dbname[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$dbpass[/COLOR][COLOR= #007700]);[/COLOR]
?>


en je moet in jje config dit zetten

en met injecties wordt bedoeld dat je niet de user input moet vertrouwen

en je zult dan met mysql_real_escape() en split() werken
0
Josnl

Lid · Topicstarter

Berichten
3.461
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Ok thanks! En misschien een domme vraag, maar moet ik een db maken met 1 tabel en dan die velden de namen geven die ook in dat form staan, of gewoon het aantal form namen ook als aantal tabellen? (en moeten die dan leeg blijven?)

Oja, moet ik dan ook, zoals Shahien zei, de action leeg laten?
0
Berichten
5.795
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
je kan de action gewoon leeglaten als je de php script in het zelfde bestand doet

en dan kan je deze sql draaien

-- phpMyAdmin SQL Dump
-- version 3.1.4
-- http://www.phpmyadmin.net
--
-- Machine: srv03.bitshosting.nl
-- Genereertijd: 08 Mei 2010 om 23:45
-- Serverversie: 5.1.37
-- PHP-Versie: 5.2.9

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- Database: `admin_domein`
--

-- --------------------------------------------------------

--
-- Tabelstructuur voor tabel `tabelnaam`
--

CREATE TABLE IF NOT EXISTS `tabelnaam` (
  `name` mediumtext NOT NULL,
  `email` mediumtext NOT NULL,
  `ad_name` mediumtext NOT NULL,
  `beschrijving` mediumtext NOT NULL,
  `plaatje` mediumtext NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

--
-- Gegevens worden uitgevoerd voor tabel `tabelnaam`
--
0
Josnl

Lid · Topicstarter

Berichten
3.461
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Ok, dankjewel! Heb je ook msn, dan kan ik je voortaan vragen stellen via msn. (als je dat wiltyummie)
0
Josnl

Lid · Topicstarter

Berichten
3.461
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Sorry voor dubbelpost:

Maar waarom word deze database niet geaccepteerd door PHPMyAdmin?

-- phpMyAdmin SQL Dump
-- version 3.1.4
-- http://www.phpmyadmin.net
--
-- Machine: srv03.bitshosting.nl
-- Genereertijd: 08 Mei 2010 om 23:45
-- Serverversie: 5.1.37
-- PHP-Versie: 5.2.9

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- Database: `admin_domein`
--

-- --------------------------------------------------------

--
-- Tabelstructuur voor tabel `tabelnaam`
--

CREATE TABLE IF NOT EXISTS `tabelnaam` (
`name` mediumtext NOT NULL,
`email` mediumtext NOT NULL,
`ad_name` mediumtext NOT NULL,
`beschrijving` mediumtext NOT NULL,
`plaatje` mediumtext NOT NULL,
`biedenaf` mediumtext NOT NULL,
`buynow` mediumtext NOT NULL,
`id` int(250) NOT NULL AUTO_INCREMENT,
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

--
-- Gegevens worden uitgevoerd voor tabel `tabelnaam`
--

Ik krijg deze errorcode:

#1064 - 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 ) ENGINE=MyISAM DEFAULT CHARSET=utf8 at line 20


Degene die een oplossing weet krijgt 0.1!!!

Josthumbsup
0
Erik

Lid

Berichten
7.109
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
CREATE TABLE IF NOT EXISTS `tabelnaam` (
`name` mediumtext NOT NULL,
`email` mediumtext NOT NULL,
`ad_name` mediumtext NOT NULL,
`beschrijving` mediumtext NOT NULL,
`plaatje` mediumtext NOT NULL,
`biedenaf` mediumtext NOT NULL,
`buynow` mediumtext NOT NULL,
`id` int(250) NOT NULL AUTO_INCREMENT
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
0
Josnl

Lid · Topicstarter

Berichten
3.461
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Was vergeten om er een "PRIMARY KEY" aan toe te voegen, dit is hoe het bij mij werkte:

CREATE TABLE `marktplaats` (
`name` mediumtext NOT NULL,
`email` mediumtext NOT NULL,
`ad_name` mediumtext NOT NULL,
`beschrijving` mediumtext NOT NULL,
`plaatje` mediumtext NOT NULL,
`biedenaf` mediumtext NOT NULL,
`buynow` mediumtext NOT NULL,
`id` int(250) PRIMARY KEY NOT NULL AUTO_INCREMENT
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

(Voor degenen die ook zon probleem hebben, feel free to use it!biggrin)
0

Jouw reactie

Deel je idee, stel een vraag of help een ander verder.

Editor laden…

Praat mee met de One2xs-community.

Inloggen om te reageren