login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Option in formulier stuurt string na spatie niet door

Offline Skatelow - 09/09/2011 18:41
Avatar van SkatelowLid Ik zit weer eens met een probleem,
Ik heb een scriptje gemaakt waarin je kan selecteren welke groep je wil gebruiken.
In het drop-down selectievakje, staan de correcte namen van de groepen van dit lid.
Maar wanneer je op verzenden klikt, worden enkel de waarden gepost voor de spatie. Degene na de spatie vallen weg.
bv: Ik selecteer de groep 'Socializ Crew' en klik op verzenden.
Dan wordt in de database geplaatst dat ik de groep 'Socializ' heb gekozen.
Wat is hier het probleem?

Hier mijn script

  1. <?php
  2.  
  3. if(isset($_POST['uitnodigengroep'])) //Als er op verzenden is geklikt
  4. {
  5. //Velden Nakijken
  6.  
  7. $error = array();
  8.  
  9. //Nakijken of groep is geselecteerd
  10. if ( $_POST['groep'] == ""){
  11. $error[] = "<b>Je kan " . $_POST['lid'] . " niet uitgenodigen in g&#43694; groep.</b><br/>";
  12. }
  13. //Nakijken of lid al in groep zit
  14. $leden_groep = mysql_query ("SELECT * FROM groepen_leden WHERE lid='".$_POST['lid']."' AND groep = '" . $_POST['groep'] . "'");
  15. $aantal_leden_groep = mysql_num_rows ($leden_groep);
  16.  
  17. if( $aantal_leden_groep = 0 ){
  18. $error[] = "<b>Je kan " . $_POST['lid'] . " niet uitgenodigen in " . $_POST['groep'] . " omdat hij al lid is van deze groep.</b><br/>";
  19. }
  20.  
  21. //Nakijken of uitnodiging al is verstuurd
  22. $uitnodigingen = mysql_query ("SELECT * FROM groepen_verzoeken WHERE eigenaar='". $_SESSION['gebruiker'] . "' AND groep='". $_POST['groep'] . "'");
  23. $aantal_uitnodigingen = mysql_num_rows ($uitnodigingen);
  24.  
  25. if($aantal_uitnodigingen != 0 ){
  26. $error[] = "<b>Je kan " . $_POST['lid'] . " niet uitgenodigen in " . $_POST['groep'] . " omdat je al een uitnodiging hebt verstuurd.</b><br/>";
  27. }
  28. //Nakijken of uitnodiging naar jezelf wordt gestuurd
  29. if($_POST['lid'] == $_SESSION['gebruiker']){
  30. $error[] = "<b>Je kan jezelf niet uitnodigen in ". $_POST['groep'] . "</b><br/>";
  31. }
  32. $fouten = sizeof($error); // aantal errors tellen
  33. if($fouten != 0) { // Er is minstens 1 error
  34. $counter = "0";
  35. while ($counter <= $fouten){
  36. echo "$error[$counter]";
  37. $counter ++;
  38. }
  39. echo "<a class='linkje' href='profielpagina.html?lid=$_GET[lid]'>Opnieuw</a>";
  40. }
  41. else{
  42. //Lid uitnodigen in groep
  43. $aanvraag = "INSERT INTO groepen_verzoeken (type, groep, lid, eigenaar)
  44. VALUES ('uitnodiging','$_POST[groep]','$_GET[lid]','$_SESSION[gebruiker]')";
  45.  
  46. $aanvragen = mysql_query($aanvraag) or die(mysql_error());
  47. echo "<script language=javascript>alert('Je hebt " . $_POST['lid'] . " uitgenodigd in " . $_POST['groep'] . "')</script>";
  48. echo "<a class='linkje' href='Leden.html'>Terug</a>";
  49. }
  50. }
  51. else
  52. {
  53. //Groepen oproepen die gebruiker bezit
  54. $groepen = mysql_query ("SELECT naam FROM groepen_info WHERE eigenaar = '" . $_SESSION['gebruiker'] . "'");
  55.  
  56. echo "<font size='16'>" . $_GET['lid'] . " uitnodigen in </font>";
  57.  
  58. echo " <select name='groep'>";
  59. while ($rij = mysql_fetch_array($groepen))
  60. {
  61. echo "<option value=" . $rij['naam'] . ">" . $rij['naam'] . "</option>";
  62. }
  63. echo " </select><br/>";
  64. echo "<input type='hidden' name='lid' value='" . $_GET['lid'] . "'>";
  65. echo "<input type='submit' name='uitnodigengroep' value='Uitnodigen'>";
  66.  
  67. echo "</form>";
  68. }
  69.  
  70. ?>

5 antwoorden

Gesponsorde links
Offline Stijn - 09/09/2011 18:44
Avatar van Stijn PHP expert $aanvraag = "INSERT INTO groepen_verzoeken (type, groep, lid, eigenaar)
VALUES ('uitnodiging','$_POST[groep]','$_GET[lid]','$_SESSION[gebruiker]')";

==> plaats de variabelen buiten quotes! Zoals in regel 54 en 61!

Is je veld (groep) groot genoeg? Bevat die $_POST['groep'] de juiste waarde?
Offline Skatelow - 09/09/2011 19:05
Avatar van Skatelow Lid ik heb de variabelen buiten de quotes geplaatst.
Het veld voor groepen is groot genoeg,
Maar wanner ik $_POST['groep'] echo,
krijg ik enkel 'Socializ' terug...
Offline Stijn - 09/09/2011 22:17
Avatar van Stijn PHP expert Ik zie al wat er scheelt. De fout zit in de opbouw van je dropdownbox. Er staan geen quotes tussen de value. Vervang lijn 61 eens door de volgende.

  1. echo '<option value="' . $rij['naam'] . '">' . $rij['naam'] . '</option>';


Nu gaan er dubbele quotes rond je value attribuut staan.
Offline vinTage - 10/09/2011 14:23 (laatste wijziging 10/09/2011 14:24)
Avatar van vinTage Nieuw lid Als de value hetzelfde is als het label hoef je geen value mee te geven, dus:
  1. echo '<option>'.$rij['naam'].'</option>';

is ook gewoon goed.
Offline Giant - 11/09/2011 02:34
Avatar van Giant PHP beginner
  1. if( $aantal_leden_groep = 0 ){

Hier zit sowieso al een fout.

Dit soort checks kun je beter doen als:
  1. if( 0 == $aantal_leden_groep ){

Zodat je een error krijgt (kunt 0 niet zetten als var)
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.233s