Weet iemand wat code is voor spatie niet toelaten in eregi?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Top Low-Code Developer Gezocht!

Bedrijfsomschrijving Unieke Kansen, Uitstekende Arbeidsvoorwaarden & Inspirerend Team Wij zijn een toonaangevende, internationale organisatie die de toekomst van technologie vormgeeft door het creëren van innovatieve en baanbrekende oplossingen. Ons succes is gebaseerd op een hecht en gepassioneerd team van professionals die altijd streven naar het overtreffen van verwachtingen. Als jij deel wilt uitmaken van een dynamische, vooruitstrevende en inspirerende werkomgeving, dan is dit de perfecte kans voor jou! Functieomschrijving Als Low-Code Developer ben je een cruciaal onderdeel van ons team. Je werkt samen met collega's uit verschillende disciplines om geavanceerde applicaties te ontwikkelen en te optimaliseren met behulp van Low-code

Bekijk vacature »

Pagina: 1 2 3 volgende »

Spider Finder

Spider Finder

06/08/2012 20:25:19
Quote Anchor link
Ik heb een scritp wat verder goed werkt, alleen op een puntje niet en dit is als iemand een of twee keer een spatie geeft in het invul tekst veld vervalt de foutmelding en gaat hij toch door, ook al he ik controle op leeg invoerveld "if empty", dus wet iemand wat het "teken" is om geen spatie toe te staan???

Hieronder mijn code:

$string_exp = "^[a-z .'-]+$";
if(!eregi($string_exp,$first_name))
{
$error_message .= 'De voornaam is niet geldig.<br />';
}

Oke, hoor het graag, Thanks
Gewijzigd op 10/08/2012 17:27:58 door Bas IJzelendoorn
 
PHP hulp

PHP hulp

26/11/2024 14:19:07
 
- SanThe -

- SanThe -

06/08/2012 20:28:14
Quote Anchor link
Eregi is antiek. Niet meer gebruiken dus.

Van php.net: Warning
This function has been DEPRECATED as of PHP 5.3.0. Relying on this feature is highly discouraged.

Gebruik preg_match().

Toevoeging op 06/08/2012 20:30:04:

Gebruik eerst trim().
 
Nick Dijkstra

Nick Dijkstra

06/08/2012 20:32:39
Quote Anchor link
Als het goed is zou deze code moeten werken: (niet getest)
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
preg_match("/\\s/", $first_name);
?>
 
Spider Finder

Spider Finder

06/08/2012 21:19:33
Quote Anchor link
@SanThe, weet je wat het is met preg-match, dat de filter van het bericht niet werkt, ik wil bijvoorbeeld dat men meer dan drie tekens invoerd en het script loopt gewoon door...?

Code:

/** Validate bericht */
if ( !isset( $_POST['bericht'] ) or strlen( trim( $_POST['bericht'] ) ) < 5 )
{
echo "Het bericht moet minimaal 5 tekens lang zijn!<br><br> \n\n";
}

Terwijl de antieke het wel goed doet:

if(strlen($comments) < 2)
{
$error_message .= 'Het bericht is niet geldig.<br />';
}

if(strlen($error_message) > 0)
{
died($error_message);
}
Dus de antieke doet het wel en de moderne niet...?
Gewijzigd op 08/08/2012 08:39:09 door Spider Finder
 
Obelix Idefix

Obelix Idefix

06/08/2012 21:23:45
Quote Anchor link
Dat zijn toch twee heel verschillende code's (/vergelijkingen)?!
Ik zie in deze code niet wat dit met eregi/preg_match te maken heeft.
 
Spider Finder

Spider Finder

06/08/2012 22:31:44
Quote Anchor link
Het gaat erom dat ik wil checken of iemand niet alleen spaties doet en dat het bericht veld meer dan bijvoorbeeld 5 tekens bevat?
Gewijzigd op 08/08/2012 08:38:31 door Spider Finder
 
Jasper DS

Jasper DS

06/08/2012 22:42:19
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
if(strlen(trim($var)) < 5)
{

    echo 'Geef minstens 5 tekens.';
}

?>


?
 
Reshad F

Reshad F

07/08/2012 10:30:40
Quote Anchor link
Quote:

Dus de antieke doet het wel en de moderne niet...?

Voor mij lastig daar ik een leek ben en met scripts werk van het internet, kan zelf niet programmeren zoals andere dit doen, het lukt mij ook wel, maar niet altijd.

Dus zegt het maar......


dit is echt bullshit.. het is niet dat ene woordje wat veranderd van eregi in preg_match het scriptje zelf veranderd ook.. het is toch ook niet zo dat als je een nieuwe model ferarri uitbrengt dat er alleen een nieuwe modelnaam komt en de functionaliteit blijft hetzelfde als de voorganger?

verder vind ik je laatste post ook niet echt vriendelijk

Quote:
Het gaat erom dat ik wil checken of iemand niet alleen spaties doet en dat het bericht veld meer dan bijvoorbeeld 5 tekens bevat, het bericht veld bij preg-match doet het niet en bij eregi wel, op mijn NAS draait PHP wat het aan kan en dus ook blijft doen, maar weet iemand nu de code voor checken geen spatie en meer dan zoveel tekens in bericht voor preg-match of niet....????


de code voor spaties is

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
if (preg_match("/\\s/", $myString)) {
   // er zijn spaties
}
?>


trim is overigens niet handig in zijn geval omdat hij wil weten of er spaties zijn of niet en trim verwijdert spaties.. dat is dus hele andere koek.
 
Spider Finder

Spider Finder

07/08/2012 12:32:22
Quote Anchor link
@Reshad F, sorry als mijn laatste post wat anders overkomt, maar ik vraag toch duidelijk het volgende ik citeer "Het gaat erom dat ik wil checken of iemand niet alleen spaties doet en dat het bericht veld meer dan bijvoorbeeld 5 tekens bevat", hier staat toch echt dat ik wil controleren of iemand niet alleen spaties doet? maar ook daadwerkelijk iets invuld, nu kun je in et script een spatie geven en vervolgens laat hij de foutmelding niet meer zien en het tweede stukje is dat ik een code zoek die werkt en aangeeft dat men meer dan bijvoorbeeld drie of vijf tekens moet invullen, dus niet dat als iemand een teken invuld het script verder gaat met verzenden.

Dus ik wil geen spaties toestaan en hoef niet te weten of iemand dit doet, hij moet bij een spatie in het begin van het invoerveld gewoon een foutmelding geven.

Groet
Gewijzigd op 10/08/2012 17:28:12 door Bas IJzelendoorn
 
Jasper DS

Jasper DS

07/08/2012 12:40:46
Quote Anchor link
Dus de input "Dit is een naam" is wel toegestaan maar " " niet? Dan zou mijn oplossing moeten werken!
 
Erwin H

Erwin H

07/08/2012 12:50:48
Quote Anchor link
En ook nog een stuk sneller dan het gebruik van reguliere expressies (en uiteraard beter dan het gebruik van een deprecated functie).
 
Spider Finder

Spider Finder

07/08/2012 14:51:56
Quote Anchor link
Heb de code geprobeerd (zie) hieronder, helaas werkt hij niet, sorry, hij geeft een foutmelding aan, namelijk error: Parse error: syntax error, unexpected T_IF in /volume1/web/xxxweb/TT/send5.php on line 123

/** Validate bericht */
if ( !isset( $_POST['bericht'] ) or if(strlen(trim($var)) < 5)
{
echo "Het bericht moet minimaal 5 tekens lang zijn!<br><br> \n\n";
}
Gewijzigd op 08/08/2012 08:41:09 door Spider Finder
 
- SanThe -

- SanThe -

07/08/2012 15:03:23
Quote Anchor link
Twee keer if() in één regel kan niet.

if ( !isset( $_POST['bericht'] ) or strlen(trim($var)) < 5)
 
Spider Finder

Spider Finder

07/08/2012 15:17:56
Quote Anchor link
@SanThe, heb je code gebruikt en geen foutmelding, maar hij loopt toch door als ik bij bericht een spatie of 1 teken gebruik, weet dat men niet een script wil aanpassen, maar geef toch voor de duidelijkheid mijn script nog een keer, dus eigenlijk wil ik nog maar twee dingen:

1) als men een of twee spaties geeft in een invulveld moet hij een foutmelding geven.
2) bij bericht ook geen spaties, maar ook meer dan 5 tekens, bij mijnder tekend ook foutmelding.

Is mij nog niet gelukt werkend te krijgen, zie hieronder het totale script:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>send4</title>
</head>

<body
style="font-family: 'Franklin Gothic Book'; font-size: 16px; font: normal; background-color: #E7E0D2; ">


Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
<?php
$mailsupport
= "[email protected]";
$titel= "mijn domeinnaam - " .
$_POST['onderwerp'];

// set datum
$datum = date("d.m.Y H:i");

// set ip
$ip = $_SERVER['REMOTE_ADDR'];

if (isset ($_POST['kaartleggen']))
{

    $kaartleggen="Ja, wel informatie";
}

else
{
    $kaartleggen="Nee, geen informatie";
}


if (isset ($_POST['orakel']))
{

    $orakel="Ja, wel informatie";
}

else
{
    $orakel="Nee, geen informatie";
}


if (isset ($_POST['tenen']))
{

    $tenen="Ja, wel informatie";
}

else
{
    $tenen="Nee, geen informatie";
}


if (isset ($_POST['coaching']))
{

    $coaching="Ja, wel informatie";
}

else
{
    $coaching="Nee, geen informatie";
}



if (isset ($_POST['individueel']))
{

    $individueel="Ja, wel informatie";
}

else
{
    $individueel="Nee, geen informatie";
}


// Bericht
$mssg .= "Ingevuld Contact Formulier \n\n";
$mssg .= "Voornaam: " .$_POST['naam1'] . "\n";
$mssg .= "Achternaam: " .$_POST['naam2'] . "\n";
$mssg .= "Telefoon: " .$_POST['telefoon'] . "\n";
$mssg .= "E-mailadres: " .$_POST['mail'] . "\n";
$mssg .= "Onderwerp: " .$_POST['onderwerp'] . "\n";
$mssg .= "Wilt u mij bellen over: \n";
$mssg .= "*Informatie Tarot Kaartleggen: " .$kaartleggen . "\n";
$mssg .= "*Informatie Orakel Snuffelen: " .$orakel . "\n";
$mssg .= "*Tenen lezen Online: " .$tenen . "\n";
$mssg .= "*Coaching: " .$coaching . "\n";
$mssg .= "*Individuele Workshop: " .$individueel . "\n";
$mssg .= "Voorkeur voor tijdstip: " .$tijdstip . "\n";
$mssg .= "Bericht:" . "\n";
$mssg .= $_POST['bericht'] . "\n" . "\n";
$mssg .= "Dit bericht is verstuurd op $datum van het ip adres " . $ip . ".";

//Afzender
$headers = "From: " . $_POST['naam1'] . $_POST['naam2'] . " <" . $_POST['mail'] . ">";
if ($_SERVER['REQUEST_METHOD'] == 'POST'){
if (empty($_POST['naam1']) or empty($_POST['naam2']) or empty($_POST['mail']) or empty($_POST['onderwerp']) or empty($_POST['bericht'])) {

//Validatie

/** Validate naam1 */

    $naam1Pattern = '~^[a-z .\'-]+$~Di';
    if ( !isset( $_POST['naam1'] ) or !preg_match( $naam1Pattern, $_POST['naam1'] ) )
    {

        echo "De voornaam is niet geldig!<br> \n";
    }


/** Validate naam2 */
    $naam2Pattern = '~^[a-z .\'-]+$~Di';
    if ( !isset( $_POST['naam2'] ) or !preg_match( $naam2Pattern, $_POST['naam2'] ) )
    {

        echo "De achternaam is niet geldig!<br> \n";
    }


/** Validate e-mail address */
    $mailPattern = '~^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$~Di';
    if ( !isset( $_POST['mail'] ) or !preg_match( $mailPattern, $_POST['mail'] ) )
    {

        echo "Het e-mailadres is niet geldig!<br> \n";      
    }


/** Validate onderwerp */
    $onderwerpPattern = '~^[a-z .\'-]+$~Di';
    if ( !isset( $_POST['onderwerp'] ) or !preg_match( $onderwerpPattern, $_POST['onderwerp'] ) )
    {

        echo "Het onderwerp is niet geldig!<br> \n";
    }


/** Validate bericht */
    if ( !isset( $_POST['bericht'] ) or strlen(trim($var)) < 5)
    {

        echo "Het bericht moet minimaal 5 tekens lang zijn!<br><br> \n\n";
    }


echo "Sorry, maar helaas ben u iets vergeten, of heeft u iets verkeerd ingevuld!!<br><br>\n";
echo '<button type="button" onclick="history.go(-1);">Terug naar formulier</button>';
}
else {
mail ($mailsupport, $titel, $mssg, $headers);
header ("Refresh: 0; URL=verzonden.php");
}
}

?>

</body>
</html>
 
Obelix Idefix

Obelix Idefix

07/08/2012 15:22:31
Quote Anchor link
Je mailfunctie (headers) is incompleet. gebruik liever phpmailer/swiftmailer.
Wees consequent in het gebruik van ' en " --> php (echo) ' en html " (vergelijk regel 117/118)

Na header --> exit; Zou overigens nog een keer kijken naar jouw opbouw van header; heb het idee dat jouw syntax niet overkomt met de standaard (op phpnet)

Je moet natuurlijk wel de code aanpassen aan jouw site. Waar komt $var vandaan? Dat zal, vermoedelijk $_POST['bericht'] moeten zijn.

Zet error reporting daarom, tijdens ontwerpen, altijd (boven)aan in je script.

Variabelen ($datum) buiten quotes.

Waarom eerst op allerlei $_POST variabelen controleren en aanmaken (regel 12-56) en een bericht aanmaken, terwijl je niet eens controleert of het formulier wel verzonden is?

Is het voor jezelf niet handiger om alleen dat onderwerp/die onderwerpen in de mail te laten zetten waarin men geïnteresseerd is, ipv elk onderwerp apart te noemen met wel/niet?

Uit interesse: als je het formulier onjuist/onvolledig hebt ingevuld en je klikt op de link om terug te gaan naar het formulier: zijn dan de velden nog ingevuld (of kun de bezoeker opnieuw beginnen met invoeren)?

Vraag:
Hoe veilig is het om $_POST-waarden direct in een bericht te zetten? Of kan daarvoor beter bv htmlspecialchars worden gebruikt?
Gewijzigd op 07/08/2012 15:33:54 door Obelix Idefix
 
- SanThe -

- SanThe -

07/08/2012 15:33:55
Quote Anchor link
Ik zou eerst eens zorgen dat er logica in je script zit. Je gebruikt nu eerst diverse $_POST-vars terwijl je aan het eind pas gaat kijken of er wel gepost is.
 
Spider Finder

Spider Finder

07/08/2012 16:10:07
Quote Anchor link
Het script voor mij op twee punten na goed werkend, dus alleen op deze twee punten zoek ik nog een oplossing...
Gewijzigd op 08/08/2012 08:42:50 door Spider Finder
 
Obelix Idefix

Obelix Idefix

07/08/2012 16:44:07
Quote Anchor link
naam verwijderd op 07/08/2012 16:10:07:
Verder snap ik sommige opmerkingen niet daar ik een leek ben, dus tot zover iederen bedankt en graag alleen nog reacties die ik als leek ook echt kan gebruiken of dat iemand het geposte script wil bewerken en retour posten.

De tips/opmerkingen die geplaatst worden kun je, ook als leek, prima gebruiken en ik kan je alleen maar aanraden om ze ook te gebruiken, als je de site daadwerkelijk wilt gaan publiceren.
Je begint ergens aan (als leek) omdat je er interesse in hebt, iets wilt maken/bereiken. Dat betekent tijd investeren om kennis op te doen.

Er wordt je een bijna werkende oplossing aangeboden.
Gewijzigd op 10/08/2012 17:31:48 door Bas IJzelendoorn
 
Spider Finder

Spider Finder

07/08/2012 17:13:07
Quote Anchor link
Oplossingen werken niet, dus hoezo bijna werkende oplossing, het werkt helemaal niet, ook niet bijna..., dus heb ik er niets aan en noem ik dit geen hulp, ik zou in zo'n geval iemand kosteloos helpen met een goed script... ipv opmerkingen plaatsen, maar laat maar gaan.. Thanks!
Gewijzigd op 10/08/2012 17:32:05 door Bas IJzelendoorn
 
Obelix Idefix

Obelix Idefix

07/08/2012 17:18:16
Quote Anchor link
Obelix en Idefix op 07/08/2012 15:22:31:
Je moet natuurlijk wel de code aanpassen aan jouw site. Waar komt $var vandaan? Dat zal, vermoedelijk $_POST['bericht'] moeten zijn.

Al geprobeerd????
 
Spider Finder

Spider Finder

07/08/2012 17:29:18
Quote Anchor link
Ja, heb alles al geprobeerd, sorry, kan er ook niet aan doen.
 

Pagina: 1 2 3 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.