[PHP] Php script pakt HTML $variables niet.

Pagina: 1
Acties:
  • 134 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
[HTML register form] http://nopaste.php.cd/3424

[PHP register action script] http://nopaste.php.cd/3425

-

Wanneer ik die HTML form VOLLEDIG invul en ik klik op 'Registreer' gaat de PHP script in werking, maar ergens gaat het fout, de PHP script pakt de $variabels niet van de HTML register form, want ik krijg:
echo "U heeft het form niet volledig ingevult.";
Terwijl alles WEL VOLLEDIG is ingevult.

Acties:
  • 0 Henk 'm!

  • Tux
  • Registratie: Augustus 2001
  • Laatst online: 16-09 19:01

Tux

Je maakt wel gebruik van $_GET[] of $_POST[] variabelen? ;)

[edit]
Ik zie nu pas dat bij het linkje het script staat |:(

[ Voor 38% gewijzigd door Tux op 04-10-2003 22:02 ]

The NS has launched a new space transportation service, using German trains which were upgraded into spaceships.


Acties:
  • 0 Henk 'm!

  • Kippenijzer
  • Registratie: Juni 2001
  • Laatst online: 26-08 09:08

Kippenijzer

McFallafel, nu met paardevlees

er draait wel een php4 op die server waar dit op staat, en niet toevallig php3? Dan bestaat $_POST nl. niet

Acties:
  • 0 Henk 'm!

  • dArtagnan
  • Registratie: Mei 2002
  • Laatst online: 23-08 22:47

dArtagnan

Een voor allen, allen voor een

Probeer eens

PHP:
1
echo $print_r($_POST);


Je controleert met de laatste opdracht niet de invoer van de variabelen maar of de query goed ging.
PHP:
1
2
3
4
5
if ( mysql_query($tablo) ) { 
echo "Registratie voltooid."; 
} else { 
echo "Er is een fout opgetreden, registratie is niet voltooid."; 
}
Dan kun je beter mysql_query($tablo) or die"(mysql_error()); gebruiken.

Acties:
  • 0 Henk 'm!

  • Tux
  • Registratie: Augustus 2001
  • Laatst online: 16-09 19:01

Tux

Koraalduivel schreef op 04 October 2003 @ 22:10:
Probeer eens

PHP:
1
echo $print_r($_POST);


Je controleert met de laatste opdracht niet de invoer van de variabelen maar of de query goed ging.


[...]

Dan kun je beter mysql_query($tablo) or die"(mysql_error()); gebruiken.
PHP:
1
print_r ( $_POST );


zal beter werken ;)

$print_r is geen variabele en echo'en doet de functie zelf al.

The NS has launched a new space transportation service, using German trains which were upgraded into spaceships.


Acties:
  • 0 Henk 'm!

  • dArtagnan
  • Registratie: Mei 2002
  • Laatst online: 23-08 22:47

dArtagnan

Een voor allen, allen voor een

Tux schreef op 04 oktober 2003 @ 22:11:
[...]
<knip>

$print_r is geen variabele en echo'en doet de functie zelf al.
klein foutje. |:(

Je query klopt niet
SQL:
1
2
INSERT INTO uyelik 
VALUES ('','$veriler[1]','$veriler[2]','$veriler[3]','$veriler[4]','$yeni_sifre')"; 

Je moet na bij uyelik je veldnamen opgeven.
vb
SQL:
1
2
3
4
INSERT INTO cms_foto 
(kunstenaar_id, foto_titel) 
VALUES 
('$_POST[F_kunstenaar]','$_POST[F_titel]')

[ Voor 105% gewijzigd door dArtagnan op 04-10-2003 22:16 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hmm, ik snap het nu nog steeds niet echt wat er nou echt fout is gegaan.
Alles blijkt toch goed te zijn ? Wat is er nou precies fout ?

Acties:
  • 0 Henk 'm!

  • dArtagnan
  • Registratie: Mei 2002
  • Laatst online: 23-08 22:47

dArtagnan

Een voor allen, allen voor een

Verwijderd schreef op 04 oktober 2003 @ 22:18:
Hmm, ik snap het nu nog steeds niet echt wat er nou echt fout is gegaan.
Alles blijkt toch goed te zijn ? Wat is er nou precies fout ?
Je moet je query aanpassen

SQL:
1
2
3
4
INSERT INTO <tabelnaam>
(<veldnaam>, <veldnaam2>)
VALUES 
('$value','$value2')

[ Voor 19% gewijzigd door dArtagnan op 04-10-2003 22:20 . Reden: code tags ]


Acties:
  • 0 Henk 'm!

  • Vae Victis
  • Registratie: April 2001
  • Laatst online: 07-09 06:15

Vae Victis

Dark Lord of the Sith

Koraalduivel schreef op 04 October 2003 @ 22:19:
[...]

Je moet je query aanpassen

SQL:
1
2
3
4
INSERT INTO <tabelnaam>
(<veldnaam>, <veldnaam2>)
VALUES 
('$value','$value2')
Hoeft niet, kan ook zoals hij het gedaan heeft.
Maar dan moet je wel voor elke veld een waarde invullen of '' en dat heeft hij.

Acties:
  • 0 Henk 'm!

  • dArtagnan
  • Registratie: Mei 2002
  • Laatst online: 23-08 22:47

dArtagnan

Een voor allen, allen voor een

Vae Victis schreef op 04 October 2003 @ 22:27:
[...]

Hoeft niet, kan ook zoals hij het gedaan heeft.
Maar dan moet je wel voor elke veld een waarde invullen of '' en dat heeft hij.
Dat wist ik niet, weer iets nieuws geleerd. :)

Maar het ligt wel aan de query:
PHP:
1
2
3
4
5
if ( mysql_query($tablo) ) { 
echo "Registratie voltooid."; 
} else { 
echo "Er is een fout opgetreden, registratie is niet voltooid."; 
}
Vervang dit eens door:
PHP:
1
2
$result = mysql_query($tablo) or die(mysql_error());
echo "Registratie voltooid.";

[ Voor 12% gewijzigd door dArtagnan op 04-10-2003 22:31 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Daar ligt het niet aan, WANT zodra ik alles invul en ik klik op volgende gaat dit in werking:

PHP:
1
2
3
if( 
empty($_POST['adi']) || empty($_POST['soyadi']) || empty($_POST['mail']) || empty($_POST['kullanici_adi']) || empty($_POST['sifre']) 
)


Dus hij pakt simpel weg de variables niet.

[ Voor 14% gewijzigd door Verwijderd op 04-10-2003 22:39 ]


Acties:
  • 0 Henk 'm!

  • Vae Victis
  • Registratie: April 2001
  • Laatst online: 07-09 06:15

Vae Victis

Dark Lord of the Sith

ZIe het al een typo:
<form name="" methode="post" action="kayit.php">
Maak daarvan:
<form name="" method="post" action="kayit.php">
Heb hem even op mijn server gerund en dan krijg je $_GET variablen. ;)

Acties:
  • 0 Henk 'm!

  • dArtagnan
  • Registratie: Mei 2002
  • Laatst online: 23-08 22:47

dArtagnan

Een voor allen, allen voor een

Kijk eens in je php.ini en kijk daar of register_globals uit staat.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Vae Victis schreef op 04 October 2003 @ 22:49:
ZIe het al een typo:

[...]

Maak daarvan:
<form name="" method="post" action="kayit.php">
Heb hem even op mijn server gerund en dan krijg je $_GET variablen. ;)
edit:

THX! Het werkt! Nu kan ik de login script maken :)

[ Voor 23% gewijzigd door Verwijderd op 04-10-2003 22:52 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb ALWEER iets, zodra ik http://nopaste.php.cd/3428 uitvoer, krijg ik:
code:
1
Loginnaam of wachtwoord is niet correct.


dus gaat
PHP:
1
2
if ( mysql_num_rows($sorgu) < 1 ) { 
echo "Loginnaam of wachtwoord is niet correct.";

in werking, wat heb ik ALWEER fout gedaan ?

[ Voor 4% gewijzigd door Verwijderd op 04-10-2003 23:23 ]


Acties:
  • 0 Henk 'm!

  • dArtagnan
  • Registratie: Mei 2002
  • Laatst online: 23-08 22:47

dArtagnan

Een voor allen, allen voor een

Het lijkt me goed. Heb je het wachtwoord in de database ook versleuteld met md5?

Even vast vooruitlopend op je volgende probleem. session_register("msql_sifre"); zal niet meer werken. Je moet hier voor $_SESSION['msql_sifre'] = @mysql_result($sorgu,0,"sifre"); gebruiken.

[ Voor 19% gewijzigd door dArtagnan op 04-10-2003 23:27 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Koraalduivel schreef op 04 October 2003 @ 23:26:
Het lijkt me goed. Heb je het wachtwoord in de database ook versleuteld met md5?

Even vast vooruitlopend op je volgende probleem. session_register("msql_sifre"); zal niet meer werken. Je moet hier voor $_SESSION['msql_sifre'] = @mysql_result($sorgu,0,"sifre"); gebruiken.
De wachtwoord is in de database ook met md5 versleuteld kijk maar naar mn first post, daar heb ik een link er naar toe.

PHP:
1
2
$yeni_sifre = md5($veriler[5]); 
$tablo = "INSERT INTO uyelik VALUES ('','$veriler[1]','$veriler[2]','$veriler[3]','$veriler[4]','$yeni_sifre')";

Acties:
  • 0 Henk 'm!

  • Vae Victis
  • Registratie: April 2001
  • Laatst online: 07-09 06:15

Vae Victis

Dark Lord of the Sith

doe eens
code:
1
2
3
$tablo = "SELECT * FROM uyelik WHERE kullanici_adi='$kullanici_adi' AND sifre='$sifre2'"; 
echo $tablo ;
$sorgu = mysql_query($tablo);

(er even een echo tussen en kijk of je query wel goed is.)
Als je phpmyadmin hebt, probeer daarin die query uit.

[ Voor 9% gewijzigd door Vae Victis op 04-10-2003 23:36 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Vae Victis schreef op 04 October 2003 @ 23:35:
doe eens
code:
1
2
3
$tablo = "SELECT * FROM uyelik WHERE kullanici_adi='$kullanici_adi' AND sifre='$sifre2'"; 
echo $tablo ;
$sorgu = mysql_query($tablo);

(er even een echo tussen en kijk of je query wel goed is.)
Als je phpmyadmin hebt, probeer daarin die query uit.
Dan krijg ik

code:
1
SELECT * FROM uyelik WHERE kullanici_adi='' AND sifre='helelangemd5code'Loginnaam of wachtwoord is niet correct.

Acties:
  • 0 Henk 'm!

  • Vae Victis
  • Registratie: April 2001
  • Laatst online: 07-09 06:15

Vae Victis

Dark Lord of the Sith

Dan is '$kullanici_adi' dus niet geset.
Haal die dus eerst uit een $_POST var.

[tip]
kijk even goed wat je variablen zijn in je script.
je gebruikt nu gewoon vars die niet bestaan.

ergens vars maken en ergens anders die var aanroepen met een andere naam gaat helaas niet werken ;)

[ Voor 60% gewijzigd door Vae Victis op 04-10-2003 23:45 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Vae Victis schreef op 04 October 2003 @ 23:41:
Dan is '$kullanici_adi' dus niet geset.
Haal die dus eerst uit een $_POST var.
Hoe bedoel je, zodra je die website opgaat krijg je toch een html login site voor je, die in die code zit.

code:
1
2
3
<td> 
<input type="text" name="kullanici_adi" size="12"> 
</td>


Dus $_POST hoeft niet, het is het zelfde bestand (php/html)

Kijk eens maar naar http://nopaste.php.cd/3428

Acties:
  • 0 Henk 'm!

  • Vae Victis
  • Registratie: April 2001
  • Laatst online: 07-09 06:15

Vae Victis

Dark Lord of the Sith

Je doet hier:
code:
1
<form action="<? echo $PHP_SELF; ?>" method="POST">

Dus je krijgt $_POST vars terug, niets anders.
Dat alles in 1 file staat word het niet anders van.
$_POST[ 'var' ] != $var

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hmm okey, ik begrijp nu wat je bedoelt.

Kan je me ook uitleggen wat ik precies moet veranderen?

Acties:
  • 0 Henk 'm!

  • Vae Victis
  • Registratie: April 2001
  • Laatst online: 07-09 06:15

Vae Victis

Dark Lord of the Sith

Je gebruikt POST in je html form.
Wat je dus terug krijgt aan variablen zit in array genaamd $_POST.
code:
1
<input type="text" name="kullanici_adi" size="12">

Die 'kullanici_adi' krijg je terug als:
code:
1
$_POST[ 'kullanici_adi' ]

Begrijp je het nu?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hmm, ja nu begrijp ik het, en nu nog even bedenken wat ik eraan moet veranderen.....

Acties:
  • 0 Henk 'm!

  • Vae Victis
  • Registratie: April 2001
  • Laatst online: 07-09 06:15

Vae Victis

Dark Lord of the Sith

Nog een laatste tip:
code:
1
$sifre2 = md5($sifre);

Is dus zo ook niet goed, je maakt een md5 hash van een lege variable!
Je hebt $sifre nl nergens gedefinieerd.
Je krijgt zo wel een hash terug maar niet de goeie.

Verder moet je het echt zelf doen. :)

[ Voor 9% gewijzigd door Vae Victis op 05-10-2003 00:02 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
code:
1
<input type="password" name="sifre" size="12">


code:
1
ifre2 = md5($sifre);


Dat klopt toch, of zie ik nou alles verkeerd.

Eigelijk.. weet jij heel het probleem, maar je wilt het me zelf laten oplossen, is ook goed van jou, maar het lukt me echt niet, majah, in ieder geval, THANKS! Je heb me veel geholpen :)

Acties:
  • 0 Henk 'm!

  • Vae Victis
  • Registratie: April 2001
  • Laatst online: 07-09 06:15

Vae Victis

Dark Lord of the Sith

Verwijderd schreef op 05 oktober 2003 @ 00:05:
Dat klopt toch, of zie ik nou alles verkeerd.
Zie je dus verkeerd. ;)
Eigelijk.. weet jij heel het probleem, maar je wilt het me zelf laten oplossen, is ook goed van jou, maar het lukt me echt niet, majah, in ieder geval, THANKS! Je heb me veel geholpen :)
Yep, lees deze reply nog maar eens:
[rml]Vae Victis in "[ PHP] Php script pakt HTML $variables ni"[/rml]
En vergelijk dat met wat je net poste.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Vae Victis schreef op 05 October 2003 @ 00:10:
[...]

Zie je dus verkeerd. ;)

[...]

Yep, lees deze reply nog maar eens:
[rml]Vae Victis in "[ PHP] Php script pakt HTML $variables ni"[/rml]
En vergelijk dat met wat je net poste.
Ehmm, moet ik voor me $var $_POST['var'] neerzetten? Sinan Sinan Sinan, jij weet ook niet veel:)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb het nu zo:

http://nopaste.php.cd/3432

Nog steeds lukt het niet :(

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Probleem gevonden!

varchar12 -> varchar32
Voila:)
Pagina: 1